PHP Conference Japan 2024

Imagick::filter

(PECL imagick 3 >= 3.3.0)

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

警告

自 Imagick 3.4.4 起,此函数已弃用。强烈建议不要依赖此函数。

描述

public Imagick::filter(ImagickKernel $ImagickKernel, int $channel = Imagick::CHANNEL_UNDEFINED): bool

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

参数

ImagickKernel

一个 ImagickKernel 实例,表示单个内核或一系列链接的内核。

channel

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

返回值

成功时返回true

示例

示例 #1 Imagick::filter()

<?php
function filter($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$matrix = [
[-
1, 0, -1],
[
0, 5, 0],
[-
1, 0, -1],
];

$kernel = \ImagickKernel::fromMatrix($matrix);
$strength = 0.5;
$kernel->scale($strength, \Imagick::NORMALIZE_KERNEL_VALUE);
$kernel->addUnityKernel(1 - $strength);

$imagick->filter($kernel);
header("Content-Type: image/jpg");
echo
$imagick->getImageBlob();
}

?>

添加注释

用户贡献的注释 2 条注释

wangzh at dingl dot me
7 年前
-----Imagick 3.4.3 && ImageMagick 7.0.6

-----为什么找不到 filter 方法?

if (!method_exists(Imagick, 'filter')) {
echo 'undefined filter()!';
} else {
echo 'defined filter()!';
}
wangzh at dingl dot me
7 年前
-----Imagick::filter 无法工作!

-----suse linux 服务器,imagick 模块版本 3.4.3

-----运行示例 #1 Imagick::filter(),没有结果!问题出在哪里?

感谢您的回复!

Alex
To Top