VB6 - GDI32 or GDI+ [Résolu]

peug 234 Messages postés mercredi 25 octobre 2000Date d'inscription 5 octobre 2012 Dernière intervention - 24 mai 2006 à 09:22 - Dernière réponse : Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention
- 24 mai 2006 à 10:56
Bonjour,
Suivant vos expériences, est-il interressant de partir sur l'utilisation de GDI+, est-ce vraiement plus rapide que le GDI32 ou n'est -ce que de nouvelles fonctionnalités (Alpha du PNG, etc..) ?
Peut-on mélanger les 2 dans la même application... Je n'est pas trouvé de discussion sur le GDI+ à part du code ici et là.
Voili
Afficher la suite 

3 réponses

Répondre au sujet
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 24 mai 2006 à 10:56
+3
Utile
GDI+ est simple a utiliser en VB6 (si si ^^)
GDI+ est en fait accessible par des APIs... ou via le warpper, que l'on trouve dans la classe .Net System.Drawing

transparence ne rime pas nécessaireement avec PNG ^^
GDI+ permet de dessiner en antialisé, et améliore le rendu
c'est juste une surcouche sur le GDI32, et c'est un poil plus lent.... maintenant, sa manipulation est plus simple (je trouve), je trouve, et on fait des choses assez sympatiques, avec...

outre le fait de pouvoir lire/ecrire tout un tas de types d'image (produire du JPEG, par exemple), on peux utiliser le canal alpha (par exemple, ecrire avec comme couleur &h33FFFFFF& pour avoir du blanc, transparent à 20%...

en plus, on peux mélanger des appels GDI32 et GDI+ ...

par exemple :

                GdipAddPathLine hPath, .Left, .Top, .Left + .Width - (nRadius * 2), .Top
                GdipAddPathArc hPath, .Left + .Width - (nRadius * 2), .Top, nRadius * 2, nRadius * 2, 270, 90
                GdipAddPathLine hPath, .Left + .Width, .Top + nRadius, .Left + .Width, .Top + .Height - (nRadius * 2)
                GdipAddPathArc hPath, .Left + .Width - (nRadius * 2), .Top + .Height - (nRadius * 2), nRadius * 2, nRadius * 2, 0, 90
                GdipAddPathLine hPath, .Left + .Width - (nRadius * 2), .Top + .Height, .Left, .Top + .Height
       
                GdipFillPath graphics, barBrush, hPath
                GdipDrawPath graphics, barPen, hPath

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Renfield
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 24 mai 2006 à 10:30
0
Utile
GDI+ est une évolution de la GDI32 surtout utilisée pour vb.net.

Gdi32 avait une approche fonctionnelle alors que GDI+ a une approche objet. GDI+ est donc (en théorie !) plus intuitif à utiliser.

En théorie aussi, GDI+ devrait être plus rapide que gdi32 car plus récent, maintenent, en pratique, j'en suis pas vraiment convaincu !

GDI+ gère les niveaux de transparence (donc le png), est possède des fonctionnalités supplémentaires que ne possède pas gdi32. Cependant, gdi+ est assez difficile à implémenter en vb6 je trouve par rapport à gdi32 !

Va voir sur le site de vbaccelerator.com, il propose quelques exemples intéressants utilisant la gdi+.

_
Avant de poster dans le forum,
prière d'aller lire ceci :
http://www.codes-sources.com/reglement.aspx
<s></s>
Commenter la réponse de cs_DARKSIDIOUS
peug 234 Messages postés mercredi 25 octobre 2000Date d'inscription 5 octobre 2012 Dernière intervention - 24 mai 2006 à 10:43
0
Utile
oui j'ai vu plein de chose EXTRAordinaire voire Incroyable sur ce site.
L'utilisation du GDI+ en VB6 peut éventuellement (si le code est similaire) permettre de mieux approcher le .NET alors...( malgrès la lenteur de ce dernier )
Maintenant j'utilise le GDI32 seulement pour dessiner des Rectangles, Polygon, Line, Region (merci Renfield)...  à voir sir le GDI+ apporte quelque chose de '+' !
Faut donc que je fasse des tests de rapidité. Il est vrai que l'on voit peu de réaction et comparatif sur ce sujet..;-)
Commenter la réponse de peug

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.