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

How do I find out if BMP image contains BGR or BGRA pixels from header?

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

我已经找到了 2 个选项。

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

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

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

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

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