Gdi+ 1.0 documentation pour PB

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Gdi+ 1.0 documentation pour PB

Message par Anonyme2 »

Voilà,

il y a un an que j'ai commencé ce travail (avec une pause de 3 mois).

Voici un description rapide de Gdi+ (très rapide)
GDI+ constitue une couche placée entre l'application et les dispositifs graphiques (graphie devices).

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
- 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.)
- Possibilité 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
GDI+ permet de manipuler facilement le 2D, sans avoir à sélectionner dans le dc, le pen, la font, la brush etc puis restitue le dc dans son état initial avant de retourner (c'est assez pénible avec GDI). On peut manipuler les images, les mettre à l'échelle, faire une rotation angulaire, une translation, cisailler ou mixer ces fonctions assez facilement. Les pen disposent de plusieurs fonctions pour faire des tirets etc. On peut définir des embouts prédéfinis pour les lignes comme par exemple des embouts de flèches ou créer des embouts personnalisés. Les brush sont assez nombreuses et diverses, on peut faire des dégradés très facilement en passant la couleur de départ et celle d'arrivée. On peut aussi définir une texture pour une brush à partir d'une image etc. Les régions peuvent être combinées pour obtenir les effets voulus (exclusion, intersection, union et d'autres). Différents types de formes sont réalisables facilement, (courbes de Bézier, camembert, polygones), ces formes pouvant être remplies avec tous les types de brush etc. Il y a aussi la gestion de la transparence avec le mode d'interpolation, composite, de qualité, toutes ces fonctions permettent d'agir sur le rendu final.
Le fichier exécutable téléchargeable ci-après contient la doc et les exemples concernant GDI+

Le fichier est un executable, il n'y aura pas de zip. Il fait environ 12 Mo et l'extraction de l'ensemble nécessite entre 15 et 16 Mo de place, je ne fais aucun test pour savoir s'il y a assez de place sur le disque.
Vous pouvez sélectionner le dossier d'extraction et vous devez absolument conserver l'arborescence pour que les exemples fonctionnent (pour que le fichier d'exemple retrouve le bon chemin du wrapper)
Je n'écris rien dans la base de registre.
Il y a les fichiers du wrapper, le fichier d'aide en français, les fichiers d'exemples, les fichiers h (XP et Vista) et le fichier .lib nécessaire au fonctionnement et les images pour les exemples.
Le wrapper utilise les macros de Freak (ComFramework) et l'installation détecte si vous les avez ou non et propose un lien sur le zip à télécharger, si c'est le cas téléchargez et installez le tout dans le dossier PB.
Je sais, la doc peut paraître hermétique mais si vous y mettez un peu de volonté, vous devriez pouvoir utiliser Gdi+
Commencez par des exemples simples et pas par les matrices ou l'énumération des métafichiers.
J'aimerais pouvoir améliorer la doc (il manque encore la définition de nombreuses constantes).

J'ai fait beaucoup de copier/coller pour les exemples, il est possible que les commentaires de certains fichiers soit faux :roll:

J'attends vos remarques, corrections, amélioration des définitions, nouveaux exemples etc.
Dernière modification par Anonyme2 le ven. 19/sept./2008 17:44, modifié 2 fois.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

J'ai quelques soucis pour l'installation , mais il est tard, je regarderai tout ça à tête reposée. J'ai parcouru rapidement les répertoires et les exemples proposés, ainsi que le fichier d'aide , c'est vraiment impressionnant le travail que tu as fourni. Je t'en dirai plus dans le courant de la semaine, dès que j'aurai trouvé un peu de temps pour me plonger dedans.

En attendant merci de partager avec nous le fruit de ton labeur.

[EDIT]
En gros, aucun fichier n'est pas installé dans le répertoire par défaut.
Si je propose un autre répertoire, tous les fichiers sont copiés (les exemples, l'aide) et ensuite j'ai le même problème lorsqu'il s'agit de copier les .lib dans le répertoire de purebasic.
Dernière modification par comtois le lun. 15/oct./2007 22:31, modifié 1 fois.
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

comtois a écrit :J'ai quelques soucis pour l'installation , mais il est tard, je regarderai tout ça à tête reposée.
ha bon, j'ai fait plein de tests sous XP, Vista, Windows 2000 network sans problème

Tu me dira quoi demain
comtois a écrit :'ai parcouru rapidement les répertoires et les exemples proposés, ainsi que le fichier d'aide , c'est vraiment impressionnant le travail que tu as fourni. Je t'en dirai plus dans le courant de la semaine, dès que j'aurai trouvé un peu de temps pour me plonger dedans.

En attendant merci de partager avec nous le fruit de ton labeur.
Merci, j'espère que ca donnera envie de s'y mettre
Dernière modification par Anonyme2 le ven. 19/sept./2008 17:44, modifié 1 fois.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

ouaip ! c'est clair, que la y a du boulot !! 8O

sacres Doc !!

perso aucun problèmes d'instal, j'ai même suivi le lien pour télécharger ce qui manque !! :D

par contre sous XP , je n'ai pas activé l'installe des fichiers pour Vista :)
je ne pense pas m'etre trompé :)

tous ça m'a l'air tres sympath, ça va prendre un mois a tout regarder :)

Merci Denis, sacres boulot que voila :)

as tu utilisé GDI pour ton installateur ?? (je suppose que oui :D )

Merci beaucoup :)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

j'ai un bug sur le test dossier "Graphic B_C"

gdicreatehalftonepalette.pb

Purebasic ASM[749]

CallsysBuffertounicode@4
undefined Symbol

:D
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Youpi ; ça fonctionne :)

J'ai tout simplement copié la lib à la main dans le répertoire de PureBasic et c'est ok , tout fonctionne , enfin je n'ai pas encore testé les 683 exemples :)

