PHP Conference Japan 2024

Imagick::convolveImage

(PECL imagick 2, PECL imagick 3)

Imagick::convolveImage將自訂卷積核心套用到影像

描述

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

將自訂卷積核心套用到影像。

參數

kernel

卷積核心

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();
}

?>

新增註解

使用者貢獻的註解 2 則註解

0
ahmed at zigzapps dot com
5 年前
提供的範例是錯誤的。以下是正確的範例

$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();
-1
peter at musicalsaw dot com
11 年前
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