如何确定 BMP 图像是否包含标题中的 BGR 或 BGRA 像素?

Hon*_*omn 2 c++ bmp

我不知道如何确定 BMP 图像是否包含 BGR 或 BGRA 颜色。我编写了简单的 BMP 阅读器,但不同图像上有不同的值。

我已经找到了两个选择。

  1. 简单 BGR(255、255、255)
  2. 第四个值为 0 (255, 255, 255, 0)

有什么方法可以从位图信息标题中找出哪个选项?

Bar*_*ani 5

位图文件中的前 54 个字节是标头。读取BITMAPINFOHEADER其中包含位图的宽度和高度,以及biBitCount

对于 32 位(4 字节)图像,biBitCount为 32 (BGRA)
对于 24 位(3 字节)图像biBitCount,为 24 (BGR)

biBitCount对于基于调色板的位图,也可以是 16 位或 8、4、1。