cs_RDX
Messages postés117Date d'inscriptionsamedi 26 juin 2004StatutMembreDernière intervention27 août 2005
-
20 nov. 2004 à 20:59
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013
-
21 nov. 2004 à 06:14
Salut
J'aimerais connaitre la methode la plus rapide pour afficher et travailler des images en dur. J'ai cru comprendre que Get/setDibbits étaient les plus employées. Si quelqu'un pouvait m'expliquer clairement comment ca marche (de A à Z si possible...)
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 20 nov. 2004 à 22:00
Et oui, il faut passer par beaucoup de handle (bitmap, hdc, etc.) pour utiliser cette source, d'où ma classe !
En effet, les couleurs sont inversées dans le tableau de bits car l'image est stockée non pas de gauche à droite et de haut en bas, mais de droite à gauche et de base en haut !
Utilise ma classe, tu y gagnera beaucoup en facilité d'utilisation, et tu n'y perd que très peu de temps qu'avec une utilisation classique des fonctions ! (note : ca m'a pris au moins 2-3 mois pour vraiment comprendre comment était ordonné le tableau de bits, et comment y accèder rapidement, donc épargne toi ses recherches inutiles en utilisant un truc tout fait... que je ne l'ai pas codé pour rien ;)
_______________________________________
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 20 nov. 2004 à 21:17
Va voir ma source nommée DKS_Gestion_Image : il s'agit d'une classe qui est une interface à ces fonctions, et te permet de les manipuler très facilement, tout en gardant leur rapidité (environ 30 fois plus rapide que les fonctions de l'API GetPixel et SetPixel !)
_______________________________________
cs_RDX
Messages postés117Date d'inscriptionsamedi 26 juin 2004StatutMembreDernière intervention27 août 2005 20 nov. 2004 à 21:48
J'aimerais savoir une chose, en fait j'aimerais envoyer un tableau de bits avec l'api SetDIBitsToDevice :
J'ai une image en couleur, et le masque de cette image en niveau de gris. J'ai deja codé moi même l'application du masque et ca fonctionne impec, seulement j'utilise setpixelV et ca ne me parrait pas assez rapide.
Dans mon animation, tout est calculé avant l'affichage, donc le problème de vitesse ne peux venir que des fonctions graphique.
Je voudrais savoir si :
1° je suis obligé de me servir de tout un bazar de handles et de CreateCompatibleDC pour utiliser SetDIBitsToDevice;
2° Si les couleurs sont dans l'ordre B,G,R (c'est ce que j'ai pu comprendre si je me souviens bien de ta src) ?
cs_RDX
Messages postés117Date d'inscriptionsamedi 26 juin 2004StatutMembreDernière intervention27 août 2005 20 nov. 2004 à 22:23
Tu as raison, mais c'est un principe chez moi : j'aime savoir comment fonctionne ce dont je me sert, pour apprendre d'une part, et surtout parce que ma nouvelle source va etre assez complexe (Synthèse Audio) et que je n'ai pas envie de rajouter plus de classe ou de modules qu'il y en as déja.
Et puis, je jour ou le grand DARKSIDIOUS ne sera plus, qui c'est qui va expliquer au petit débutant comment fonctionne les apis graphiques, hein? ;)
Je vais me servir de ton exemple 'ombrer une image', retrecir le code aux max et l'incorporer dans ma source, comme ca j'aurais le schéma : Handle ... hDC ... ect ... Bien dans la tête.
Et merci pour l'ordre du tableau, je pensais que c'était foutu comme la structure du fichier bitmap, mais j'était pas sur.
allez a+
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_RDX
Messages postés117Date d'inscriptionsamedi 26 juin 2004StatutMembreDernière intervention27 août 2005 21 nov. 2004 à 00:02
Bon j'ai tésté, et ca marche seulement avec les types BitmapInfoHeader, BitmapInfo et RGBQUAD... Enfin pour ce que je veux en faire (juste envoyer un tableau de bits directement dans la memoire).
Donc pas besoin de créer objets, handles et DCs... Ce qui fait que hors déclarations pas plus d'une vingtaine de lignes pour un code qui roule.
En tous cas, ta src 'ombrer une image' est une très bonne source graphique : simple, courte et très détaillée (peut être trop d'ailleurs!).
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 21 nov. 2004 à 06:14
Oui, elle n'est pas très regardée car elle est assez ciblée, mais elle permet de vite se faire une idée sur comment marche les fonctions Get/SetDIBits.
_______________________________________