Мысли о CAPTCHA.

WP

^_^
Мысли о CAPTCHA.

http://xengine.archont.ru/pub/example_captcha.php
Чернобелое изображение чтобы избежать вычетания цветов, много шрифтов, произольный размер, произвольный угол (-50,50), частично произвольное расположение.
Имеет ли смысл накладывать шум?
Если да, то лучше соеденительные линии или белый шум?
Какие замечены минусы?

Заделитесь плиз фильтром swirl/twirl средствами gd2, тогда всё будет вообще шоколадно.

Спасибо. :rolleyes: P.S. поиском пользовался, всё внимательно прочел.
 

WP

^_^
Несколько минут назад написано, еще не отлажено толком, поэтому иногда случаются косяки (из-за шрифтов).
 

boombick

boombick.org
>Какие замечены минусы?

Порой буквы накладываются друг на друга, так что прочитать просто нереально...
 

SID

ReadOnlyТеаm
Re: Мысли о CAPTCHA.

Автор оригинала: WP
http://xengine.archont.ru/pub/example_captcha.php
Чернобелое изображение чтобы избежать вычетания цветов, много шрифтов, произольный размер, произвольный угол (-50,50), частично произвольное расположение.
Имеет ли смысл накладывать шум?
Если да, то лучше соеденительные линии или белый шум?
Какие замечены минусы?

Заделитесь плиз фильтром swirl/twirl средствами gd2, тогда всё будет вообще шоколадно.

Спасибо. :rolleyes: P.S. поиском пользовался, всё внимательно прочел.
выдает:
Изображение “http://xengine.archont.ru/pub/example_captcha.php” не может быть показано, так как содержит ошибки.
 

Tor

Новичок
1) накладываются и довольно часто
2) иногда вылазит символ за край картинки
3) углы поворота сделай меньше - автоматом распознать станет не легче, а человеку удобнее
4) удали из возможных символов те, которые неоднозначны (например "о" "О" "0" "1" "l")
 

WP

^_^
Гравицапа
Буду жать F5 до потери пульса =) Пока не заметил таких случаев.
kruglov
Исключительно для красоты =)

А как называется фильтр который делает эффект лупы? Хотелось бы реализовать и применить.

-~{}~ 01.06.06 10:06:

SID
Под FF смотрю и всё ок.
Tor
1) так и задумано, но бывает накладываются не так как нужно. буду фиксить.
2) буду ждать F5 )
3) -30 до 30 нормально?
4) Хорошая идея.
Alexandre
А что это даст?
 

SID

ReadOnlyТеаm
WP
FF 1.0.1 не хочет работать :(
IE не находит изображение, ошибок не выдает.
 

WP

^_^
SID
1.5.0.3 давно пора поставить :) Динозавры маст дай.
Работает прекрасно в IE 6 посмотрел.
Wicked
Она там исключительно для красоты. Думаешь стоит использовать её для защиты?

Какой шум лучше делать? Стоит ли инвертировать цвет внутри эллипса? (Видел на какой-то картинке)
 

avenger_msoft

Новичок
Я филитр twirl/swirl делал так:

PHP:
function filter_twirl($source_img_name) {

         list($dimx, $dimy, $type, $attr) = getimagesize($source_img_name);
         $im_source = imagecreatefromjpeg($source_img_name);

         $wp = $dimx * 0.5;
         $hp = $dimy * 0.5;

         $im_filter = imagecreatetruecolor($dimx, $dimy);
         @imagealphablending($im_filter, false);
         @imagesavealpha($im_filter, true);
         $color_filter = imagecolorallocatealpha($im_filter, 255, 255, 255, 127);
         imagefill($im_filter, 0, 0, $color_filter);

         $a = atan2(-1.0, $wp - 1.0);
         if ($a < 0.0) $a += 2.0 * M_PI;
         $dx = $dimx / $a;
         $d  = sqrt($hp * $hp + $wp * $wp);
         $dy = $dimy / $d;

         for ($h = 0; $h < $dimy + 1; $h++) {
              for ($w = 0; $w < $dimx + 1; $w++) {
                   $x     = ($w - $wp);
                   $y     = ($h - $hp);
                   $dist  = sqrt($x * $x + $y * $y);
                   $angle = atan2($y, $x);
                   if ($angle < 0) $angle += 2.0 * M_PI;

                   $rgb = imagecolorat($im_source, (int)($dimx - $dx * $angle), (int)($dy * $dist));
                   $a = ($rgb >> 24) & 0xFF;
                   $r = ($rgb >> 16) & 0xFF;
                   $g = ($rgb >> 8) & 0xFF;
                   $b = $rgb & 0xFF;

                   $color_filter = imagecolorallocatealpha($im_filter, $r, $g, $b, $a);
                   imagesetpixel($im_filter, $w, $h, $color_filter);
              }
          }

          header('Content-type: image/jpeg');
          imagejpeg($im_filter);
          imagedestroy($im_filter);
}

function filter_swirl($source_img_name) {

         list($dimx, $dimy, $type, $attr) = getimagesize($source_img_name);
         $im_source = imagecreatefromjpeg($source_img_name);

         $wp = $dimx * 0.5;
         $hp = $dimy * 0.5;

         $im_filter = imagecreatetruecolor($dimx, $dimy);
         @imagealphablending($im_filter, false);
         @imagesavealpha($im_filter, true);
         $color_filter = imagecolorallocatealpha($im_filter, 255, 255, 255, 127);
         imagefill($im_filter, 0, 0, $color_filter);

         $dz = -0.01;

         for ($h = 0; $h < $dimy + 1; $h++) {
              for ($w = 0; $w < $dimx + 1; $w++) {
                   $x     = ($w - $wp);
                   $y     = ($h - $hp);
                   $dist  = sqrt($x * $x + $y * $y);
                   $angle = atan2($y, $x);
                   if ($angle < 0) $angle += 2.0 * M_PI;

                   $rgb = imagecolorat($im_source, (int)($wp + $dist * cos($angle + $dist * $dz)), (int)($hp + $dist * sin($angle + $dist * $dz)));
                   $a = ($rgb >> 24) & 0xFF;
                   $r = ($rgb >> 16) & 0xFF;
                   $g = ($rgb >> 8) & 0xFF;
                   $b = $rgb & 0xFF;

                   $color_filter = imagecolorallocatealpha($im_filter, $r, $g, $b, $a);
                   imagesetpixel($im_filter, $w, $h, $color_filter);
              }
          }

          header('Content-type: image/jpeg');
          imagejpeg($im_filter);
          imagedestroy($im_filter);
}
Для примера, возьмите сначала какой-нибудь jpeg размером 500x500 и посмотрите что получится. Далее на своей captche выделите несколько областей и примените этот фильтр.
 

WP

^_^
Romantik
=) я пообщался с автором, оказалось кода 12 кб всего.
Popoff
Не могли бы Вы поделиться исходником? :)
avenger_msoft
Спасибо. Если что-то нужно - обращайся всегда.
Wicked
Спасибо.
 
Сверху