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
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
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...
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 ?
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 imageDe plus, ça semble relativement facile à mettre en place (à vue de pif ^^)
bon courage ^^
A vu de pif oui ! lol
surtout que la manipulation d'image suis vraiment novice.
d'ailleurs j'ai écris
Mais comment j'insere ?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.![]()
lol je sais meme pas inserer, et encore moins a des coordonnées precise...
si mes tites images sont tous des .gif, j'écris
c'est a peu près ca ?
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]);
Là ca les place sur mon png sans le modifier ?
et quand je met apres : imagepng($destination, '');
s'a l'affiche sur le navigateur ?
bon j'ai testé çà :
et j'ai çà comme erreur:
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,''); }
j'ai vérifier tous les paramètres avec les echo,Warning: imagecopy(): supplied argument is not a valid Image resource
Warning: imagepng(): supplied argument is not a valid Image resource
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 ?
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![]()
d'accord !
Bon j'ai écris çà:*
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.
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); }
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![]()
si j'enleve le header, je vois le code du png:
avec une écriture bizar qui fait toute la page et pas de message d'erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ‰PNG IHDRÈp#âÞûÖÌÊÊ®
et si j'enleve le header et imagepng(), et que je mets:
et bien sa fait une image erreur, et aucune erreur php s'affiche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo "<img src='".$destination."'>";
* 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
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);
et bien l'image ne s'affiche pas non plus!
comment ca se fait ?
quand je regarde les details de l'image:
Il est lourd pour une image qui fait 0 pixelsDimensions 0 x 0 pixels
Deph 0 bits per pixel
Image type PNG
File size 116 KB (117*875 bytes)
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é !!!![]()
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager