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] Ajout et suppression d'image sur un PNG


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 111
    Points : 60
    Points
    60
    Par défaut [GD] Ajout et suppression d'image sur un PNG
    Bonjour,

    je me posai la question, si je rajoute une petite image sur une image png a des coordonnées precis.

    Et il possible par la suite de retirer la petite image ?

    merci

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Salut !

    Cela dépend de plusieurs choses :

    1°) Je sais que le png gère les "Calques" donc si cette "petite image" constitue un calque a elle toute seule, il y aura certainement moyen de supprimer le calque uniquement.

    2°) Malheureusement, GD (la librairie graphique la plus couramment utilisée avec PHP) ne semble pas gérer les calques pour les png ( http://fr.php.net/gd ) Donc il ne sera pas possible de supprimer l'image si elle a étée ajoutée via GD ou si l'image a ensuite été retraitée avec GD (je crois qu'une opération "d'aplanissement" est effectuée par GD)

    Donc si tu trouves une librairie qui te permet d'utiliser les calques sur les png, oui cela sera possible...

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 111
    Points : 60
    Points
    60
    Par défaut
    ok,

    bon là je me creuse un peu la tete, pour trouver un moyen subtile.
    en fait je vais inserer plusieurs tites images sur un png, chacun en rentrant un par un et en enregistrant nom et coord dans une table prevu pour çà.

    çà c'est ce que j'ai deja fait, j'ai le nom et les coordonnée de chaque images (la table contient biensur une clé primaire id).

    maintenant pour inserer ce que je peux faire cest,
    faire un select * de toutes les tites images et avec une boucle, j'insere les tite image.
    une fois finis je renvois çà à la sortie standard avec imagepng().
    La je verai mon image avec toutes les tites image si jme trompe pas.
    et sans avoir modifier limage png ?

    Après pour supprimer une tite image, peut etre qu'en cliquant dessus et en capturant les coordonnée, j'essai de faire une condition en comparant toute les tites images rentré dans la table avec les coordonnées du click ?

    Là je fais mon raisonnement globale, est ce quelle est bonne ?

  4. #4
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Effectivement, vu comme ça, étant donné que tu n'as pas modifié l'image, ton raisonnement est bon, puisque tu connais le point d'insertion et la taille de chaque image De plus, ça semble relativement facile à mettre en place (à vue de pif ^^) bon courage ^^

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 111
    Points : 60
    Points
    60
    Par défaut
    A vu de pif oui ! lol

    surtout que la manipulation d'image suis vraiment novice.

    d'ailleurs j'ai écris
    maintenant pour inserer ce que je peux faire cest,
    faire un select * de toutes les tites images et avec une boucle, j'insere les tite image.
    Mais comment j'insere ?
    lol je sais meme pas inserer, et encore moins a des coordonnées precise...

    si mes tites images sont tous des .gif, j'écris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $filename = imagecreatefromgif($data['adr_img'])
    $filesize = getimagesize($filename);
    $source = imagecreatefromgif($filename);
    $destination = $path.$carte_id.".png";
    imagecopy($destination, $source, $data['loc_x'], $data['loc_y'], 0, 0, $filesize[0], $filesize[1]);
    c'est a peu près ca ?

    Là ca les place sur mon png sans le modifier ?

    et quand je met apres : imagepng($destination, '');
    s'a l'affiche sur le navigateur ?

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 111
    Points : 60
    Points
    60
    Par défaut
    bon j'ai testé çà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    while ($data = dbarray($result)) {
    			$filename = $data['adr_img'];
    			$filesize = getimagesize($filename);
    			$source = imagecreatefromgif($filename);
    			$destination = $path.$carte_id.".png";
    			$coords = explode(",",$data['coord']);
    			//echo $coords[0].", ".$coords[1].$filesize[0];
    			imagecopy($destination, $source, $coords[0], $coords[1], 0, 0, $filesize[0], $filesize[1]);
    			imagepng($destination,'');
    		}
    et j'ai çà comme erreur:
    Warning: imagecopy(): supplied argument is not a valid Image resource
    Warning: imagepng(): supplied argument is not a valid Image resource
    j'ai vérifier tous les paramètres avec les echo,
    pour $destination et $source j'ai bien images/x.png et images/xx.gif
    et le reste sont les bons chiffres.

    c'est quoi l'erreur ?

  7. #7
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Salut !

    tout comme tu crées une ressource images avec createimagefromgif pour $source, il te faut utiliser imagecreatefrompng pour créer une ressource image de ton png

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 111
    Points : 60
    Points
    60
    Par défaut
    d'accord !

    Bon j'ai écris çà:*
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    		while ($data = dbarray($result)) {
    			$filename = $data['adr_img'];
    			$filesize = getimagesize($filename);
    			$source = imagecreatefromgif($filename);
    			$file2 = $path.$carte_id.".png";
    			$destination = imagecreatefrompng($file2);
    			$coords = explode(",",$data['coord']);
    			//echo $coords[0].", ".$coords[1].$filesize[0];
    			imagecopy($destination, $source, $coords[0], $coords[1], 0, 0, $filesize[0], $filesize[1]);
    			header("Content-Type: image/png");
    			imagepng($destination);
     
    			//imagedestroy($destination);
    		}
    Mais l'image ne s'affiche pas, ya bien l'image qui doit apparaitre mais rien! comme ci l'adresse de l'image etait mauvaise, et qu'il y a une image erreur.

  9. #9
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    dans ce cas, il doit y avoir une erreur quelque part, essaie de charger directement l'image par son adresse dans le navigateur et enlève la ligne avec le header, tu verras apparaitre le message d'erreur

  10. #10
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 111
    Points : 60
    Points
    60
    Par défaut
    si j'enleve le header, je vois le code du png:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ‰PNG   IHDRÈp#âÞûÖÌÊÊ®
    avec une écriture bizar qui fait toute la page et pas de message d'erreur.

    et si j'enleve le header et imagepng(), et que je mets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<img src='".$destination."'>";
    et bien sa fait une image erreur, et aucune erreur php s'affiche.


    * edit, par contre j'ai fais ouvrir l'image dans une nouvelle page et sa ouvre l'adresse de la racine du site avec à la fin : /Resource%20id

  11. #11
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    essaie de remettre le header et d'afficher l'image "en brute" sans effectuer de traitement dessus, exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $img = imagecreatefrompng("mon.png");
    header('Content-type: image/png');
    imagepng($img);

  12. #12
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 111
    Points : 60
    Points
    60
    Par défaut
    et bien l'image ne s'affiche pas non plus!

    comment ca se fait ?

    quand je regarde les details de l'image:
    Dimensions 0 x 0 pixels
    Deph 0 bits per pixel
    Image type PNG
    File size 116 KB (117*875 bytes)
    Il est lourd pour une image qui fait 0 pixels

    le probleme doit venir de ma page, d'autre code dedans doit faire interferance je sais pas

    j'ai testé en mettant le code sur une page "vierge" test.php et il s'affiche.
    mais en regardant ma page, je vois pas trop ce qui pourrait l'empecher de s'afficher...

    Pour résoudre le problème je vais mettre le code dans une autre page.
    voilà sa marche très bien pour l'ajout des tites images héhé !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2013] Suppression d' image sur feuille excel par macro
    Par GROBIN dans le forum Excel
    Réponses: 3
    Dernier message: 16/11/2013, 23h07
  2. Ajouter logo, bandeau et image sur une vidéo flv
    Par iziitoms dans le forum Flex
    Réponses: 0
    Dernier message: 14/06/2011, 11h55
  3. Ajouter logo, bandeau et image sur une vidéo flv
    Par iziitoms dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 14/06/2011, 11h32
  4. [Tableaux] Problème d'ajout d'images sur une page
    Par linkman dans le forum Langage
    Réponses: 2
    Dernier message: 29/07/2006, 21h29
  5. [VBA-E]Erreur sur suppression d'images dans excel
    Par bernard38 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 18/04/2006, 13h55

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