2015-10-10 2 views
2

J'essaye de faire ceci en ajustant les valeurs hexadécimales de l'image de bitmap cependant autant que je peux dire il n'y a aucun byte d'alpha. Serais-je capable d'ajuster le format du fichier pour autoriser un octet alpha ou devrais-je ajuster la luminosité en répliquant un "changement d'alpha" en utilisant les octets rgb?Existe-t-il un moyen de modifier l'alpha d'une image bitmap 24 bits en utilisant un champ d'octets?

Toute aide à ce sujet serait grandement appréciée.

Merci

+0

Je ne suis pas sûr, mais bitfields de compression bitmap comme alphafields ne fonctionne que avec 16 et 32 ​​bits. – Mykola

+0

C'est aussi ce que je comprends. C'est en fait pour une affectation et je dois le faire en utilisant l'assemblage mais le libellé me ​​rejette parce que je ne comprends pas comment je peux diminuer la luminosité d'un bitmap 24 bits par un "facteur de 2" quand Je ne sais pas quelle est la luminosité pour commencer? Même si je le sais, qu'est-ce qu'un facteur de 2 diminution de 100%? – Dillon

+0

vous pouvez sélectionner votre échelle de luminosité arbitraire, que redimensionner dans le cadre de celui-ci. cela signifie que si le rouge a 255 gradations vous pouvez le faire à 32 gradations, puis le redimensionner de 255 * (/32) de cette façon alphafields et bitmfileds fonctionne – Mykola

Répondre

1

Obtenir composante de couleur séparée (6 bits BER composant)

#define RGBA_R(x) (unsigned char)((x) & 0x0000003f) 
#define RGBA_G(x) (unsigned char)(((x) >> 6) & 0x0000003f) 
#define RGBA_B(x) (unsigned char)(((x) >> 12) & 0x0000003f) 
#define RGBA_A(x) (unsigned char)(((x) >> 18) & 0x0000003f) 

forme de valeurs de couleurs de 24 bits

#define COLOR24(r, g, b, a) (((r) & 0x3f) | (((g) & 0x3f) << 6) | (((b) & 0x3f) << 12) | (((a) & 0x3f) << 18))