• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 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 );
    ?>
    

    上篇:imagesetclip()

    下篇:imagesetpixel()