IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[GD] Fusionner deux images GD


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 27
    Points : 18
    Points
    18
    Par défaut [GD] Fusionner deux images GD
    Bonsoir tout le monde. J'ai pas mal avancé dans mon aprentissage du php (bien que mon niveau reste très bas ) je travaille en ce moment avec la librairie GD.

    Mon problème : je voudrait fusioner deux image créer par deux script différent.

    Schéma :

    --Mon premier script : Il se co a une base de donnée, on lui done un argument dans l'url ce qui donne : emblem.php?guild=x . Pas de problème du coté de ce script, embleme.php?guild=3 retournera l'image emblem qui a pour ID 3 (pas moi qu'il est codé, il marche parfaitement.)

    --Mon deuxième script : J'ai mon image de fond (guild.png) et je voudrait coller le embleme.php?guild=3 dessus. Voilà comment je m'y prend :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
     
    $image = "guild.png";
    $texte=$guild_name[$_GET['id_guild']
    $im=imagecreatefrompng("$image");
     
     
    $image01='emblem.php/emblem.png?guild='.$_GET['id_guild'].'';
    $img01 = imagecreatefrompng($image01);
     
    $l_img01 = imagesx($img01);
    $h_img01 = imagesy($img01);
    $l_im = imagesx($image);
    $h_im = imagesy($image);
     
    $im_x = 277;
    $im_y =  60;
     
    imagecopymerge($image, $img01, $im_x, $im_y, 0, 0, $l_img01, $h_img01, 60);
    Mais seulement, ça ne marche pas ! La page contenant ce bout de code, je l'apelle avec un guild.php?id_guild=3 mais GD me retourne cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <br />
    <b>Warning</b>:  imagecreatefrompng(emblem.php/emblem.png?guild=3): failed to open stream: Not a directory in <b>/var/www/image_guild.php</b> on line <b>46</b><br />
    <br />
    <b>Warning</b>:  imagesx(): supplied argument is not a valid Image resource in <b>/var/www/image_guild.php</b> on line <b>48</b><br />
    <br />
     
    <b>Warning</b>:  imagesy(): supplied argument is not a valid Image resource in <b>/var/www/image_guild.php</b> on line <b>49</b><br />
    <br />
    <b>Warning</b>:  imagecopymerge(): supplied argument is not a valid Image resource in <b>/var/www/image_guild.php</b> on line <b>56</b><br />
    Voilà donc si quelqu'un avait une idée de comment copymerge une image GD sur une autre ça serait super Merci d'avance.

    Amicalement,
    Akenshiro~

  2. #2
    Membre confirmé Avatar de broumbroum
    Profil pro
    Inscrit en
    Août 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Points : 465
    Points
    465
    Par défaut
    Le deuxieme appel est incorrect. c'est un fichier png que tu donnes en qualité de script...
    Citation Envoyé par ~~PriVate JoKe~~
    (...)Mon problème : je voudrait fusioner deux image créer par deux script différent.
    (...)
    Schéma :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //(...)
    $image01='emblem.php/emblem.png?guild='.$_GET['id_guild'].'';
    $img01 = imagecreatefrompng($image01);
    //(...)
    Mais seulement, ça ne marche pas ! La page contenant ce bout de code, je l'apelle avec un guild.php?id_guild=3 mais GD me retourne cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <br />
    <b>Warning</b>:  imagecreatefrompng(emblem.php/emblem.png?guild=3): failed to open stream: Not a directory in <b>/var/www/image_guild.php</b> on line <b>46</b><br />
    <br />
    <b>Warning</b>:  imagesx(): supplied argument is not a valid Image resource in <b>/var/www/image_guild.php</b> on line <b>48</b><br />
    <br />
     
    <b>Warning</b>:  imagesy(): supplied argument is not a valid Image resource in <b>/var/www/image_guild.php</b> on line <b>49</b><br />
    <br />
    <b>Warning</b>:  imagecopymerge(): supplied argument is not a valid Image resource in <b>/var/www/image_guild.php</b> on line <b>56</b><br />
    (...)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    Je n'est pas très bien compris ta réponse, j'ai essayer de remplacer par sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $image01='emblem.png?guild='.$_GET['id_guild'].'';
    $img01 = imagecreatefrompng($image01);
    Mais sa ne marche pas plus, j'ai aussi essayer de remplacer l'extention de .png en .php : toujours rien.

    La même erreur, quelqu'un aurrait une idée ?

    EDIT : j'ai essayé sur directement sous emblem.php (devenant emblem.PNG) il me dit que le fichier n'existe pas. Donc je but encore et toujours =/

    En HTML j'aurai pus mettre un <img src="emblem.php?guild='.$_GET['id_guild'].'"></img></br> mais en php avec GD je sais pas =/

    Cordialement,
    Akenshiro.

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 657
    Points : 910
    Points
    910
    Par défaut
    Salut,

    Il faut que tu utilises une url absolue, sinon PHP essaye d'y acceder par le système de fichier local (et pas par le serveur HTTP) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $image01='http://www.site.com/emblem.php?guild='.$_GET['id_guild'].'';
    $img01 = imagecreatefrompng($image01);
    Bon courage
    Toute la documentation Ruby on Rails : gotapi.com/rubyrails
    Mes articles :
    > HAML : langage de template pour Ruby on Rails

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    Merci beaucoup, sa marche nikel

    Maintenant je me heurte à un aure problème, j'ai mon ilmage qui s'affiche, mais la dans ce type d'image (pour un jeu), la transparence équivaut à une sorte de rose, hors, je voudrait mettre à la place du rose, un vrai transparent.

    Donc ma question est : peut t-on caché une couleur dans une image, ou la remplacer par une autre ?

    Merci d'avance.

    Cordialement,
    Akenshiro.

  6. #6
    Membre confirmé Avatar de broumbroum
    Profil pro
    Inscrit en
    Août 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Points : 465
    Points
    465
    Par défaut
    ben là tu as imagecolortransparent($im, imagecolorallocate($im, $rouge, $vert, $bleu)) RVB pour le rose ça devrait etre comme 255, 126, 0 ...

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    Non cela ne marche toujours pas.
    En gros c'est comme ci je prenait la photo de la tour eiffel et que je veuillez enlever le vert de la pelouse au tour.

    Cordialement,
    Akenshiro.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    Je me permet de double post, j'ai avancé mais j'ai un problème avec le script que j'ai codé.

    J'ai THE error :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <b>Parse error</b>:  parse error, unexpected T_FOR in <b>/var/www/image_guild.php</b> on line <b>64</b><br /
    Et voici le bout de code ajouté. Mon image fait 24x24 pixel. Je doit avoir une boucle infinie, mais je ne voit pas où =/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    $bleu = imageColorAllocate($img01, 119, 245, 219);
     
    $start_x=1;
    $start_y=1;
     
    while ($start_x<=24 AND $start_y<=24) {
    if ($start_x==24) {$start_x=1; $start_y+=1;}
     
    $color_index = imagecolorat($img01, $start_x, $start_y);
     
    if ($color_index==16711935) {
    ImageSetPixel ($img01, $start_x, $start_y,$bleu); }
     
     
     
    }
    Voilà merci de votre aide.

    Amicalement ~

  9. #9
    Membre confirmé Avatar de broumbroum
    Profil pro
    Inscrit en
    Août 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Points : 465
    Points
    465
    Par défaut
    je pense que c'est la condition if(start) startx = 1 starty++ qui n'a pas sa place.
    pk tu ajoutes une condition alors que la boucle while le fait? quand tu remets startx à 1 la boucle continuera toujours...

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    Edit : ça marche, j'avais oublier d'augmenter $satrt_x
    Mais ça ne change pas la couleur de mon pixel, je suis bloqué et ça m'énerve =/

    Cordialement,
    Akenshiro.

Discussions similaires

  1. Fusionner deux images
    Par a7aa7a dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 14/03/2008, 14h19
  2. Fusionner deux images
    Par profx56 dans le forum WinDev
    Réponses: 1
    Dernier message: 11/09/2007, 10h36
  3. Fusionner deux images
    Par mimane_01 dans le forum Images
    Réponses: 21
    Dernier message: 17/05/2007, 15h59
  4. Fusionner deux images, en fonction d'une condition
    Par Him dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 27/01/2007, 13h07
  5. [ImageMagick] Fusionner deux images
    Par eagleleader dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 26/05/2006, 17h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo