Imagick::convolveImage

(PECL imagick 2, PECL imagick 3)

Imagick::convolveImage将自定义卷积核应用于图像

描述

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

将自定义卷积核应用于图像。

参数

kernel

卷积核

channel

提供任何对您的通道模式有效的通道常量。要应用于多个通道,请使用按位运算符组合 channeltype 常量。请参阅此 通道常量列表

返回值

成功时返回 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();
}

?>

添加说明

用户贡献说明 2 个说明

ahmed at zigzapps dot com
4 年前
提供的示例是错误的。以下是一个正确的示例

$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
10 年前
convolveImage 的示例

<?php
// 对图像运行边缘检测过滤器
$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