Imagick::convolveImage
(PECL imagick 2, PECL imagick 3)
Imagick::convolveImage — Applies a custom convolution kernel to the image
说明
public Imagick::convolveImage(array
$kernel
, int $channel
= Imagick::CHANNEL_DEFAULT): boolApplies 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。
范例
示例 #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();
}
?>

User Contributed Notes 2 notes
ahmed at zigzapps dot com ¶
2 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();
peter at musicalsaw dot com ¶
8 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;
?>
备份地址:http://www.lvesu.com/blog/php/imagick.convolveimage.php