PHP Conference Japan 2024

Imagick::evaluateImage

(PECL imagick 2, PECL imagick 3)

Imagick::evaluateImage式を画像に適用する

説明

public Imagick::evaluateImage(int $op, float $constant, int $channel = Imagick::CHANNEL_DEFAULT): bool

算術演算、関係演算、論理演算などを画像に適用します。 これらの演算子を使用すると、画像の明度を変えたりコントラストを変えたり、 あるいは画像の "ネガ" を作成したりすることができます。

パラメータ

op

評価演算子。

constant

演算子の値。

channel

チャネルモードに対応したチャネル定数を指定します。 複数のチャネルに適用するには、 ビット演算子でチャネル型定数を組み合わせます。 チャネル定数 の一覧を参照ください。

戻り値

成功した場合に true を返します。

エラー / 例外

エラー時に ImagickException をスローします。

例1 Imagick::evaluateImage() の使用法

evaluateImage を使って画像の不透明度を減らします。

<?php
// 新しいオブジェクトを画像から作成します
$im = new Imagick('example-alpha.png');

// アルファを 50% に減らします
$im->evaluateImage(Imagick::EVALUATE_DIVIDE, 2, Imagick::CHANNEL_ALPHA);

// 画像を出力します
header("Content-Type: image/png");
echo
$im;
?>

add a note

User Contributed Notes 1 note

up
1
nils dot rocine at gmail dot com
12 years ago
What worked for me to convert a JPG source file to a semi-transparent PNG.

<?php
$srcImagick
= new Imagick($srcPath);

$pathTo50Perc = 'transparent1.png';

$srcImagick->setImageAlphaChannel(Imagick::ALPHACHANNEL_OPAQUE);

$srcImagick->evaluateImage(Imagick::EVALUATE_DIVIDE, 2, Imagick::CHANNEL_ALPHA);

$srcImagick->writeImage($pathTo50Perc);
?>
To Top