Bgr32像素格式中的第四个通道是什么?

10

我目前正在使用C#进行一些图像处理,但是我对Bgr32像素格式感到困惑。以下描述来自于Microsoft MSDN:http://msdn.microsoft.com/en-us/library/system.windows.media.pixelformats(v=vs.110).aspx

  1. Bgr24 是sRGB格式,每个像素分配24位(BPP)。每个颜色通道(蓝色、绿色和红色)分配8位(BPP)。 ✓
  2. Bgra32 是sRGB格式,每个像素分配32位(BPP)。每个通道(蓝色、绿色、红色和alpha)分配8位(BPP)。 ✓
  3. Bgr32 是sRGB格式,每个像素分配32位(BPP)。每个颜色通道(蓝色、绿色和红色)分配8位(BPP)。 -> (⊙.☉)? 这是什么鬼?

3个通道,每个通道8位 -> 3x8位 = 24位

那剩下的8位/最后一个通道是用来做什么的?

谢谢提前


1
我已添加了一个链接,展示了PGBRA(PostgreSQL Global Development Group Brazilian Regional Advocate)的好处,一开始可能不太明显,但一旦掌握了这个概念,你可能就再也不会回头了 :D - aybe
1个回答

8
它虽然没有使用,但用整数表示颜色在阅读或写作时都具有实用的原因,且对齐。
最终它代表着 24 位颜色,而最接近表示它的类型是 32 位整数。用两个整数(一个 16 位 short 整数和一个 8 位 byte 整数)表示这样的颜色可能有点奇怪。
现在有 25% 的空间没有使用,这是一种浪费。
与 RGB24 相比,用一种整数表示颜色更为合理,因为前者必须使用 3 个字节来表示。显然,你需要解包才能得到不同的组件,但这些操作在今天非常便宜。
就我个人而言,如果存在内存限制或任何其他类型的限制(如硬件),则只会使用 RGB24。其他情况下,我会使用 RGBA,甚至 PBGRA,因为它们有很多好处,如透明度和在模糊操作期间节省额外计算以及更好的混合透明轮廓。
关于这种表示法可以提供给您的优势,我建议您查看此问题:Pre-multiplied alpha compositing(请查看我发布的结果)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接