PHP 8.4.0 RC4 available for testing

imagesetinterpolation

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

imagesetinterpolationDéfini la méthode d'interpolation

Description

imagesetinterpolation(GdImage $image, int $method = IMG_BILINEAR_FIXED): bool

Défini la méthode d'interpolation ; le fait de définir une méthode d'interpolation affecte le rendu de plusieurs fonctions en GD, comme par exemple la fonction imagerotate().

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

method

La méthode d'interpolation, qui peut être une parmi :

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version Description
8.0.0 image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

Exemples

Exemple #1 Exemple avec imagesetinterpolation()

<?php
// Chargement de l'image
$im = imagecreate(500, 500);

// Par défaut, l'interpolation est IMG_BILINEAR_FIXED ; on utilse plutôt
// le filtre 'Mitchell' :
imagesetinterpolation($im, IMG_MITCHELL);

// On continue de travailler avec $im ...
?>

Notes

La modification de la méthode d'interpolation affecte les fonctions suivantes lors du rendu :

Voir aussi

add a note

User Contributed Notes 1 note

up
-1
shaun at slickdesign dot com dot au
6 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 );
?>
To Top