imagesetinterpolation()
(PHP 5 >= 5.5.0, PHP 7)
Set the interpolation method
说明
imagesetinterpolation(resource $image[,int $method= IMG_BILINEAR_FIXED]): bool
Sets the interpolation method, setting an interpolation method affects the rendering of various functions in GD, such as the imagerotate() function.
参数
- $image
由图象创建函数(例如imagecreatetruecolor())返回的图象资源。
- $method
The interpolation method, which can be one of the following:
IMG_BELL
: Bell filter.IMG_BESSEL
: Bessel filter.IMG_BICUBIC
: Bicubic interpolation.IMG_BICUBIC_FIXED
: Fixed point implementation of the bicubic interpolation.IMG_BILINEAR_FIXED
: Fixed point implementation of the bilinear interpolation(default(also on image creation)).IMG_BLACKMAN
: Blackman window function.IMG_BOX
: Box blur filter.IMG_BSPLINE
: Spline interpolation.IMG_CATMULLROM
: Cubic Hermite spline interpolation.IMG_GAUSSIAN
: Gaussian function.IMG_GENERALIZED_CUBIC
: Generalized cubic spline fractal interpolation.IMG_HERMITE
: Hermite interpolation.IMG_HAMMING
: Hamming filter.IMG_HANNING
: Hanning filter.IMG_MITCHELL
: Mitchell filter.IMG_POWER
: Power interpolation.IMG_QUADRATIC
: Inverse quadratic interpolation.IMG_SINC
: Sinc function.IMG_NEAREST_NEIGHBOUR
: Nearest neighbour interpolation.IMG_WEIGHTED4
: Weighting filter.IMG_TRIANGLE
: Triangle interpolation.
返回值
成功时返回TRUE
,或者在失败时返回FALSE
。
范例
imagesetinterpolation() example
<?php // Load an image $im = imagecreate(500, 500); // By default interpolation is IMG_BILINEAR_FIXED, switch // to use the 'Mitchell' filter: imagesetinterpolation($im, IMG_MITCHELL); // Continue to work with $im ... ?>
注释
Changing the interpolation method affects the following functions when rendering:
Setting the interpolation does not carry through to any images created by imageaffine() or imagerotate(). It defaults to IMG_BILINEAR_FIXED and would need to be set on each generated image as required. <?php imagesetinterpolation( $image, IMG_NEAREST_NEIGHBOUR ); // Rotated using IMG_NEAREST_NEIGHBOUR $rotated = imagerotate( $image, 45, $transparent ); // Rotated using IMG_BILINEAR_FIXED $rotated_again = imagerotate( $rotated, 45, $transparent ); ?> Setting the interpolation to IMG_NEAREST_NEIGHBOUR can help to preserve details and prevent sampling issues when rotating an image at 90 degree increments, including when rotating clockwise. <?php // Rotated image can appear blurred and on a slight angle. $rotated = imagerotate( $image, -360, $transparent ); // Similar to starting Image although it may still show a background or be on a slight angle. imagesetinterpolation( $image, IMG_NEAREST_NEIGHBOUR ); $rotated = imagerotate( $image, -360, $transparent ); ?>