Forum und email

imagecopyresized

(PHP 4, PHP 5)

imagecopyresized — Copie et redimensionne une partie d'une image

Description

bool imagecopyresized ( resource $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 )

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. 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_im

Lien vers la ressource de l'image de destination

src_im

Lien vers la ressource de l'image source

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_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, FALSE en cas d'échec.

Exemples

Example#1 Redimensionnement d'une image

Cet exemple affichera l'image redimensionné à 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$source0000$newwidth$newheight$width$height);

// Affichage
imagejpeg($thumb);
?>

L'exemple ci-dessus va afficher quelque chose de 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().