Bgr32像素格式的第四个频道是什么

本文关键字:四个 频道 是什么 像素 格式 Bgr32 | 更新日期: 2023-09-27 17:59:03

我目前正在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)。每个通道(蓝色、绿色、红色和阿尔法)被分配为每个像素8位(BPP)。✓
  3. Bgr32是一种sRGB格式,每像素32位(BPP)。每个颜色通道(蓝色、绿色和红色)每像素分配8位(BPP)。->(⊙。☉)? WTF

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

最后一个通道/剩下的8位是干什么的

提前感谢

Bgr32像素格式的第四个频道是什么

它没有被使用,但将颜色表示为整数有实际的原因,无论是读取还是写入,它都是对齐的。

最后,它表示一个24位的颜色,最接近的类型表示它是一个32位的整数。用两个整数表示这种颜色会有点奇怪:一个16位(短)整数和一个8位(字节)整数。

现在25%的空间没有被使用,这最终是一种浪费。

与RGB24相比,以一个整数表示颜色的方式使用它更有意义,其中与前者一样,它必须是3个字节。显然,你必须打开包装才能获得不同的组件,但这些操作在今天真的很便宜。

就我个人而言,只有当存在内存约束或任何其他类型的约束(例如硬件)时,我才会使用RGB24。其他任何事情我都会选择RGBA甚至PBGRA,因为它有很多好处,比如透明性,在闪电战操作中省去额外的计算,以及更好地混合透明轮廓。

对于这种表示可以为您提供的好处,我建议您看看这个问题:预乘alpha合成(看看我发布的结果)