Bonjour à tous,
Je cherche à pouvoir dessiner des polygones à trous dans une image GD. Il est possible de faire ce style de dessin dans du PDF (format vectoriel) mais je n'ai rien vu dans la documentation php.
En vous remerciant d'avance...
:D
Version imprimable
Bonjour à tous,
Je cherche à pouvoir dessiner des polygones à trous dans une image GD. Il est possible de faire ce style de dessin dans du PDF (format vectoriel) mais je n'ai rien vu dans la documentation php.
En vous remerciant d'avance...
:D
Salut
Ta question a l'air fun à mettre en oeuvre mais je ne me représente pas bien la figure... Aurais-tu un exemple visuel, stp ?
Le dessin le plus facile à expliquer est une bouée. Mais il s'agit là d'un cercle à trous. Le but pour moi est de dessiner une carte de france par communes ou départements. J'ai les fonds de cartes sous forme de polygones mais il existe des parties de communes imbriquées dans d'autres. C'est aussi le cas quand il existe un lac à l'interieur d'une commune. Il faut pouvoir colorier uniquement la commune et non le lac.
Merci
Pourquoi ne pas superposer un trou à ton polygone ? Ce serait probablement plus simple à réaliser (je ne suis pas certain que ta question ait une réponse, en fait).
Je suis d'accord que l'on peut toujours affichier un petit polygone à l'intérieur d'un plus grand. Mais le trou doit être complètement transparent et doit faire ressortir la couleur en arrière plan. Il est tout à fait possible de faire ce genre de dessin avec les formats vectoriels.
De même, je suis bloqué également avec la notion de clipping. Je n'ai rien trouvé avec GD. Mais existe-t-il une autre bibliothèque de création d'image disponible en php pour faire ce genre de dessin ?
À ma connaissance, il n'y a pas d'autre biblio que GD. La doc officielle de PHP ne parle que d'elle, en tout cas.
De quel fond parles-tu ? S'agit-il d'une image transparente (GIF/PNG) ou bien de poser un polygone sur une image en laissant une ou plusieurs parties de ce polygone comme évidées ? Dans le second cas, il est possible de recopier une portion de l'image source par-dessus le polygône de manière à simuler une transparence. Dans le premier cas, il va te falloir définir une zone avec de nooooooombreux points ou bien créer ton polygone en de nooooombreuses fois...
C'est le second cas que je souhaite faire. C'est vrai qu'il est possible d'extraire une partie de l'image source pour la coller par dessus un polygone. Je n'y avais pas penser. Mais peut-on en extraire un polygone quelconque et non un rectangle ?
Bien vu, cela ne semble pas possible.
Peut-être que le plus simple serait de créer une ressource image transparente avec ton polygone évidé, puis de copier cette ressource par-dessus l'autre image (la source) en conservant la transparence (cf. la doc PHP pour des exemples).
Le problème reste entier. Je veux bien créer une ressource image transparente séparée mais comment y dessiner ce polygone évidé.
Exemple en SVG :
http://www.w3.org/TR/SVG/painting.html
Chapitre 11.3 Fill Properties
Il y a un exemple avec une bouée rouge. Mais SVG est vectoriel.
Je pense que cela devrait aller ainsi :
- Dessine un polygone plein, d'une couleur A, dans une nouvelle ressource image ;
- Dessine par dessus un cercle plein, d'une couleur B ;
- Rends la couleur B transparente ;
- Appose cette image sur la ressource de ton image d'origine en conservant la transparence.
Bravo...Ceci doit fonctionner.
Je ne connaissais pas la fonction 3. Je vais implémenter cette méthode. Merci de ton aide. Ce n'est pas très optimisé mais de toute façon, je n'ai pas beaucoup de polygones de ce type.
Encore merci :lol: