begin process at 2008 07 20 22:39:12
1 213 476 membres
381 nouveaux aujourd'hui
14 167 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

COMBINER DEUX IMAGES AVEC LA LIBRAIRIE GD (PNG OU JPEG) AVEC TRANSPARENCE DE L'IMAGE PAR DESSUS L'AUTRE


Information sur la source

Catégorie :Graphique Niveau : Initié Date de création : 10/09/2004 Vu : 3 792

Note :
3,5 / 10 - par 2 personnes
3,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

Description

Cette fonction (qui n'est pas de moi) est tres pratique pour fusioner deux images PNG ou JPEG, j'ai juste traduit les commentaires

Source

  • // La ligne de header informe le serveur sur le type de donnée transmises
  • // Dans ce cas, il s'agit d'un fichier PNG
  • // l'image est envoyée telle quelle
  • header ("Content-type: image/png");
  • // Definir l'image de fond. Une image JPEG peut etre utilisee avec la fonction
  • // imagecreatefromjpeg
  • $background = imagecreatefrompng("backgroundimage.png");
  • // Definition de limage overlay qui sera incluse dans l image background
  • $insert = imagecreatefrompng("overlay.png");
  • // Selection du premier pixel de l image overlay (a la position 0,0) et utiliser
  • // la couleur de ce pixel comme couleur transparente
  • imagecolortransparent($insert,imagecolorat($insert,0,0));
  • // Recuperation des dimensions de l'image
  • $insert_x = imagesx($insert);
  • $insert_y = imagesy($insert);
  • // Combiner les images (la fonction imagcopy() peut marcher mais bug souvent)
  • imagecopymerge($background,$insert,0,0,0,0,$insert_x,$insert_y,100);
  • // Envoyer le resultat au navigateur (note : l inclusion dans du HTML n'est pas obligatoire)
  • imagepng($background,"",100);
  // La ligne de header informe le serveur sur le type de donnée transmises
  // Dans ce cas, il s'agit d'un fichier PNG
  // l'image est envoyée telle quelle

  header ("Content-type: image/png"); 


  // Definir l'image de fond. Une image JPEG peut etre utilisee avec la fonction
  // imagecreatefromjpeg

  $background = imagecreatefrompng("backgroundimage.png"); 


  // Definition de limage overlay qui sera incluse dans l image background

  $insert = imagecreatefrompng("overlay.png"); 


  // Selection du premier pixel de l image overlay (a la position 0,0) et utiliser
  // la couleur de ce pixel comme couleur transparente

  imagecolortransparent($insert,imagecolorat($insert,0,0));


  // Recuperation des dimensions de l'image

  $insert_x = imagesx($insert); 
  $insert_y = imagesy($insert); 


  // Combiner les images (la fonction imagcopy() peut marcher mais bug souvent)

  imagecopymerge($background,$insert,0,0,0,0,$insert_x,$insert_y,100); 


  // Envoyer le resultat au navigateur (note : l inclusion dans du HTML n'est pas obligatoire)
  imagepng($background,"",100); 
  • signaler à un administrateur
    Commentaire de iubito le 13/09/2004 10:43:08

    hop, in ze favoris :-)

  • signaler à un administrateur
    Commentaire de Magidev le 13/09/2004 12:16:06

    Lol :-)

  • signaler à un administrateur
    Commentaire de yakou32 le 13/09/2004 15:29:16

    Cool !

    Sinon le 100 dans "imagecopymerge" c'est pour le niveau de transparence ? on peut fusionner en conservant la transparence de la permière ?

  • signaler à un administrateur
    Commentaire de capoueidiablo le 06/05/2007 19:03:27

    Cette fonction permet de fusionner deux images gif ayant toute deux une transparence et conserve cette dernière ...
    [code]
      function mergeAlpha ($url, $logo) {
          /* on pourrait par exemple rendre ca un peu plus générique :
          $ext = strtolower(end(explode('.', $image_path)));
          if ($ext == "gif") on appel imagecreatefromgif
          if ($ext == "png") on appel imagecreatefrompng et ainsi de suite
          */
          $url  =  imagecreatefromgif ($url);
          $logo =  imagecreatefromgif ($logo);
      
          $bwidth  = imagesx($url);
          $bheight = imagesy($url);
          $lwidth  = imagesx($logo);
          $lheight = imagesy($logo);
          
          imagealphablending ($url, true);      
          imagecopy ($url, $logo, 0, 0 ,0 ,0 , $lwidth, $lheight);
          
          return $url;
      }
      
      /* how to call me */
      header ("Content-type: image/gif");
      imagegif (mergeAlpha ("1.gif", "un.gif") );
    [/code]

  • signaler à un administrateur
    Commentaire de pifou25 le 06/07/2007 18:04:09

    super! mais ça veut dire quoi :
    # Selection du premier pixel de l image overlay (a la position 0,0) et utiliser
    # la couleur de ce pixel comme couleur transparente
    suis je obligé de mettre la couleur transparente en 0, 0 pour que ça marche?? y'a pas une méthode générique pour obtenir la couleur de transparence?

Ajouter un commentaire

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS