CONVERTIR UNE COULEUR LONG EN RGB LE PLUS RAPIDEMENT POSSIBLE VIA UNE API :OP

shadowmoy Messages postés 340 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 25 août 2007 - 28 déc. 2003 à 00:10
shadowmoy Messages postés 340 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 25 août 2007 - 29 mars 2007 à 17:33
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/19027-convertir-une-couleur-long-en-rgb-le-plus-rapidement-possible-via-une-api-op

shadowmoy Messages postés 340 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 25 août 2007
29 mars 2007 à 17:33
cette source est pour les palettes de 256 couleurs ou moins
car l'utilisation de palette implique une indexation de chaque pixel de l'image dans le tableau de couleurs (aussi appellé palette de couleurs)

une image 24 bits par exemple n'utilise pas de palette, chaque donnée de pixel contient la couleur
Proger Messages postés 248 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 19 décembre 2008
30 déc. 2003 à 18:30
Tu risques d'avoir de gros problèmes de performances en utilisant une API externe à vb pour cette opération.
au coup-par-coup c'est sûr que c'est rapide, mais dans un traitement d'images (1 millions de pixels à convertir dans un sens puis dans l'autre par exemple) c'est sérieusement moins efficace que la démo de ta description, surtout quand tu compiles le programme.
shadowmoy Messages postés 340 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 25 août 2007
28 déc. 2003 à 01:52
ah ok t'avais mis ca en commentaire plus bas :/
pas grave la classe CPalette arrive :)

par contre pour les varptr dans une classe c'est obligatoire sinon ca plante a la compilation
bon la classe doit etre dispo dit moi ce que tu en pense Renfield ...

par contre pour le projet de control property list je suis toujours partant mais pas moyen de remettre la main sur mon code :/
pis refaire tout depuis le debut je sais pas sinon je suis en vacances du 1er au 7 janvier si ca te dit ....
shadowmoy Messages postés 340 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 25 août 2007
28 déc. 2003 à 01:18
ah ok t'avais mis ca en commentaire plus bas :/
pas grave la classe CPalette arrive :)
shadowmoy Messages postés 340 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 25 août 2007
28 déc. 2003 à 01:12
mais c'est pas la meme ou je suis miro lol

1) la source dont tu parle utilise des convertions hexa puis chaine et enfin traite les chaines pour les reconvertir en integer
2) ma source et de niveau 1 :p
3) elle utilise uniquement le format Byte
4)pas de convertions car c'est une copie de bits en memoire
5)Byval et Byref fonctionent dans des classes ? (je sais pas ca)
6) les varptr c'est par habitude ^^

mais le prochain source devrait te ravir car ca seras une classe Palette que je suis en train de terminer en ce moment meme
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 déc. 2003 à 00:49
Ouah, vive le scoop !!! mais ca existe deja sur VbFrance

regardes donc ce post : http://www.vbfrance.com/code.aspx?ID=18422

et un des commentaires d'un petit Cow-Boy.


Je dirai que ca ressemble étrangement, non ???
au passage, je crois que tu semble avoir du mal avec ByVal & Byref : Tu mets des VarPtr partout ??
--------------------------------------------------------------------------
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
Private Type RGBColor
R As Byte
G As Byte
B As Byte
End Type

Private Sub Form_Load()
Dim lRGB As RGBColor
GetRGB RGB(255, 128, 64), lRGB
MsgBox "R=" & lRGB.R & " G=" & lRGB.G & " B=" & lRGB.B
End
End Sub

Private Sub GetRGB(ByVal Color As Long, ByRef RGB As RGBColor)
CopyMemory RGB, Color, 3
End Sub
shadowmoy Messages postés 340 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 25 août 2007
28 déc. 2003 à 00:10
je dirais juste que d'utiliser du code que l'on ne comprend pas ne sert strictement à rien par contre quand on comprend le code et qu'on reflechis un peu voila le genre de fonctions qu'on obtient lol
Rejoignez-nous