Изображение с картинки - ASP.NET - PullRequest
5 голосов
/ 26 октября 2011

Я делаю свою собственную проверку капчи на моем веб-сайте. Все работает, за исключением того, что мне нужно немного размытия / эффектов для моего текста, которые не видны веб-сканеру и т. Д.

Часть кода, используемого для создания текста на изображении:

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

Что я могу сделать, чтобы получить эффекты / размытость текста?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 26 октября 2011

Зачем вводить свою собственную капчу, если reCAPTCHA бесплатна, доступна (с помощью опции аудио, делает ее пригодной для людей с визуальными проблемами) и в то же время помогает оцифровывать различные публикации? Есть даже реализация .NET .

Edit:

Посмотрите, как это интересно, и посмотрите " ASP.NET Framework для интерактивных проверок человека ". Это может дать вам несколько хороших идей. Особенно 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));
    }
}

Который будет перемещать пиксели волной, как мода. Например, во втором слове вашего примера.

0 голосов
/ 26 октября 2011

Я использую это около 5 лет, и это не предполагает никакой интеграции с ужасными сторонними API.

http://www.codeproject.com/KB/aspnet/CaptchaImage.aspx

0 голосов
/ 26 октября 2011

Взгляните на этот учебник . Там вы найдете пример кода о том, как создать CAPTCHA с использованием C # и метода DrawString.

Надеюсь, это поможет.

...