Librairie GD en php et la transparence [Fermé]

Signaler
Messages postés
12
Date d'inscription
lundi 31 décembre 2007
Statut
Membre
Dernière intervention
22 mars 2008
-
s.spark
Messages postés
2502
Date d'inscription
vendredi 29 octobre 2004
Statut
Contributeur
Dernière intervention
13 février 2018
-
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.

3 réponses

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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 83270 internautes nous ont dit merci ce mois-ci

Merci Spoon ! c'est exactement ce que je cherchais !
Messages postés
2502
Date d'inscription
vendredi 29 octobre 2004
Statut
Contributeur
Dernière intervention
13 février 2018
559
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;');


?>