PHP Conference Japan 2024

Imagick::fxImage

(PECL imagick 2, PECL imagick 3)

Imagick::fxImage評估影像中每個像素的運算式

描述

public Imagick::fxImage(string $expression, int $channel = Imagick::CHANNEL_DEFAULT): Imagick

評估影像中每個像素的運算式。請參閱 » Fx 特效影像運算子以取得更多資訊。

參數

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

?>

新增附註

使用者貢獻的附註 1 則附註

thomasgf22 at NOSPAM dot gmail dot com
10 年前
請注意,fxImage 回傳值的類型是一個新的物件 (Imagick),與目前的文件 (布林值) 相反。因此,它不會影響呼叫端物件。範例
<?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);
/* 不只是 $canvas->fxImage("floor(s*10+0.5)/10"),我們必須儲存 fxImage() 的結果 */
$canvas= $canvas->fxImage("floor(s*10+0.5)/10");

header( "Content-Type: image/jpg" );
echo
$canvas;
?>
To Top