本帖最后由 晓飛飛 于 2024-8-21 08:56 编辑
你的图片是24位色,但是你是按8位256色取模的,可能中间有些转换没做好
按照256色,也就是8位取模的结果看起来确实有点乱
- unsigned char IMG_DATA[36] =
- {
- 0x00,0x00,0x53,0x53,0x7E,0x07,0xA9,0x08,0xD4,
- 0x00,0x00,0x4C,0x4C,0x70,0x01,0x94,0xB8,0xB8,
- 0x00,0x00,0x2E,0x2E,0x34,0x02,0x3A,0x40,0x40,
- 0x00,0x00,0x29,0x29,0x2A,0x04,0x2B,0x2C,0x2C,
- };
复制代码
按照24位取模的结果就规整很多了,因为3个字节每个字节表达一个颜色。
- unsigned char IMG_DATA[108] =
- {
- 0x00,0x00,0x00,0x20,0x20,0x20,0x40,0x40,0x40,0x60,0x60,0x60,0x80,0x80,0x80,0xA0,0xA0,0xA0,0xC0,0xC0,0xC0,0xE0,0xE0,0xE0,0xFF,0xFF,0xFF,
- 0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x40,0x00,0x00,0x60,0x00,0x00,0x80,0x00,0x00,0xA0,0x00,0x00,0xC0,0x00,0x00,0xE0,0x00,0x00,0xFF,
- 0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x40,0x00,0x00,0x60,0x00,0x00,0x80,0x00,0x00,0xA0,0x00,0x00,0xC0,0x00,0x00,0xE0,0x00,0x00,0xFF,0x00,
- 0x00,0x00,0x00,0x20,0x00,0x00,0x40,0x00,0x00,0x60,0x00,0x00,0x80,0x00,0x00,0xA0,0x00,0x00,0xC0,0x00,0x00,0xE0,0x00,0x00,0xFF,0x00,0x00,
- };
复制代码
256色下,每个象素对应一个字节,格式一般是R3G3B2,也就是说,红色占3 位D[7:5],绿色占3位D[4:2],蓝色2位D[1:0],
你的图片是24位色,转换过程中24bit的R通道应该换算为8bit的D[7:5],G通道应该换算为8bit的D[4:2],B通道应该换算为8bit的D[1:0],
这里可能是确实有bug,比如白色应该是 111 111 11 = 0xFF
|