Librairie GD en php et la transparence

kataklysm Messages postés 12 Statut Membre -  
s.spark Messages postés 2528 Statut Contributeur -
Bonsoir à tous,

Voilà j'aimerai savoir si quelqu'un a trouver une solution pour les images pngs et leurs transparences transparences lors du traitement d'images avec la librairies GD de php.

J'aimerai pouvoir copier une image png tout en gardant ses propriétés alpha. Ou redimentionner une image tout en gardant ces propriétés là.

Bonne soirée.
Merci d'avance pour vos réponses.
A voir également:

3 réponses

Spoon
 
Un peu tard mais ca peux peut etre en aider... En tres simplifié:

list($largeur, $hauteur, $type) = getimagesize($source);
$img = ImageCreateFromPng($source)
$l_img_final = 480;
$h_img_final = 640;
$im = ImageCreateTrueColor ($l_img_final, $h_img_final)
imagealphablending($im,FALSE);
imagesavealpha($im,TRUE);
ImageCopyResampled($im, $img, 0, 0, 0, 0, $l_img_final, $h_img_final, $largeur, $hauteur);


Je pense pas m'être trompé
12
nathure
 
Merci Spoon ! c'est exactement ce que je cherchais !
2
s.spark Messages postés 2528 Statut Contributeur 618
 
Ce message est vieux mais il répond bien à la question et c'est un des rare. Donc pour les future lecteurs voici son code corrigé et complété pour ceux qui aurait du mal à le faire.

<?php

$source = 'exemple.png';
list($largeur, $hauteur, $type) = getimagesize($source);
$img = imagecreatefrompng($source);

//Exemple de redimensionnement
$l_img_final = $largeur/2;// On divise la largeur final par 2
$h_img_final = $hauteur/2;// On divise la hauteur final par 2
$im = imagecreatetruecolor ($l_img_final, $h_img_final);// On crée une image 2 fois plus petite que l'original

imagealphablending($im,false); // On désactive le mode blending, obligatoire pour utiliser imagesavealpha()
imagesavealpha($im,true); // Enregistre les informations du canal alpha (transparence progressive)
imagecopyresampled($im, $img, 0, 0, 0, 0, $l_img_final, $h_img_final, $largeur, $hauteur);//Copie l'image source sur l'image créée en adaptant sa taille
imagepng($im);//Affiche ou sauvegarde une image au format PNG

//Spécifie l'entête image/png, on indique donc qu'il s'agit d'une image au format png
//Si l'image a une erreur, commentez cette ligne et vous pourrez lire l'erreur généré par PHP
header ('content-type: image/png');

//Si on ajoute cette ligne l'image ne sera pas affiché mais téléchargé
header('Content-Disposition: attachment; filename=nomfichierdefaut.png;');


?>
0