Imagick::fxImage
(PECL imagick 2, PECL imagick 3)
Imagick::fxImage — 式を画像の各ピクセルに適用する
説明
式を画像の各ピクセルに適用します。 詳細は » The Fx Special Effects Image Operator を参照ください。
パラメータ
expression
-
式。
channel
-
チャネルモードに対応したチャネル定数を指定します。 複数のチャネルに適用するには、 ビット演算子でチャネル型定数を組み合わせます。 チャネル定数 の一覧を参照ください。
戻り値
成功した場合に true
を返します。
エラー / 例外
エラー時に ImagickException をスローします。
例
例1 Imagick::fxImage()
<?php
function fxImage() {
$imagick = new \Imagick();
$imagick->newPseudoImage(200, 200, "xc:white");
$fx = 'xx=i-w/2; yy=j-h/2; rr=hypot(xx,yy); (.5-rr/140)*1.2+.5';
$fxImage = $imagick->fxImage($fx);
header("Content-Type: image/png");
$fxImage->setimageformat('png');
echo $fxImage->getImageBlob();
}
?>
+add a note
User Contributed Notes 1 note
thomasgf22 at NOSPAM dot gmail dot com ¶
10 years ago
Beware that fxImage return value's type is a new object(Imagick), opposing the current documentation (boolean). Therefore it does not affect the caller object. Example:
<?php
$canvas = new Imagick();
$canvas->newImage(256, 256, "white", "jpg");
$gradient = new Imagick();
$gradient->newPseudoImage(256, 256, "gradient:white-black");
$canvas->compositeImage( $gradient, imagick::COMPOSITE_OVER, 0, 0 );
$canvas->rotateImage(new ImagickPixel(), 90);
/*instead of just $canvas->fxImage("floor(s*10+0.5)/10"); we must store fxImage()'s result*/
$canvas= $canvas->fxImage("floor(s*10+0.5)/10");
header( "Content-Type: image/jpg" );
echo $canvas;
?>