PHP 7.4.24 Released!

Imagick::convolveImage

(PECL imagick 2, PECL imagick 3)

Imagick::convolveImageПрименяет пользовательское ядро свёртки к изображению

Описание

public Imagick::convolveImage(array $kernel, int $channel = Imagick::CHANNEL_DEFAULT): bool

Применяет пользовательское ядро свёртки к изображению.

Список параметров

kernel

Ядро свёртки.

channel

Укажите любую константу CHANNEL, которая подходит для вашего режима канала. Для применения более чем к одному каналу объедините константы типа CHANNEL с помощью побитовых операторов.Обратитесь к этому списку констант CHANNEL.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Imagick::convolveImage()

<?php
function convolveImage($imagePath$bias$kernelMatrix) {
    
$imagick = new \Imagick(realpath($imagePath));
    
//$edgeFindingKernel = [-1, -1, -1, -1, 8, -1, -1, -1, -1,];
    
$imagick->setImageBias($bias * \Imagick::getQuantum());
    
$imagick->convolveImage($kernelMatrix);
    
header("Content-Type: image/jpg");
    echo 
$imagick->getImageBlob();
}

?>

add a note add a note

User Contributed Notes 2 notes

up
0
ahmed at zigzapps dot com
1 year ago
The provided example is wrong. Here's a correct sample:

$matrix = [[1,-1,1],[-1,1,-1],[1,-1,1]];
$kernel = \ImagickKernel::fromMatrix($matrix);

$imagick = new Imagick();
$imagick->readimage($file.'/z.png');
$imagick->convolveImage ($kernel);
$imagick->writeimage('convolve.png');
$imagick->clear();
$imagick->destroy();
up
-1
peter at musicalsaw dot com
7 years ago
Example of convolveImage:

<?php
// run an edge detection filter on an image
$image = new imagick( "diana.png" );
$edgeArray = array(-1,-1,-1,-1,8,-1,-1,-1,-1);
$image->convolveImage ($edgeArray);
$image->thresholdImage(1);
header('Content-type: image/png');
echo
$image;
?>
To Top