gpt4 book ai didi

c# - 在 .net 中使用 System.Drawing 创建验证码

转载 作者:太空狗 更新时间:2023-10-30 01:16:58 25 4
gpt4 key购买 nike

我已经在 C# 中生成了 6 位字母数字文本,现在我需要将其显示为图像。为此,我在 .Net 中使用了 BitmapGraphics

因此,我能够获取图像,但我需要对图像的字体进行一些小的更改,就像我们在 Captcha Challenge 中看到的那样,锯齿形的东西让它有点难以阅读。

这是我的代码...

Bitmap bmp = new Bitmap(100, 30);
Graphics g = Graphics.FromImage(bmp);
g.Clear(Color.Navy);
string randomString = CaptchaImageResult.GetCaptchaString(6);
g.DrawString(randomString, new Font("Courier", 16),
new SolidBrush(Color.WhiteSmoke), 2, 2);
HttpResponse response = System.Web.HttpContext.Current.Response;
response.ContentType = "image/jpeg";
bmp.Save(response.OutputStream, ImageFormat.Jpeg);
bmp.Dispose();
new CaptchaChallenge { Captcha = bmp };

更新..

我试过这段代码,但字母不清楚..

 Brush zigzagBrush = new System.Drawing.Drawing2D.HatchBrush(
System.Drawing.Drawing2D.HatchStyle.ZigZag, Color.White);
g.DrawString(randomString, new Font("Courier", 16), zigzagBrush, 2, 2);

最佳答案

舱口刷覆盖会更好:

Bitmap bmp = new Bitmap(100, 30);
Graphics g = Graphics.FromImage(bmp);
g.Clear(Color.Navy);
g.DrawString(code, new Font("Courier", 16),
new SolidBrush(Color.WhiteSmoke), 2, 2);
g.FillRectangle(new HatchBrush(HatchStyle.BackwardDiagonal, Color.FromArgb(255,0,0,0),Color.Transparent), g.ClipBounds );
g.FillRectangle(new HatchBrush(HatchStyle.ForwardDiagonal, Color.FromArgb(255, 0, 0, 0), Color.Transparent), g.ClipBounds);

关于c# - 在 .net 中使用 System.Drawing 创建验证码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33364727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com