©
This document uses PHP Chinese website manual Release
(No version information available, might only be in Git)
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
此方法在Imagick基于ImageMagick 6.4.9以上版本编译时可用。
function
Refer to this list of function constants
arguments
Array of arguments to pass to this function.
成功时返回 TRUE
。
错误时抛出 ImagickException。
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 ();
?>
以上例程的输出类似于:
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 ();
?>
以上例程的输出类似于:
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 ();
?>
以上例程的输出类似于: