Php/docs/imagick.functionimage

来自菜鸟教程
跳转至:导航、​搜索

Imagick::functionImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::functionImageApplies a function on the image


说明

public Imagick::functionImage ( int $function , array $arguments [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

Applies an arithmetic, relational, or logical expression to a pseudo image.

See also [http://www.imagemagick.org/Usage/transform/#function » ImageMagick v6 Examples - Image Transformations — Function, Multi-Argument Evaluate]

此方法在Imagick基于ImageMagick 6.4.9以上版本编译时可用。


参数

function
Refer to this list of function constants
arguments
Array of arguments to pass to this function.


返回值

成功时返回 true


错误/异常

错误时抛出 ImagickException。


范例

Example #1 Create a sinusoidal gradient

<?php$imagick = new Imagick();$imagick->newPseudoImage(200, 200, 'gradient:black-white');$arguments = array(3, -90);$imagick->functionImage(Imagick::FUNCTION_SINUSOID, $arguments);header("Content-Type: image/png");$imagick->setImageFormat("png");echo $imagick->getImageBlob();?>

以上例程的输出类似于:


Example #2 Create a gradient from the polynomial (4x^2 - 4x + 1)

<?php$imagick = new Imagick();$imagick->newPseudoImage(200, 200, 'gradient:black-white');$arguments = array(4, -4, 1);$imagick->functionImage(Imagick::FUNCTION_POLYNOMIAL, $arguments);header("Content-Type: image/png");$imagick->setimageformat("png");echo $imagick->getImageBlob();?>

以上例程的输出类似于:


Example #3 Create a complex gradient from the polynomial (4x^2 - 4x^2 + 1) modulated by a sinusoidal gradient

<?php$imagick1 = new Imagick();$imagick1->newPseudoImage(200, 200, 'gradient:black-white');$arguments = array(9, -90);$imagick1->functionImage(Imagick::FUNCTION_SINUSOID, $arguments);$imagick2 = new Imagick();$imagick2->newPseudoImage(200, 200, 'gradient:black-white');$arguments = array(0.5, 0);$imagick2->functionImage(Imagick::FUNCTION_SINUSOID, $arguments);$imagick1->compositeimage($imagick2, Imagick::COMPOSITE_MULTIPLY, 0, 0);header("Content-Type: image/png");$imagick1->setImageFormat("png");echo $imagick1->getImageBlob();?>

以上例程的输出类似于: