(Não há informação de versão disponível, talvez apenas no SVN)
Imagick::functionImage — Applies a function on the image
$function
, array $arguments
[, int $channel
= Imagick::CHANNEL_DEFAULT
] )Applies an arithmetic, relational, or logical expression to a pseudo image.
See also » ImageMagick v6 Examples - Image Transformations — Function, Multi-Argument Evaluate
Este método está disponível se o PHP foi compilado com o ImageMagick versão 6.4.9 ou superior.
function
Refer to this list of function constants
arguments
Array of arguments to pass to this function.
Retorna TRUE
no sucesso.
Lança ImagickException em caso de erro.
Exemplo #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();
?>
O exemplo acima irá imprimir algo similar à:
Exemplo #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();
?>
O exemplo acima irá imprimir algo similar à:
Exemplo #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();
?>
O exemplo acima irá imprimir algo similar à: