Imagick::filter

(PECL imagick 3 >= 3.3.0)

Imagick::filterカスタム畳み込みカーネルを画像に適用する

警告

この関数は Imagick 3.4.4 以降では 非推奨 になりました。この関数に依存したコードを書くのはやめましょう。

説明

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

?>

add a note

User Contributed Notes 2 notes

up
0
wangzh at dingl dot me
8 years ago
-----Imagick  3.4.3  &&  ImageMagick 7.0.6  

-----why cannot find filter method????? 

if (!method_exists(Imagick, 'filter')) {
    echo 'undefined filter()!';
} else {
    echo 'defined filter()!';
}
up
0
wangzh at dingl dot me
8 years ago
-----Imagick::filter cannot work!

-----suse linux server   ,   imagick module version 3.4.3

-----run Example #1 Imagick::filter()  , there is no result!  where is problem?

thank you for your answer!

Alex
To Top