Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Распознавание captcha на различных сайтах |

23.02.2009, 04:41
|
|
Members of Antichat - Level 5
Регистрация: 27.01.2006
Сообщений: 258
Провел на форуме: 6127131
Репутация:
774
|
|
Распознавание captcha на различных сайтах
Сайт: letitbit.net
Распознавание:
PHP код:
$img = imagecreatefromjpeg("code.jpg"); // Загружаем изображение
$x = imagesx($img); // Ширина изображения
$y = imagesy($img); // Высота изображения
$black = imagecolorallocate ($img, 0, 0, 0); // Индификатор черного цвета
$color = imagecolorallocate ($img, 150, 150, 150); // Индификатор цвета немного темнее чем шум
for ($i=0;$i<$x;$i++){
for ($j=0;$j<$y;$j++){
if (imagecolorat($img,$i, $j) <= $color){ // Если цвет пикселя темнее чем шум, значит это символ
imagesetpixel($img,$i, $j, $black); // Тогда заменяем его черным цветом
}
}}
$sdn=4; $sdk=13; // Границы 1 символа
$res = array();
for ($i=1;$i<=6;$i++){
$count=0;
for ($x=$sdn;$x<$sdk;$x++){
for ($y=4;$y<=15;$y++){
if (imagecolorat($img,$x,$y) == $black) { // Если пиксель черный
$count++; // Суммируем его
}
}}
$sdn=$sdk; $sdk+=9; // Меняем координаты для поиска следующего символа
switch ($count){
case 36:{$res[$i] = "0";break;} // Если количество черных пикселей 36, то это 0
case 27:{$res[$i] = "1";break;} // ...
case 32:{$res[$i] = "2";break;}
case 31:{
if (imagecolorat($img,($x-1),7) == $black) { // Дополнительная проверка
$res[$i] = "3"; } else {
$res[$i] = "e";
} break; }
case 35:{$res[$i] = "4";break;}
case 37:{$res[$i] = "5";break;}
case 39:{
if (imagecolorat($img,($x-1),7) == $black) {
$res[$i] = "9"; } else {
$res[$i] = "6";
} break; }
case 26:{$res[$i] = "7";break;}
case 40:{$res[$i] = "8";break;}
case 33:{$res[$i] = "a";break;}
case 38:{
if (imagecolorat($img,($x-1),5) == $black) {
$res[$i] = "d"; } else {
$res[$i] = "b";
} break; }
case 24:{$res[$i] = "c";break;}
case 30:{$res[$i] = "f";break;}
}}
$code=$res[1].$res[2].$res[3].$res[4].$res[5].$res[6];
Ссылка на скрипт:
letitbit.php.txt
Последние 3 строчки мне помог написать Онотоле...
__________________
Завтра будет.Лучше.
Последний раз редактировалось Go0o$E; 24.02.2009 в 19:33..
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|