Page 1 sur 1

imagecopyresized()

Posté : 29 mars 2008, 15:54
par thibautg
Bonjour tout le monde

Voila je veut redimensionner des images avec GD et php ( je sais que les logiciels photo le fond mais j'ai besoin en php )
Voici mon code
function redim_image ($image,$new_W,$new_H,$file){
	
	// J'ai enlevé le chargement de l'image pour ne pas avoir un code trop long pour le forum

	$redim_im = imagecreatetruecolor($new_W, $new_H);
	
	imagecopyresized($redim_im,$image, 0, 0, 0, 0,$new_W, $new_H,$width, $height);

	//imagealphablending($redim_im, true);
	//imagesavealpha($redim_im,true);
	
	$file="test.png";
	imagepng($redim_im,$file);		
}

Voila ce sript marche bien pour les photo sans transparence , mais dés que j'ai une image qui utilise la transparence tout se complique, au lieu d'une belle image j'ai une image toute noir .
Je ne vois pas trop comment faire pour garder la transparence
Merci d'avance

Thibautg

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Posté : 29 mars 2008, 19:05
par Victor BRITO
Comme il s'agit de redimensionnement à partir d'une image existante, essaie de voir du côté d'imagecreatefrompng(). D'ailleurs, sur le manuel en ligne, quelques notes parlent de transparence PNG.

Posté : 29 mars 2008, 22:35
par thibautg
Heu imagecreatepng je l'utilise pour ouvrir mon image et je voit pa trop ou sa vient gène le imagecopyresized

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Edit : je viens de trouver la solution

//création de la base en couleur vrai
$redim_im = imagecreatetruecolor($new_W, $new_H);
// on sauvegarde le canal alpha
imagesavealpha($redim_im,true);

// on transforme le fond noir en fond transparent
$trans_colour = imagecolorallocatealpha($redim_im, 0, 0, 0, 127); 
imagefill($redim_im, 0, 0, $trans_colour); 

//on redimensionne ensuite l'image	
imagecopyresized($redim_im,$image, 0, 0, 0, 0, $new_W, $new_H, $width, $height);
Merci