(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
Această metodă este disponibilă dacă Imagick a fost compilat cu ImageMagick de versiunea 6.4.9 sau ulterior.
function
Refer to this list of function constants
arguments
Array of arguments to pass to this function.
Întoarce true
în caz de succes.
Emite ImagickException în caz de eroare.
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();
?>
Exemplul de mai sus va afișa ceva similar cu:
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();
?>
Exemplul de mai sus va afișa ceva similar cu:
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();
?>
Exemplul de mai sus va afișa ceva similar cu: