imagesetinterpolation
(PHP 5 >= 5.5.0, PHP 7, PHP 8)
imagesetinterpolation — Set the interpolation method
说明
Sets the interpolation method, setting an interpolation method affects the rendering of various functions in GD, such as the imagerotate() function.
参数
- 
image 由图象创建函数(例如imagecreatetruecolor())返回的 GdImage 对象。
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. 
 - 
         
          
 
示例
示例 #1 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:
参见
- imagegetinterpolation() - Get the interpolation method
 
  +添加备注
  
用户贡献的备注 1 note
  
  
  shaun at slickdesign dot com dot au ¶
  
 
7 years ago
  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 );
?>备份地址:http://www.lvesu.com/blog/php/function.imagesetinterpolation.php