imagesetinterpolation
(PHP 5 >= 5.5.0)
imagesetinterpolation — Set the interpolation method
Description
bool imagesetinterpolation
( resource
$image
[, int $method
= IMG_BILINEAR_FIXED
] )Sets the interpolation method, setting an interpolation method affects the rendering of various functions in GD, such as the imagerotate() function.
Parameters
-
image
-
An image resource, returned by one of the image creation functions, such as 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.
-
Return Values
Returns TRUE
on success or FALSE
on failure.
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:
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Обработка и генерация изображений
- Обработка изображений и GD
- gd_info
- getimagesize
- getimagesizefromstring
- image_type_to_extension
- image_type_to_mime_type
- image2wbmp
- imageaffine
- imageaffinematrixconcat
- imageaffinematrixget
- imagealphablending
- imageantialias
- imagearc
- imagechar
- imagecharup
- imagecolorallocate
- imagecolorallocatealpha
- imagecolorat
- imagecolorclosest
- imagecolorclosestalpha
- imagecolorclosesthwb
- imagecolordeallocate
- imagecolorexact
- imagecolorexactalpha
- imagecolormatch
- imagecolorresolve
- imagecolorresolvealpha
- imagecolorset
- imagecolorsforindex
- imagecolorstotal
- imagecolortransparent
- imageconvolution
- imagecopy
- imagecopymerge
- imagecopymergegray
- imagecopyresampled
- imagecopyresized
- imagecreate
- imagecreatefromgd2
- imagecreatefromgd2part
- imagecreatefromgd
- imagecreatefromgif
- imagecreatefromjpeg
- imagecreatefrompng
- imagecreatefromstring
- imagecreatefromwbmp
- imagecreatefromwebp
- imagecreatefromxbm
- imagecreatefromxpm
- imagecreatetruecolor
- imagecrop
- imagecropauto
- imagedashedline
- imagedestroy
- imageellipse
- imagefill
- imagefilledarc
- imagefilledellipse
- imagefilledpolygon
- imagefilledrectangle
- imagefilltoborder
- imagefilter
- imageflip
- imagefontheight
- imagefontwidth
- imageftbbox
- imagefttext
- imagegammacorrect
- imagegd2
- imagegd
- imagegif
- imagegrabscreen
- imagegrabwindow
- imageinterlace
- imageistruecolor
- imagejpeg
- imagelayereffect
- imageline
- imageloadfont
- imagepalettecopy
- imagepalettetotruecolor
- imagepng
- imagepolygon
- imagepsbbox
- imagepsencodefont
- imagepsextendfont
- imagepsfreefont
- imagepsloadfont
- imagepsslantfont
- imagepstext
- imagerectangle
- imagerotate
- imagesavealpha
- imagescale
- imagesetbrush
- imagesetinterpolation
- imagesetpixel
- imagesetstyle
- imagesetthickness
- imagesettile
- imagestring
- imagestringup
- imagesx
- imagesy
- imagetruecolortopalette
- imagettfbbox
- imagettftext
- imagetypes
- imagewbmp
- imagewebp
- imagexbm
- iptcembed
- iptcparse
- jpeg2wbmp
- png2wbmp
Коментарии
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 );
?>