Показать сообщение отдельно

  #7  
Старый 16.05.2010, 17:37
wildshaman
Постоянный
Регистрация: 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..
 
Ответить с цитированием