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 ...)
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
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.
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 ....
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
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
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.
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 ....
pas grave la classe CPalette arrive :)
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.