Imagick::convolveImage

(PECL imagick 2.0.0)

Imagick::convolveImageApplies a custom convolution kernel to the image

설명

bool Imagick::convolveImage ( array $kernel [, int $channel = Imagick::CHANNEL_ALL ] )

Applies a custom convolution kernel to the image.

인수

kernel

The convolution kernel

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

반환값

성공시에 TRUE를 반환합니다.

오류/예외

오류시에 ImagickException이 발생합니다.

예제

Example #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
5 years 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
11 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