(PHP 4, PHP 5, PHP 7, PHP 8)
imagecopyresized — Copie et redimensionne une partie d'une image
$dst_image,$src_image,$dst_x,$dst_y,$src_x,$src_y,$dst_width,$dst_height,$src_width,$src_height
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.
dst_imageRessource cible de l'image.
src_imageRessource source de l'image.
dst_xCoordonnée x du point de destination.
dst_yCoordonnée y du point de destination.
src_xCoordonnée x du point source.
src_yCoordonnée y du point source.
dst_widthLargeur de la destination.
dst_heightHauteur de la destination.
src_widthLargeur de la source.
src_heightHauteur de la source.
Retourne toujours true.
| Version | Description |
|---|---|
| 8.0.0 |
dst_image et src_image
attendent désormais des instances de GdImage ;
auparavant, des resources étaient attendues.
|
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 à :
L'image sera affichée à la moitié de sa taille, bien qu'une meilleure qualité puisse être obtenue en utilisant imagecopyresampled().
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().