
16.05.2010, 17:37
|
|
Постоянный
Регистрация: 16.04.2008
Сообщений: 889
Провел на форуме: 12942062
Репутация:
1550
|
|
Я тут тоже поизвращался...
PHP код:
<?php
function getrgb($var)
{
$r = ($var >> 16) & 0xFF;
$g = ($var >> 8) & 0xFF;
$b = $var & 0xFF;
return $r+$g+$b;
}
$src = imagecreatefromjpeg("1.jpg");
$dest = imagecreatefromgif('2.gif');
$best=600;
$sm=3;
$width=imagesx($src);
$height=imagesy($src);
for ($w=0; $w<$width; $w++)
for ($h=0; $h<$height; $h++)
{
$rgb = imagecolorat($src, $w, $h);
$rgb_t = imagecolorat($src, $w, $h+$sm);
$rgb_b = imagecolorat($src, $w, $h-$sm);
$rgb_l = imagecolorat($src, $w-$sm, $h);
$rgb_r = imagecolorat($src, $w+$sm, $h);
if ((getrgb($rgb)<$best) and (getrgb($rgb_b)<$best) and (getrgb($rgb_t)<$best) and (getrgb($rgb_l)<$best))
imagecopymerge($dest, $src, $w, $h, $w, $h, 1, 1, 100);
}
header('Content-Type: image/gif');
imagegif($dest);
?>
Где 2.gif - существующая пикча размером с капчу
$sm - сколько близежащих пкселей заодно проверяется (1-4 лучше)
$best - цвет (300-900 тести сам)
Получается что-то вроде

Последний раз редактировалось wildshaman; 16.05.2010 в 17:39..
|
|
|