为了好玩,我正在用 C++ 编写一个 tga 解析器,现在它可以读取图像类型 2、3、10 的文件,但我被困在类型 1 中,它们有颜色图。我不知道如何将颜色映射颜色转换为 rgb 或 rgba。对于类型 1 图像(未编码),如果我有 char* color_map
,我应该将其转换为 uint_8*
,如果 color_map_entry_depth
为 24 而 pixel_depth
为 8并且我们从文件缓冲区中获取了一个 uint8_t pixel_data[3]
,第一个像素颜色将是
RGB(color_map[pixel_data[2]],color_map[pixel_data[1],color_map[pixel_data[0]])
但它给了我错误的颜色。有人可以帮忙吗?