imagecopyresized

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecopyresizedCopie et redimensionne une partie d'une image

Description

function imagecopyresized(
    GdImage $dst_image,
    GdImage $src_image,
    int $dst_x,
    int $dst_y,
    int $src_x,
    int $src_y,
    int $dst_width,
    int $dst_height,
    int $src_width,
    int $src_height
): true

imagecopyresized() copie une partie rectangulaire d'une image dans une autre image de destination. dst_image est l'image de destination, src_image est l'image source.

En d'autres termes, imagecopyresized() prendra une zone rectangulaire de src_image d'une largeur de src_width et d'une hauteur src_height à la position (src_x,src_y) et la placera dans une zone rectangulaire de dst_image d'une largeur de dst_width et d'une hauteur de dst_height à la position (dst_x,dst_y).

Si les coordonnées et les dimensions de la source et de la destination diffèrent, un étirement ou un rétrécissement approprié du fragment d'image sera effectué. Les coordonnées sont définies par rapport au coin supérieur gauche. Cette fonction peut être utilisée pour copier des régions à l'intérieur d'une même image (si dst_image et src_image sont identiques), mais si les régions se chevauchent, les résultats seront imprévisibles.

Liste de paramètres

dst_image

Ressource cible de l'image.

src_image

Ressource source de l'image.

dst_x

Coordonnée x du point de destination.

dst_y

Coordonnée y du point de destination.

src_x

Coordonnée x du point source.

src_y

Coordonnée y du point source.

dst_width

Largeur de la destination.

dst_height

Hauteur de la destination.

src_width

Largeur de la source.

src_height

Hauteur de la source.

Valeurs de retour

Retourne toujours true.

Historique

Version Description
8.0.0 dst_image et src_image attendent désormais des instances de GdImage ; auparavant, des resources étaient attendues.

Exemples

Exemple #1 Redimensionnement d'une image

Cet exemple affichera l'image redimensionnée à la moitié de sa taille d'origine.

<?php
// Fichier et nouvelle taille
$filename = 'test.jpg';
$percent = 0.5;

// Content type
header('Content-Type: image/jpeg');

// Calcul des nouvelles dimensions
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;

// Chargement
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);

// Redimensionnement
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

// Affichage
imagejpeg($thumb);
?>

Résultat de l'exemple ci-dessus est similaire à :

Affichage de l'exemple : imagecopyresized()

L'image sera affichée à la moitié de sa taille, bien qu'une meilleure qualité puisse être obtenue en utilisant imagecopyresampled().

Notes

Note:

Il y a un problème dû aux limitations des images à palette (255 + 1 couleurs). Le rééchantillonnage ou le filtrage d'une image nécessite généralement plus de 255 couleurs, une sorte d'approximation est alors utilisée pour calculer le nouveau pixel rééchantillonné et sa couleur. Avec une image à palette, une tentative d'allocation d'une nouvelle couleur est effectuée et, en cas d'échec, la couleur la plus proche (en théorie) est choisie. Ce n'est pas toujours la couleur visuellement la plus proche. Cela peut produire un résultat étrange, comme des images blanches (ou visuellement blanches). Pour éviter ce problème, il faut utiliser une image TrueColor comme image de destination, telle qu'une image créée par imagecreatetruecolor().

Voir aussi

  • imagecopyresampled() - Copie, redimensionne, rééchantillonne une image
  • imagescale() - Met à l'échelle une image en utilisant une hauteur et une largeur fournies
  • imagecrop() - Recadre une image sur le rectangle donné