Dobro , il faut sélectionner le mode unicode dans les options du compilateur.
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

comtois a écrit :Dobro , il faut sélectionner le mode unicode dans les options du compilateur.
ha ok ! Merci ça marche :)
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Dobro a écrit :j'ai un bug sur le test dossier "Graphic B_C"

gdicreatehalftonepalette.pb

Purebasic ASM[749]

CallsysBuffertounicode@4
undefined Symbol

:D
J'avais installé la version 4.10 betat 4 qui donne cette erreur avec les chaine unicode. Il faut utiliser PB entre 4.02 et 4.10 beta 3.

Normalement, avec ou sans le mode unicode sélectionné, les exemples doivent fonctionner, c'est un bug de la beta 4 que je n'utilise pas tant qu'il y a ce bug
Dernière modification par Anonyme2 le ven. 19/sept./2008 17:44, modifié 1 fois.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

comtois a écrit :Youpi ; ça fonctionne :)

J'ai tout simplement copié la lib à la main dans le répertoire de PureBasic et c'est ok , tout fonctionne , enfin je n'ai pas encore testé les 683 exemples :)
La je suis inquiet 8O , c'es quoi la lib dont tu parles ?

Le fichier d'instalation copie le fichier gdiplus.lib dans le dossier qui va bien (PB).
Dernière modification par Anonyme2 le ven. 19/sept./2008 17:44, modifié 1 fois.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Dobro a écrit :par contre sous XP , je n'ai pas activé l'installe des fichiers pour Vista :)
je ne pense pas m'etre trompé :)
Heu, normalement l'activation ne fonctionne que sous Vista (enfin c'est ce que dit la doc PB) et je n'ai pas l'invite sous XP sur ma bécane.
Bizarre

Dobro a écrit : as tu utilisé GDI pour ton installateur ?? (je suppose que oui :D )
Non, j'avais commencé avec mais je n'utilise que des procédure avec des dégradés simples, il fallait tester si GDI+ était présent et écrire d'autre procédures le cas échéant, si les thèmes étaient activés ou non, ça entraînait beaucoup de code pour un simple dégradé, alors j'utilise les fonction GDI pour les dégradés.

J'ai skiné plein de choses mais le plus fastidieux c'est les options buttons car c'est à toi de tout gérer, de A à Z.
Dernière modification par Anonyme2 le ven. 19/sept./2008 17:45, modifié 1 fois.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Denis a écrit :La je suis inquiet 8O , c'es quoi la lib dont tu parles ?

Le fichier d'instalation copie le fichier gdiplus.lib dans le dossier qui va bien (PB).
oui c'est bien ce fichier gdiplus.lib que j'ai copié dans le dossier qui va bien.

Je t'ai mis en mp le message d'erreur que j'avais quand ton installateur tentait de le copier.

PS : L'installation dans le dossier de mon choix s'est bien passée.Sauf l'instal de la lib
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

je ne suis pas arrivé a trouver dans la Doc une explication de

Code : Tout sélectionner

Gdiplus_StartDrawing
et du

Code : Tout sélectionner

Gdiplus_StopDrawing()
non plus d'ailleurs :)

bien que je suppose que ça fonctionne comme leur equivalent Purebasic mais
ce serai bien d'y avoir acces dans la Doc :)
Frenchy Pilou
Messages : 2194
Inscription : jeu. 27/janv./2005 19:07

Message par Frenchy Pilou »

juste une petite question c'est quoi GDI? :oops: Graphics Device Interface ?
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

voila un extrait de l'aide incluse dans le pack :
Les différents OS Windows utilisent GDI pour tout ce qui touche au graphisme. GDI est l'abréviation de Graphics Device Interface, et est une Dll avec de nombreuses fonctions. Avec le temps GDI a évolué.

L'arrivée de GDI+ version 1.0 avec Windows XP a modifié l'approche de la programmation du graphiste. GDI+ 1.0 est une dll qui possède 609 fonctions.
GDI+ constitue une couche placée entre l'application et les dispositifs graphiques (graphie devices).

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
- 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.)
- Possibilité 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


GDI+ permet de manipuler facilement le 2D, sans avoir à sélectionner dans le dc, le pen, la font, la brush etc puis restitue le dc dans son état initial avant de retourner (c'est assez pénible avec GDI). On peut manipuler les images, les mettre à l'échelle, faire une rotation angulaire, une translation, cisailler ou mixer ces fonctions assez facilement. Les pen disposent de plusieurs fonctions pour faire des tirets etc. On peut définir des embouts prédéfinis pour les lignes comme par exemple des embouts de flèches ou créer des embouts personnalisés. Les brush sont assez nombreuses et diverses, on peut faire des dégradés très facilement en passant la couleur de départ et celle d'arrivée. On peut aussi définir une texture pour une brush à partir d'une image etc. Les régions peuvent être combinées pour obtenir les effets voulus (exclusion, intersection, union et d'autres). Différents types de formes sont réalisables facilement, (courbes de Bézier, camembert, polygones), ces formes pouvant être remplies avec tous les types de brush etc. Il y a aussi la gestion de la transparence avec le mode d'interpolation, composite, de qualité, toutes ces fonctions permettent d'agir sur le rendu final.
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

Denis, j'ai quelques soucis :oops:
Installation avec ton installeur (très joli) sur xp home sp2

J'ai dû modifier les chemins des fichiers include : "..\..\" non reconnu, avec ça pb ne les trouve pas.

en compilant un exemple au pif j'ai eu cette fonction non reconnue :
DefineGUID(FormatIDImageInformation, $E5836CBE, $5EEF, $4F1D, $AC, $DE, $AE, $4C, $43, $B6, $08, $CE)
Arg! :?
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Répondre