Librairie GD en php et la transparence

Fermé
kataklysm Messages postés 12 Date d'inscription lundi 31 décembre 2007 Statut Membre Dernière intervention 22 mars 2008 - 11 févr. 2008 à 20:14
s.spark Messages postés 2480 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 - 4 mars 2014 à 07:46
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

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 Spoon ! c'est exactement ce que je cherchais !
2
s.spark Messages postés 2480 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 617
Modifié par s.spark le 4/03/2014 à 08:20
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