2011-10-26 67 views
5

我正在自己的网站上进行Captcha检查。 一切的工作,但我需要我的文字有些blurryness /效果,这不是一个的WebCrawler等验证码图像 - ASP.NET

可见一些用于生成图像的文本代码:

Bitmap BitMap = new Bitmap(@"C:\Users\Public\Pictures\Sample Pictures\Desert.jpg"); 
Graphics g = Graphics.FromImage(BitMap); 
g.DrawString(""+RandomNumberString+"", new Font("Tahoma", 40), Brushes.Khaki, new PointF(1, 1)); 
pictureBox1.Image = BitMap; 

例子:

enter image description here

我该怎么做才能让我的效果/模糊对我的文字?

谢谢!

+1

万一你正在寻找一个完整的解决方案 - http://code.google.com/apis/recaptcha/docs/aspnet.html – jrummell

+1

谢谢! 但我已经有了一个完整的解决方案,随时可以使用。 我非常想编码我自己的。 – Birdman

回答

0

看看这个tutorial。在那里您会找到一个关于如何使用C#和DrawString方法创建验证码的代码示例。

希望,这有助于。

+0

这是一个非常好的教程..谢谢! – Birdman

+0

断开的链接.... –

+0

@CanÜrek:谢谢。作为替代,您可以在此处使用以下代码:https://code.msdn.microsoft.com/Sample-of-a-simple-Captcha-f8c75c43 – Hans

2

为什么在reCAPTCHA免费,可以访问(通过音频选项,使其可用于视觉问题的人),同时有助于数字化各种出版物时推出自己的验证码?甚至有一个.NET implementation

编辑:

看到它是如何为了好玩,在看看“An ASP.NET Framework for Human Interactive Proofs”可能给你一些好的想法。特别是ImageHipChallenge,因为它包含图像失真代码示例。

例如:

for (int y = 0; y < height; y++) 
{ 
    for (int x = 0; x < width; x++) 
    { 
     int newX = (int)(x + (distortion * Math.Sin(Math.PI * y/64.0))); 
     int newY = (int)(y + (distortion * Math.Cos(Math.PI * x/64.0))); 
     if (newX < 0 || newX >= width) newX = 0; 
     if (newY < 0 || newY >= height) newY = 0; 
     b.SetPixel(x, y, copy.GetPixel(newX, newY)); 
    } 
} 

这将在类似的方式波移动的像素。例如你的例子的第二个字。

+3

因为那时我会依赖reCAPTCHA的服务器始终运行。 我想让它在本地服务器上运行。 – Birdman

+0

虽然值得交易吗?例如,您的网站是否可以像视力受损人士那样接近reCAPTCHA?哪些支持音频验证?例如Facebook和Ticketmaster等网站[信任](http://groups.google.com/group/recaptcha/browse_thread/thread/b6711e4394970d06)reCAPTCHA不会倒下,例如他们已经有了非常强大的设置。 –

+0

带有音频验证的部分目前并不重要 - 这里的重要部分是文本本身。 “简单”解决方案并不总是“有趣”的解决方案。 – Birdman