PHP Conference Japan 2024

Imagick::fxImage

(PECL imagick 2, PECL imagick 3)

Imagick::fxImageEvalúa una expresión por cada píxel de la imagen

Descripción

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

Evalúa una expresión por cada píxel de la imagen. Consulte » El Operador de Imagen de Efectos Especiales Fx para más información.

Parámetros

expression

La expresión.

channel

Proporcione cualquier constante de canal que sea válida para su modo de canal. Para aplicar más de un canal, combine las constantes channeltype usando operadores a nivel de bits. Consulte esta lista de constantes de canal.

Valores devueltos

Devuelve true en caso de éxito.

Errores/Excepciones

Lanza ImagickException en caso de error.

Ejemplos

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

?>

add a note

User Contributed Notes 1 note

up
4
thomasgf22 at NOSPAM dot gmail dot com
10 years ago
Beware that fxImage return value's type is a new object(Imagick), opposing the current documentation (boolean). Therefore it does not affect the caller object. Example:
<?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);
/*instead of just $canvas->fxImage("floor(s*10+0.5)/10"); we must store fxImage()'s result*/
$canvas= $canvas->fxImage("floor(s*10+0.5)/10");

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