Transparence pour superposition et changement de couleur - PHP - Programmation
Marsh Posté le 29-10-2005 à 20:01:41
en fait ImageColorTransparent() fonctionne qu'avec des truecolor
> Transparency is copied only with imagecopymerge() and true color images, not with imagecopy() or pallete images.
mais il te faut du truecolor :|
et là copies ton $res_image2 dans un nvlle truecolor, définit la couleur transparente et imagecopymerge().
mais en ce cas autant partir sur du png ...
Marsh Posté le 29-10-2005 à 20:03:37
Hummm j'avais justement vu pour le imagecopymerge(), mais je n'avais pas vu qu'il fallait une truecolor pour la transparence. En te remerciant, je vais tester ca.
Marsh Posté le 29-10-2005 à 20:11:07
cadeau
Code :
|
edit : mais sérieux, part sur du .png, non ?
Marsh Posté le 30-10-2005 à 05:45:38
Pourquoi du png plus que du gif? est ce que ca a une importance dans mon cas ou est ce que tu parle du "cas générale"?
Marsh Posté le 30-10-2005 à 13:10:28
oui, en fait tu as raison, je ne sais pas vraiment d'où viennent tes images, de ce qu'il a dessus ou si au final tu as besoin d'une image 8 bit, donc p.e. que le png n'a pas d'interêt ppour toi.
Mais ce que tu fais me fait étrangement penser à un système que je viens de mettre en place, un système de thumbnailing multicouches genre background / image / foreground. Et donc le foreground est un png 24 avec un joli dégradé genre couleur vers alpha, ce qui est totalement impossible avec une transparence mono-couleur (merci la couche alpha), et au final j'en sors un .jpg, car j'ai plus besoin de la transparence
De plus, si tu te fais un png foreground de taille raisonnable, le redimensionnement n'impacte pas sur l'aliasing comme sur les images 8 bits, ouala pourquoi du .png ...
Marsh Posté le 30-10-2005 à 13:19:39
Non mais en fait ce sur quoi je trvail est système permettant de "fusionner" des images tout format donc en fait le gif c'était juste pour l'exemple, ce que je fais c'est que je laisse totalement le choix à l'utulisateur qui peu donc choisir ses deux images, mon code en détecte le formet les fusionne et laisse encore le choix à l'utilisateur du format de sortie.
Marsh Posté le 30-10-2005 à 14:56:51
Tiens en fait en passant j'en profite pour poser une nouvelle question :
Existe-t-il une fonction qui permet de changer une couleur sur l'image, par exemple de passer tout ce qui est en noir en rouge? Je n'ais rien vu de tel mais je suis peut être passé à côté...
Marsh Posté le 31-10-2005 à 18:33:06
dwogsi a écrit : ...changer une couleur sur l'image, par exemple de passer tout ce qui est en noir en rouge... |
je dirais que si c'est une image à pallette, rien de plus simple ...
imagecolorexact() puis imagecolorset()
maintenant sur une truecolor, je ne sais pas si c'est possible via GD ...
mais là encore une fois un png 24 avec alpha, et hop
[ edit: mais je sais, ça correpond pas à ton appli ... ]
Marsh Posté le 31-10-2005 à 18:48:00
Bah en fait je me suis jamais vraiment intéressé à la création d'images via PHP/GD, sauf pour faire des captcha.. Donc je continue à m'y intéressé pour développé d'autres applis pour mon plaisir personnel. En tout cas merci, je vais tester ça.
Marsh Posté le 31-10-2005 à 19:14:56
Bon et bien ta solution marche à merveille! Merci
Sinon j'arrive toujours pas à rendre une zone transparentes das mon image si par exemple le rendu est en gif, j'ai lu des choses sur les png et les couches alpha mais là je suis complétement largué... Mais je vais me débrouillé tant bien que mal. Encore merci.
Marsh Posté le 31-10-2005 à 20:05:10
dwogsi a écrit : Sinon j'arrive toujours pas à rendre une zone transparentes das mon image si par exemple le rendu est en gif, j'ai lu des choses sur les png et les couches alpha mais là je suis complétement largué... |
je suis pas sûr de voir où est ton soucis ?
Tu veux dire de rendre une couleur transparente pour une sortie en gif ?
Ci dessous un exemple, en image 8 bits
- ouverture d'un gif 8 bits avec transparence
- création d'une img de destination
- application d'un arrière plan kaki (hmmm...)
- définition de la couleur RGB(119, 123, 180) - le violet du logo - en tant que transparente
- sortie vers un gif 8 bits
et en commenté, la version truecolor/png - m$ie Not Friendly
le résultat est très moche, mais illustre bien le propos
Code :
|
Marsh Posté le 01-11-2005 à 16:55:08
Ah bah ca marche très bien merci
Je sais pas où j'ais raté quelque chose, certainement dans l'ordre des choses mais bon. Merci encore!
Marsh Posté le 01-11-2005 à 17:03:21
dwogsi a écrit : Je sais pas où j'ais raté quelque chose, certainement dans l'ordre des choses mais bon. Merci encore! |
ouais, d'ailleurs moi aussi je me demande un truc, c'est quoi ce délire où soi disant la transparence n'est pas copiée avec imagecopy() si pas en truecolour (comme je le dis plus haut, en citant la doc), passke là ça marche sur un GD 2+ en 8bits, peut-être était-ce sur les versions pré 2.x ?
Il faut dire que la doc php (et même celle de GD) n'est pas très claire sur comportement/utilisation des fonctions selon pallette/truecolour ... m'enfin ...
Marsh Posté le 01-11-2005 à 17:22:37
Ouai de toute facon la doc sur GD franchement c'est un peu maigre... Et pas très clair comme tu l'as dit.
Marsh Posté le 29-10-2005 à 19:02:32
Salut tous!
Bon alors mon problème se situe au niveau de la création d'images, mais vu le titre je pense que c'est évident. Bref voici mon problème :
J'ais deux images, disons 1.gif et 2.gif de 100px * 100px chacune. Mon but est de les spperposer en utilisant une transparence définie à partir d'une couleur. Bon je sais c'est pas clair mais voici ce que ca donne :
Alors les deux images que j'utilises ont toutes deux un fond blanc.
Donc forcément quand je fait les copies des deux l'une viens surperposer l'autre et la masque.
Alors voici ma question :
Y a t il un moyen de faire en sorte que lorsque la copie d'une image se fait qu'une couleur (disons le blanc) soit ignorée, autrement dit qu'elle ne soit pas copiée et ainsi faire comme si mon image 2.gif avait un fond transparent et non pas blanc.
En vous remerciant et bonne soiré/journée.
Message édité par dwogsi le 31-10-2005 à 19:06:59
---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/