Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1109 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  PHP/GD composition d'images png

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PHP/GD composition d'images png

n°1273652
NikoGJ
Posté le 27-12-2005 à 12:29:13  profilanswer
 

Salut tt le monde  :hello:  
 
J'ai déjà posté mon message partout sur le net sans succès, je pence qu'ici il y aura plus de réponses! :bounce:  
 
Alors voila mon problème: je cherche à créer une image png à partir d'autres images png 24 bits (avec un canal alpha)
 
- Donc je commence par créer mon image principale avec imagecreatetruecolor()...
- Puis je charge mes images avec imagecreatefrompng(..)
- Je mixe mes images avec des imagecopymerge(...)
- Enfin, je rend le tout imagepng()
 
Jusque la ça va, le problème, c'est cette p... de transparence!!  :fou:  
Apparement le canal alpha n'est pas pris en compte, du coup, ce qui devait etre transparent est remplacé par du blanc bref, tout est opaque  :pt1cable:  
 
J'ai cherché et j'ai essayé d'ajouter des imagesavealpha() et des imagealphablending un peu de partout mais c toujours pareil. A pas de transparence, ça marche que lorsque de je rend 1 seule image :p
 
Donc est-ce que cette chose est possible à faire? est-ce que j'utilise les bonnes fonctions? est-ce qu'il fo faire le traitement pixel par pixel pour chaque image pour gerer le canal alpha?  :sweat:  
 
 
Merchi !


---------------
La paresse, c'est se lever très tot le matin pour avoir plus de temps à ne rien faire...
mood
Publicité
Posté le 27-12-2005 à 12:29:13  profilanswer
 

n°1274784
NikoGJ
Posté le 30-12-2005 à 02:45:24  profilanswer
 

Vous battez pas, j'ai trouvé!  :D  
 
Pour les curieux, voici un petit code rapide pour fusionner des images PNG encodées en 24bits, (donc avec un canal alpha):
 

Code :
  1. <?php
  2.   // On va renvoyer une image PNG
  3.   header('Content-Type: image/png');
  4.   // Création de l'image (vierge)
  5.   $rendu = imagecreatetruecolor($largeur, $hauteur);
  6.   // Par défaut le fond de l'image est noir, on va la remplir d'une couleur
  7.   // Ici du bleu clair
  8.   $fond = imagecolorallocatealpha($rendu,  0, 128, 255, 0);
  9.   imagefill($rendu, 0, 0, $fond);
  10.   // On active l'alphablending
  11.   imagealphablending($rendu, true);
  12.   // On charge le ou les image(s) png
  13.   $image1 = imagecreatefrompng("nom de l'image" );
  14.   $image2 = ...
  15.   // Fusion des images sur l'image finale
  16.   imagecopy($rendu, $image1, positionX, positionY, largeur_image, hauteur_image);
  17.   imagecopy(......);
  18.   // On déactive l'alphablending
  19.   imagealphablending($rendu, false);
  20.   // Sauvegarde des données alpha
  21.   imagesavealpha($rendu, true);
  22.   // Enfin, on rend l'image
  23.   imagepng($rendu);
  24. ?>


 
Vala, maintenant on peut faire des beaux dessins en PHP avec de l'antialiasing  ^^
 
A+

n°1901827
cyberfreak
Posté le 03-07-2009 à 00:20:23  profilanswer
 

Bonjour.
 
J'ai le meme genre de probleme et je ne comprends pas ce que tu as fait.
 
j'ai des images hexagonales avec lesquelle je voudrais dessiner un plateau de jeu.
 
voici mon code :
 

Code :
  1. <?php
  2. header('Content-type: image/png');
  3. $rayon = $_GET['r'];
  4. $diam = $rayon * 2 + 1;
  5. $hexH = 33;
  6. $hexW = 67;
  7. $hexHR = 7;
  8. $hexWR = 10;
  9. $margeSup = 20;
  10. $marges = 5;
  11. $height = $diam * $hexH + $hexHR;
  12. $heightR = $height + $margeSup + $marges;
  13. $width = $diam * $hexW + $hexWR;
  14. $widthR = $width + $marges + $marges;
  15. $im = imagecreatetruecolor($widthR, $heightR);
  16. $noir = imagecolorallocate($im, 0, 0, 0);
  17. imagefill( $im, 0, 0, $noir);
  18. imagecolortransparent($im, $noir);
  19. imagealphablending($im, true);
  20. $hexa = imagecreatefrompng("montagne.png" );
  21. $noir = imagecolorallocate($hexa, 0, 0, 0);
  22. imagecolortransparent($hexa, $noir);
  23. //imagealphablending($hexa, true);
  24. $x0 = $rayon * $hexH;
  25. $y0 = $rayon * $hexW;
  26. $yi = $rayon;
  27. while ($yi >= -$rayon)
  28.     {
  29.     $xi = -$rayon;
  30.     while ($xi <= $rayon)
  31.         {
  32.         if(($xi<=0 and $yi<=0) or ($xi>=0 and $yi>=0) or ($rayon >= abs($yi)+abs($xi)))
  33.             {
  34.             $im = drawHex($xi, $yi, $im, $hexa, $x0, $y0);
  35.             }
  36.         $xi = $xi + 1;
  37.         }
  38.     $yi = $yi - 1;
  39.     }
  40. imagedestroy($hexa);
  41. imagepng($im);
  42. imagedestroy($im);
  43. function drawHex($x ,$y , $img, $hex, $x0, $y0)
  44.     {
  45.    
  46.     $x0 = $x0 + $x * 9;
  47.     $y0 = $y0 + $x * 67;
  48.     $x0 = $x0 - $y * 33;
  49.     $y0 = $y0 - $y * 18;
  50.     imagecopymerge($img, $hex, 0, 0, -$y0, -$x0, 700, 500, 100);
  51.     return $img;
  52.     }
  53. ?>


 
ca me donne ca : http://www.fallenheaven.org/carte/imageAlpha.php?r=4
Evidamment, ca n'est pas le but recherche... les rectangles blancs qui entourent les hexagones devraient etre invisibles.
 
voici l'image de montagne de laquelle je pars : http://www.fallenheaven.org/carte/montagne.png
 
Un petit coup de main serait le bienvenu.

n°1915639
kiliand
Posté le 17-08-2009 à 11:04:11  profilanswer
 

Bonjour amis développeur je recherche une solution php pour créé une composition en GD mon but étant de pouvoir créé ce genre de composition : http://kdesroches.fr/capture.jpg.
 
J'avais commencer un code, mais rien de bien génial . Avez vous un code qui pourrai éventuellement me servir de base ? En remerciant par avance . Kilian


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  PHP/GD composition d'images png

 

Sujets relatifs
[SQL/PHP] Selectionner toute les tables d'une baseFichiers images png/gif sous VB6?
[PHP] in_array()Je débute en PHP
[PHP/PDF] slution automatique d'envoi de PDFpar fax[C++/MySQL/PHP/et +] Cherche programmeurs (projet jeu gratuit)
[VBA POWERPOINT] [done]Supprimer toutes les images du slide1A la recherce d'un Portail de type PHP Nuke...
[HTML - PHP - JS - ...] Afficher une page Web dans une autreproblème jeu du pendu en PHP
Plus de sujets relatifs à : PHP/GD composition d'images png


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR