我必须读取24bpp Bitmap并将每个像素从RGB24转换为ARGB16
我用了下面的代码,

#define ARGB16(a, r, g, b) ( ((a) << 15) | (r)|((g)<<5)|((b)<<10))

但我没有得到所需的输出。
任何帮助都将不胜感激。

最佳答案

把它拆开。让我们继续使用宏:

#define TRUNCATE(x)  ((x) >> 3)

#define ARGB16(a,r,g,b) ((a << 15) | (TRUNCATE(r) << 10) | (TRUNCATE(g) << 5) | TRUNCATE(b)))

这假设alpha只是一个位。

09-06 15:09