JeuWeb - Crée ton jeu par navigateur
Transparence PNG avec GD2 - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Transparence PNG avec GD2 (/showthread.php?tid=4699)



Transparence PNG avec GD2 - Argorate - 02-04-2010

J'ai un problème avec la librerie GD2 et la transparence de mon PNG.

Je génére une image php de la manière suivante:

Code PHP :
<?php 
$image
= imagecreatefrompng($path_img);

et je l'affiche grace a la fonction fait pour:

Code PHP :
<?php 
imagepng
($image);

Mais il prend pas en compte le transparent, il m'affiche en blanc tout se qui devrait l'etre, une idée de comment faire?

Ou comment detecter des pixels transparent? ce sera encore mieux...


RE: Transparence PNG avec GD2 - Allwise - 03-04-2010

Google
imagecreatefrompng
imagesavealpha
imagecolortransparent
Et pour finir
La bonne manière de poser des questions


RE: Transparence PNG avec GD2 - NicoMSEvent - 06-04-2010

+1 Allwise Wink

Je ne t'en veux pas Argo, c'est juste une (bête) question qui se résous assez facilement en lisant la doc :p

J'ai été confronté au même problème que toi pour mes "avatars transparents" (gif ou png, même combat), et j'ai assez vite trouvé seul.
Si jamais tu as des soucis, montre nous ton cheminement, et l'endroit ou ça coince
(90% des problèmes que je rencontre, je les résous seul, juste en rédigeant ma question sur ce forum, et finalement je ne poste pas cette question ^^)


RE: Transparence PNG avec GD2 - Argorate - 06-04-2010

J'avais déjà rechercher avant de poster et fait des test mais de toute évidence: pas concluant.
Apparemment ce que je veux n'est pas possible ou personne ne sais, bref, j'ai trouvé une cheat comme d'hab, mais ça m'embête de pas avoir une solution qui marche a tout les coups.

Pour parler plus concrètement, dans mon cas, je sais que tel couleur ne sera jamais présent dans mes images, donc je l'ai définit comme transparent et j'ai bidouillé mes images en question pour que ça corresponde, mais j'aurais préférer que ça détecte n'importe quel transparent de base car le jour où j'ai une image quelconque, mon système marche plus... Donc j'écoute tjs si vous avez des idées constructive sur le sujet.


RE: Transparence PNG avec GD2 - NicoMSEvent - 06-04-2010

Bon, tu as déjà mieux expliqué ce que tu voulais, c'est plus simple a comprendre (pour nous) ce que tu attends de nous Wink

pour ma part, je sais que dans toutes mes images transparentes, j'ai le pixel en haut a gauche qui sera toujours transparent (je ne joue pas avec les semi-transparence), et je me base sur ce pixel pour définir ma couleur transparente (qui varie selon les images).
fonction utile : imagecolorat

Je n'ai pas trouvé comment définir automatiquement la couleur transparente d'un png (ou d'un gif). Si quelqu'un d'autre a une idée la dessus... ou bien alors tu fais comme moi si tu connais la position commune d'un pixel transparent, a toutes tes images

Edit :
pas testé, mais ça l'air intéressant, pour garder la transparence d'un fichier que tu charges :
$imgPng = imageCreateFromPng($strImagePath);
imageAlphaBlending($imgPng, false);
imageSaveAlpha($imgPng, true);



RE: Transparence PNG avec GD2 - Argorate - 06-04-2010

Justement, le truc c'est que si t'as des milliers d'image quelconque, tu vas pas t'amuses a définir le pixel du haut pour chaque. Quand bien même, c'est une "astuce" plus qu'un solution ^^

J'ai déjà testé le code que tu indiques que j'avais également remarqué un peu en dessous de la description (http://php.net/manual/fr/function.imagecreatefrompng.php) mais ça n'a rien donné de mon coté... Sad

Voilà le problème (que je trouvais pourtant clair, dsl si ce n'était pas le cas ^^)