Для тех кто пишет распозновалки капчи, первой задачей обычно является разложить картинку на пиксели, определив цвет каждого. После уже появляются другие интересные (алгоритмические) задачи, которые связаны как правило с типом или видом капчи. Итак, сократим время для желающих самостоятельно разработать скрипт распознавания капчи.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
<?php $img = imagecreatefrompng("image.jpg"); $w = imagesx($img); $h = imagesy($img); $all_pixels = $w * $h; echo "Всего пикселей $w x $h = $all_pixels<br/><hr/>"; $yi = 0; $xi = 0; for($i=0;$i<$all_pixels;$i++){ if($xi>=$w){$yi++;$xi=0;} $color = imagecolorat($img, $xi, $yi); $rgb = imagecolorsforindex($img, $color); $r = $rgb['red']; $g = $rgb['green']; $b = $rgb['blue']; $out .= "<tr><td>$i [$xi x $yi] = $color ($r,$g,$b) </td><td><span class='colorcube' style='background:rgb($r,$g,$b);'></td></tr>"; $xi++; } ?> <!DOCTYPE html> <html> <head> <title>IMGMATRIX</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style type="text/css"> .colorcube { width: 16px; height: 16px; border: 1px solid #C7C7C7; display: block; } </style> </head> <body> <table> <tbody> <?php echo $out; ?> </tbody> </table> </body> </html> |
Код предельно прост и наглядно демонстрирует использование библиотеки php_gd, кстати не плохо бы для начала убедится, установлена ли данная библиотека на вашем web-сервере.