有没有办法使用字节字段更改 24 位位图图像的 alpha?
Is there a way to change the alpha of a 24-bit bitmap image using a byte field?
我试图通过调整位图图像的十六进制值来做到这一点,但据我所知没有字母字节。我是否能够调整文件格式以允许使用 alpha 字节,或者我是否必须通过使用 rgb 字节复制 "alpha change" 来调整亮度?
如有任何帮助,我们将不胜感激。
谢谢
获取单独的颜色分量(6 位 ber 分量)
#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)
形成24位颜色值
#define COLOR24(r, g, b, a) (((r) & 0x3f) | (((g) & 0x3f) << 6) | (((b) & 0x3f) << 12) | (((a) & 0x3f) << 18))
我试图通过调整位图图像的十六进制值来做到这一点,但据我所知没有字母字节。我是否能够调整文件格式以允许使用 alpha 字节,或者我是否必须通过使用 rgb 字节复制 "alpha change" 来调整亮度?
如有任何帮助,我们将不胜感激。
谢谢
获取单独的颜色分量(6 位 ber 分量)
#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)
形成24位颜色值
#define COLOR24(r, g, b, a) (((r) & 0x3f) | (((g) & 0x3f) << 6) | (((b) & 0x3f) << 12) | (((a) & 0x3f) << 18))