Сделайте CAPTCHA изображения в C#

CAPTCHA (полностью автоматизированный публичный тест Тьюринга, чтобы рассказать о компьютерах и людях) - это искаженные изображения слов, которые некоторые веб-сайты заставляют вас вводить, чтобы доказать, что вы являетесь человеком, а не автоматизированным процессом. Идея состоит в том, чтобы исказить символы на изображении, поэтому было бы трудно, чтобы приложение оптического распознавания символов (OCR) прочитало их, но так было бы легко прочитать его людям.

В этом примере используются относительно большие шрифты, поэтому символы имеют тенденцию перекрываться интересными способами, которые трудно распознать программу OCR.

Обратите внимание, что некоторые мошенники передают изображения CAPTCHA сторонним работникам, которые платят около 0,75 доллара за тысячу изображений, поэтому это не является надежной техникой. Однако даже этого низкого уровня стоимости достаточно, чтобы отсеять некоторый процент мошенников.

Следующий способ MakeCaptchaImage создает изображение CAPTCHA.

Этот метод сначала создает Bitmap нужного размера, устанавливает его свойство SmoothingMode и очищает его. Затем метод вычисляет ширину, которая может допускать каждый символ. Затем код перебирает символы сообщения. Для каждого символа он генерирует случайный размер шрифта и создает шрифт такого размера. Наконец, код вызывает следующий DrawCharacter метод для рисования символа.

Этот метод делает объект StringFormat центрировать символ в прямоугольнике. Затем он создает прямоугольник, который будет удерживать символ.

Далее код создает объект GraphicsPath и добавляет в него символ в правильной позиции. Он случайным образом выбирает некоторые точки в области персонажа и использует метод GraphicsPath объекта Warp, чтобы деформировать ограничивающий прямоугольник символа на эти точки, искажая изображение персонажа.

Далее код применяет преобразование к объекту Graphics для поворота символа вокруг его центра на случайный угол. В тестах я видел много символов с одинаковыми вращениями, поэтому я добавил статическую переменную и цикл, чтобы гарантировать, что вращение каждого персонажа отличается от вращения предыдущего символа не менее чем на 20 градусов.

Источник: http://csharphelper.com/blog/2015/01/make-captcha-images-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *