Imagick::fxImage

(PECL imagick 2, PECL imagick 3)

Imagick::fxImageEvaluate expression for each pixel in the image

Descrierea

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

Evaluate expression for each pixel in the image. Consult » The Fx Special Effects Image Operator for more information.

Parametri

expression

The expression.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Valorile întoarse

Întoarce true în caz de succes.

Erori/Excepții

Emite ImagickException în caz de eroare.

Exemple

Example #1 Imagick::fxImage()

<?php
function fxImage() {
    
$imagick = new \Imagick();
    
$imagick->newPseudoImage(200200"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 add a note

User Contributed Notes 1 note

up
2
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