petit-ourson Posté 26 Août 2005 Partager Posté 26 Août 2005 (modifié) Si quelqu'un a un peu utiliser les fonctions GD sous PHP ... J'essaie de creer une image transparente mais ... Impossible de réussir à gérer cette transparence ;o) $vImage = imagecreatetruecolor( 100 , 100);imagesavealpha( $vImage, true );$bg = imagecolorallocatealpha($vImage, 255, 255, 255, 60);imagefilledrectangle ($vImage, 0, 0, 100, 100, $bg);$vTextColor = imagecolorallocate( $vImage, 0, 0, 0 );imagestring ( $vImage, 10, 0 , 9, "aaaaa", $vTextColor ); header("Content-type: image/png");Imagepng($vImage); En modifiant le dernier paramètre de imagecolorallocatealpha() avec les valeurs de 0 a 127, il passe du blanc au noir mais c'est pas trop cela que je cherche. Il devrait passer du blanc au transparent. Merci d'avance Modifié 26 Août 2005 par petit-ourson Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 28 Août 2005 Partager Posté 28 Août 2005 Le problème que tu poses ne vient pas de la lib. GD, mais de IExplorer, qui gère mal (pas du tout, je crois) la transparence des .png. Essaies de voir avec un autre navigateur, ou changes d'extension. Lien vers le commentaire Partager sur d’autres sites More sharing options...
petit-ourson Posté 28 Août 2005 Auteur Partager Posté 28 Août 2005 Je suis sous Firefox et l'image ne s'affiche pas bien non plus dans un éditeur d'image. Cela fonctionne bien si je part d'une ressource produite par un createimagefrompng() mais pas si je pars d'une ressource imagecreatetruecolor(). Lien vers le commentaire Partager sur d’autres sites More sharing options...
MarvinLeRouge Posté 28 Août 2005 Partager Posté 28 Août 2005 Salut, Il me semble qu'il y a un paramètre qui indique si on veut gérer la transparence ou faire un mélange (blending). Regarde du côté de la fonction imagealphablending. Lien vers le commentaire Partager sur d’autres sites More sharing options...
petit-ourson Posté 28 Août 2005 Auteur Partager Posté 28 Août 2005 Tient j'etais passé à côté de cette fonction. Je verifierai demain au boulot ;o) Merci je vous tiens au courant. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dudu Posté 28 Août 2005 Partager Posté 28 Août 2005 [HS] Le problème que tu poses ne vient pas de la lib. GD, mais de IExplorer, qui gère mal (pas du tout, je crois) la transparence des .png. Il les gère juste mal. Il sait gérer une transparence binaire sur les PNG (comme si c'était un gif transparent, en fait) mais foire sur les canaux alpha qui permettent une transparence sur 254 niveaux.[/HS] Lien vers le commentaire Partager sur d’autres sites More sharing options...
destroyedlolo Posté 29 Août 2005 Partager Posté 29 Août 2005 [HS] Il les gère juste mal. Il sait gérer une transparence binaire sur les PNG (comme si c'était un gif transparent, en fait) mais foire sur les canaux alpha qui permettent une transparence sur 254 niveaux. [/HS] <{POST_SNAPBACK}> T'es sur de ton coup ? Je savais que c'etait le cas sous IE, mais je croiyais que le support PNG sous FF etait complet ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 29 Août 2005 Partager Posté 29 Août 2005 En l'occurence, c'est bien de IE que l'on parle Lien vers le commentaire Partager sur d’autres sites More sharing options...
destroyedlolo Posté 29 Août 2005 Partager Posté 29 Août 2005 Oups, il faudrait peut etre que je face la sieste Lien vers le commentaire Partager sur d’autres sites More sharing options...
chistof Posté 15 Mars 2006 Partager Posté 15 Mars 2006 Je reprends le fil de cette discussion intéressante. Effectivement si on passe imagealphablending à false, on peut gérer les transparences correctement. Par exemple pour obtenir un fond transparent dans une image (imagefill ne fonctionne pas avec des couleurs transparentes utilisant des alpha, en tout cas pas sous PHP 5.0, il semble que sur la dernière version cela est corrigé) : //$img est une ressource créé à partir de imagecreatetruecolor par ex.imagealphablending($img,false);$black = imagecolorallocate($img,0,0,0);imagefill($img,0,0,$black);imagecolortransparent($img,$black);//continuer avec imagettftext(...) pour écrire un texte Si vous ne mettez pas la ligne imagealphablending false vous aurez aussi un fond transparent mais le bord de l'écriture sera mixé avec du noir (bien moche). Attention aprés vous ne pouvez plus utiliser la couleur noire pure (0,0,0), vous pouvez utiliser à la place (0,0,1). Si ça intéresse quelqu'un, je suis sur le point de terminer une classe basée sur la librairie GD 2 qui permet d'écrire et éditer du texte sur fond transparent, disponible dans quelques jours sur http://christophe.helson.free.fr Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 15 Mars 2006 Partager Posté 15 Mars 2006 Tu destines cette classe à une utilisation particulière, ou c'est juste 'comme ca' ? Parce qu'à l'époque où tout le monde veut mettre un maximum de contenu texte sur la page, il peut paraitre surprenant de vouloir écrire du texte 'en image', non ? C'est vrai qu'au niveau de la reproduction de la page, ca peut poser des problèmes, et donc régler .. le problème du copyright dudit texte. Mais celui-ci ne sera pas indexé, ce qui n'est pas forcément mieux... (quoiqu'une utilisation sympa peut être l'utilisation en balise 'antispam' pour les adresses email ) D'où ma question.. (et préviens nous lorsque c'est ok ) Lien vers le commentaire Partager sur d’autres sites More sharing options...
chistof Posté 16 Mars 2006 Partager Posté 16 Mars 2006 Le point de départ est uniquement de progresser en développement objet php5. Comme j'aime l'aspect imagerie, j'ai choisi de creuser les possibilités de la librairie GD. Aprés en lisant les commentaires du manuel php, j'ai vu que ça pouvait correspondre à un manque dans le domaine. Effectivement ce n'est pas du tout adapté à un point de vue rédactionnel, puisque non référençable. Je le verrais plutôt pratique d'un point de vue graphisme. Je vous tiens au courant. Lien vers le commentaire Partager sur d’autres sites More sharing options...
chistof Posté 16 Mars 2006 Partager Posté 16 Mars 2006 La classe textImg permet de transformer un texte en image PNG avec un fond transparent. Elle utilise la librairie GD version 2. Les caractéristiques principales sont : * le choix de la police, la taille, l'angle d'écriture et la couleur du texte, * le calcul optimisé des dimensions de l'image en fonction de la longueur du texte, * la création d'un arrière plan transparent dans l'image, * le positionnement dans une image de fond existante pour fusionner les deux. Je vous invite à la tester si vous êtes intéressés par le graphisme sous PHP. Toutes vos remarques seront les bienvenues Il y a également sur le site une page d'application qui vous laissera assouvir vos instincts de taggeurs enfouis en vous depuis votre adolescence Enjoy, http://christophe.helson.free.fr/textimg.php5 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant