public static byte[] Captcha(string text){
int width = 150, height = 50;
using Image img = new Image<Rgba32>(width, height);
var font = SystemFonts.CreateFont("Arial", 20);
var location = new PointF(5, 5);
Random random = new Random();
img.Mutate(p =>{
float x = 20;
float y = random.Next(5, 20);
foreach(char ch in text){
float angle = random.Next(-20, 20);
var location = new PointF(x, y);
p.DrawText(new DrawingOptions{
Transform = Matrix3x2.CreateRotation(MathF.PI * angle / 180, location),
}, ch.ToString(), font, Color.Black, location);
x += 25;
}
for (int i = 0; i < 4; i++){
var p1 = new PointF(random.Next(width), random.Next(height));
var p2 = new PointF(random.Next(width), random.Next(height));
p.DrawLine(Color.Gray,random.Next(1, 3), p1, p2);
}
//p.DrawText(text, font, Color.Black, location);
});
using(MemoryStream ms = new MemoryStream()){
img.SaveAsPng(ms);
return ms.ToArray();
}
}