imagecopyresampled
(PHP 4 >= 4.0.6, PHP 5)
imagecopyresampled — Copie, redimensionne, rééchantillonne une image
Description
$dst_image
, resource $src_image
, int $dst_x
, int $dst_y
, int $src_x
, int $src_y
, int $dst_w
, int $dst_h
, int $src_w
, int $src_h
)
imagecopyresampled() copie une zone
rectangulaire de l'image src_im
vers
l'image dst_im
. Durant la copie,
la zone est rééchantillonnée de manière à conserver la clarté
de l'image durant une réduction.
En d'autres termes, imagecopyresampled() prendra une
forme rectangulaire src_image
d'une largeur de
src_w
et d'une hauteur src_h
à la position (src_x
,src_y
)
et le placera dans une zone rectangulaire dst_image
d'une largeur de dst_w
et d'une hauteur de
dst_h
à la position
(dst_x
,dst_y
).
Si les hauteurs et largeurs des source et destination
diffèrent, l'image copiée sera étirée de manière appropriée.
Les coordonnées sont celles du coin supérieur gauche.
imagecopyresampled() peut servir à copier
des zones d'une image vers elle-même, (si dst_image
est la même que src_image
) mais si les régions se
chevauchent, les résultats sont imprévisibles.
Liste de paramètres
-
dst_image
-
Lien vers la ressource cible de l'image.
-
src_image
-
Lien vers la ressource source de l'image.
-
dst_x
-
X : coordonnées du point de destination.
-
dst_y
-
Y : coordonnées du point de destination.
-
src_x
-
X : coordonnées du point source.
-
src_y
-
Y : coordonnées du point source.
-
dst_w
-
Largeur de la destination.
-
dst_h
-
Hauteur de la destination.
-
src_w
-
Largeur de la source.
-
src_h
-
Hauteur de la source.
Valeurs de retour
Cette fonction retourne TRUE
en cas de
succès ou FALSE
si une erreur survient.
Exemples
Exemple #1 Exemple simple
<?php // Le fichier $filename = 'test.jpg'; $percent = 0.5; // Content type header('Content-Type: image/jpeg'); // Calcul des nouvelles dimensions list($width, $height) = getimagesize($filename); $new_width = $width * $percent; $new_height = $height * $percent; // Redimensionnement $image_p = imagecreatetruecolor($new_width, $new_height); $image = imagecreatefromjpeg($filename); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); // Affichage imagejpeg($image_p, null, 100); ?>
<?php // Le fichier $filename = 'test.jpg'; // Définition de la largeur et de la hauteur maximale $width = 200; $height = 200; // Content type header('Content-Type: image/jpeg'); // Cacul des nouvelles dimensions list($width_orig, $height_orig) = getimagesize($filename); $ratio_orig = $width_orig/$height_orig; if ($width/$height > $ratio_orig) { $width = $height*$ratio_orig; } else { $height = $width/$ratio_orig; } // Redimensionnement $image_p = imagecreatetruecolor($width, $height); $image = imagecreatefromjpeg($filename); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); // Affichage imagejpeg($image_p, null, 100); ?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
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 la couleur 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 celle générée par la fonction imagecreatetruecolor().
Voir aussi
imagecopyresized() - Copie et redimensionne une partie d'une image