(PECL imagick 2 >= 2.3.0, PECL imagick 3)
Imagick::functionImage — Applies a function on the image
$function, array $arguments, int $channel = Imagick::CHANNEL_DEFAULT): boolApplies an arithmetic, relational, or logical expression to a pseudo image.
See also » ImageMagick v6 Examples - Image Transformations — Function, Multi-Argument Evaluate
Bu yöntem, derleme sırasında ImageMagick kütüphanesinin 6.4.9 veya sonraki bir sürümü kuruluysa kullanılabilir.
functionRefer to this list of function constants
argumentsArray of arguments to pass to this function.
Başarı durumunda true döner.
Hata durumunda bir ImagickException istisnası oluşur.
Örnek 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();
?>Yukarıdaki örnek şuna benzer bir çıktı üretir:
Örnek 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();
?>Yukarıdaki örnek şuna benzer bir çıktı üretir:
Örnek 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();
?>Yukarıdaki örnek şuna benzer bir çıktı üretir: