Convertir une couleur long en rgb le plus rapidement possible via une api :op

Soyez le premier à donner votre avis sur cette source.

Vue 2 574 fois - Téléchargée 238 fois

Description

La meilleure façon et aussi la plus rapide de convertir une couleur Long en couleur RGB c'est tout bête mais comme j'en avais marre de voir des trucs du genre :

With machin
.Red = CByte(Int(ColorVal And &HFF))
.Green = CByte(Int((ColorVal And &HFF00) / &H100))
.Blue = CByte(Int((ColorVal And &HFF0000) / &H10000))
End With

qui est plus lent et moins judicieux que ma version :op (enfin pour moi apres vous en pensez ce que vous voulez ...)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

shadowmoy
Messages postés
340
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
25 août 2007
-
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
-
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
-
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
-
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
-
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

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.