Salut Dobro (et les autres )
Après un break (obligé) de 3 mois, je suis en train de terminer la doc.
Si je bosse bien, je mettrais en ligne mon exe qui regroupe un peu plus de 820 fichiers dont 683 fichiers d'exemples dans environ 2 à 3 semaines (l'exe fait presque 12 Mo).
Ce n'est pas une lib au sens de PB mais des includesfiles regroupant les fichiers nécessaires.
Après cette première version pour GDI+1.0 qui d'ailleurs est celle qui tourne sous Vista , je me mettrais aux exemples des 21 fonctions suplémentaires introduites par Gdi+ 1.1 (1.1 n'est pas redistribuable mais on peut contourner pour pouvoir utiliser les fonctions des effets comme la correction des yeux rouges ou autre).
Les possibilités de Gdi+ sont assez importantes, mais cela ne touche pas la 3D. Elle ajoute plein de possibilités sur plein de points à la gestion de Gdi.
GDI+ permet (entre autre) :
- graphisme vectoriel en 2D avec gestion possible des coordonnées en nombres réels simple précision.
- Gestion de l'anti-crénelage (anti-aliasing) des images et du texte
- Nombreux formats d'images supportés (BMP, GIF, JPEG, EXIF, PNG, TIFF)
- Gestion de l'échelle des graphiques, on peut faire un zoom d'une image avec peu de code
- Gestion de la transparence
- Gestion différents modes de combinaison de couleur
- Gestion des textures, des brush (différents types de dégradés linéaires)
- Gestion des pen (gestion de différents formats de traits comme les pointillés etc.)
- Possililté de définir les embouts des lignes soit avec des formes prédéfinies soit personnalisées.
- Gestion des région pour obtenir les effets voulus (exclusion, intersection, union et d'autres)
- Gestion des Path (chemin) qui délimitent les contours des formes géométriques, ces formes pouvant être remplies avec des brush dédiées.
- Gestion des Container graphiques (c'est un peu comme une pile, on peut entasser ou superposer des dessins avec leur zones et revenir au container précédant)
Après ces 9 mois de travail sur Gdi+, je dirais une chose. Il faut savoir utiliser les callback windows et éviter les callback PB et proscrire complètement l'événement repaint dispo dans PB, les résultats sont assez mauvais, même si beaucoup de mes exemples utilisent ces méthode, c'est d'ailleurs à cause de cela que je me suis rendu compte des problèmes.
Gdi+ nécessite que le rafraichissement des images ou objet soit fait par l'utilisateur, le système ne le fait pas. Les résultats sont parfois meilleurs avec les thèmes XP activé. Sur de grosse images, Gdi+ est lent, c'est pour celà qu'il serait nécessaire dans des applications de ne redessiner que la zone modifiée comme la superposition des fenêtres etc.
L'approche de Gdi+ nécessite pas mal de travail si on veut comprendre comment ça marche. La doc MS est pratiquement inexistante, je me suis basée sur ce que j'ai pu trouver sur le wrapper C et celui de .Net. Pour certaines fonctions, c'est par déduction que j'en tire des conclusions. Certaines fonctions restent de grandes inconnues
Microsoft a volontairement orienté la doc sur son wrapper C et .Net en disant même qu'il est préférable de ne pas utiliser directement les fonctions. A aujourd'hui, mon ordi n'a pas encore fumé suite à l'utilisation de Gdi+.
La doc est une explication des paramètres et de ce que l'on est en droit d'obtenir, mais certaines fonctions ont des paramètres qui peuvent prendre différentes valeurs, je n'ai pas testé toutes les valeurs.
J'ai vraiment eu du mal avec certaines fonctions de gestion des métafichiers.