imageconvolution

(PHP 5 >= 5.1.0RC1)

imageconvolution - Apply a 3x3 convolution matrix, using coefficient div and offset

Описание

bool imageconvolution ( resource image, array matrix3x3, float div, float offset )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Замечание: Эта функция доступна только в том случае, если PHP был скомпилирован со встроенной библиотекой GD.

Эмулятор функции imageconvolution:

if(!function_exists('imageconvolution')){
function ImageConvolution($src, $filter, $filter_div, $offset){
    if ($src==NULL) {
        return 0;
    }

    $sx = imagesx($src);
    $sy = imagesy($src);
    $srcback = ImageCreateTrueColor ($sx, $sy);
    ImageAlphaBlending($srcback, false);
    ImageAlphaBlending($src, false);
    ImageCopy($srcback, $src,0,0,0,0,$sx,$sy);

    if($srcback==NULL){
        return 0;
    }

    for ($y=0; $y<$sy; ++$y){
        for($x=0; $x> 24);

            for ($j=0; $j<3; ++$j) {
                $yv = min(max($y - 1 + $j, 0), $sy - 1);
                for ($i=0; $i> 16) & 0xFF) * $filter[$j][$i];
                    $new_g += (($rgb >> 8) & 0xFF) * $filter[$j][$i];
                    $new_b += ($rgb & 0xFF) * $filter[$j][$i];
                    $new_a += ((0x7F000000 & $rgb) >> 24) * $filter[$j][$i];
                }
            }

            $new_r = ($new_r/$filter_div)+$offset;
            $new_g = ($new_g/$filter_div)+$offset;
            $new_b = ($new_b/$filter_div)+$offset;
            $new_a = ($new_a/$filter_div)+$offset;

            $new_r = ($new_r > 255)? 255 : (($new_r  255)? 255 : (($new_g  255)? 255 : (($new_b  127)? 127 : (($new_a = 0) && ($y < $sy)) {
                imagesetpixel($src, $x, $y, $new_pxl);
            }
        }
    }
    imagedestroy($srcback);
    return 1;
}
}


Смотрите также:
Все функции изображение
Описание на ru2.php.net
Описание на php.ru