Extraire les composantes R, G, B d'un bitmap 16 bits
ericamiens
Messages postés18Date d'inscriptionmardi 28 janvier 2003StatutMembreDernière intervention 9 septembre 2004
-
5 mai 2003 à 10:44
cs_mhd_youssef
Messages postés9Date d'inscriptionlundi 29 mars 2004StatutMembreDernière intervention11 juin 2004
-
28 avril 2004 à 16:40
bonjour, j'aimerais donc extraire ces composantes mais les fonctions GetRValue, GetGValue et GetBValue attendent un RGB (32 bits) en entrée. ça fonctionne donc bien en 32 bits et 24 bits mais en 16 bits, chaque pixel est codé sur 1 word (2 octets) et l'appel de GetXValue ne me donne pas les résultats escomptés.
j'aimerais savoir s'il existe une fonction similaire ou une fonction de conversion (sachant que ColorToRGB() et PaletteIndex() ne fonctionnent pas)
j'utilise GetBitmapBits() et SetBitmapBits().
je n'ai par contre pas de problème avec canvas.getpixel() et canvas.setpixel() mais c'est horriblement long.
exemple de ce que j'ai et j'aimerais obtenir :
après mon GetBitmapBits() j'ai les 2 octets suivants pour coder le 1° pixel (GRIS) :
(123, 239)
en 24 et 32 bits, la valeur est :
(128, 128, 128) ce qui correspond bien à du gris
bref, j'aimerais transformer (123, 239) en TColor=(128, 128, 128)
mais aussi modifier le TColor (ça je m'en charge) ET le retransformer (exemple : (140, 128, 16)) afin de l'avoir sous forme de 2 octets (x, y).
si vous avez une piste, je vous en serais très reconnaissant.