(PHP 4, PHP 5, PHP 7, PHP 8)
imagecopyresized — Copie et redimensionne une partie d'une image
Description
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
): bool
En d'autres termes, imagecopyresized() prendra une
forme rectangulaire src_image
d'une largeur de
src_width
et d'une hauteur src_height
à la position (src_x
,src_y
)
et le placera dans une zone rectangulaire dst_image
d'une largeur de dst_width
et d'une hauteur de
dst_height
à la position
(dst_x
,dst_y
).
Si les dimensions de la source et de la destination ne sont pas égales, un
étirement adéquat est effectué pour faire correspondre
les deux. Les coordonnées fournies sont définies par rapport
au coin supérieur gauche. Cette fonction peut être
utilisée pour recopier 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, le résultat risque d'être
incohérent.
Liste de paramètres
-
dst_image
-
Ressource cible de l'image.
-
src_image
-
Ressource source de l'image.
-
dst_x
-
X : coordonnée du point de destination.
-
dst_y
-
Y : coordonnée du point de destination.
-
src_x
-
X : coordonnée du point source.
-
src_y
-
Y : coordonnée 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
Cette fonction retourne true
en cas de succès ou false
si une erreur survient.
Historique
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 à :
L'image affiché aura une taille de moitié moins que l'image d'origine, mais une
meilleur qualité peut être obtenue en utilisant la fonction
imagecopyresampled().
Notes
Note:
Il y a un problème dû aux limitations de la taille de la palette
(255 + 1 couleurs différentes). Filtrer ou rééchantillonner une image
demande plus de 255 couleurs, une approximation est alors utilisée pour
calculer le nouveau nombre de couleurs. Avec une palette, si une nouvelle
couleur ne peut être allouée, la couleur la plus proche (en théorie)
est utilisée ; ce n'est pas toujours celle qui est la plus proche visuellement.
Cela peut générer des problèmes étranges, comme des images blanches.
Pour éviter ce problème, passez en image TrueColor, comme celles
générée par la fonction 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é