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

  #8  
Старый 16.05.2010, 19:10
KrafT
Познающий
Регистрация: 29.11.2004
Сообщений: 80
Провел на форуме:
479552

Репутация: 6
Thumbs up

Цитата:
Сообщение от wildshaman  
Я тут тоже поизвращался...
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 тести сам)
Получается что-то вроде
Cпасибки ++
 
Ответить с цитированием