imagesetinterpolation

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imagesetinterpolationSet the interpolation method

Description

imagesetinterpolation(GdImage $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.

Parameters

image

A GdImage object, returned by one of the image creation functions, such as imagecreatetruecolor().

method

The interpolation method, which can be one of the following:

Return Values

Returns true on success or false on failure.

Changelog

Version Description
8.0.0 image expects a GdImage instance now; previously, a valid gd resource was expected.

Examples

Example #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 ...
?>

Notes

Changing the interpolation method affects the following functions when rendering:

See Also

add a note

User Contributed Notes 1 note

up
-1
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.<?phpimagesetinterpolation( $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 );?>
To Top