首页 文章

Bgr32 PixelFormat中的第四个通道是什么?

提问于
浏览
6

我对Bgr32像素格式感到困惑 . 以下描述来自microsoft msdn:http://msdn.microsoft.com/en-us/library/system.windows.media.pixelformats(v=vs.110).aspx

  • Bgr24 是一种sRGB格式,每像素24位(BPP) . 每个颜色通道(蓝色,绿色和红色)每像素分配8位(BPP) . ✓

  • Bgra32 是一种sRGB格式,每像素32位(BPP) . 每个通道(蓝色,绿色,红色和alpha)分配每像素8位(BPP) . ✓

  • Bgr32 是一种sRGB格式,每像素32位(BPP) . 每个颜色通道(蓝色,绿色和红色)每像素分配8位(BPP) . - >(⊙.☉)? WTF

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

What is/are the last channel/the remaining 8bits for?

提前致谢

1 回答

  • 5

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

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

    现在没有使用25%的空间,这最终是浪费 .

    与RGB24相比,使用它的方式更有意义,颜色由一个整数表示,而前者则必须为3个字节 . 显然你必须打开它来获得不同的组件,但这些操作今天真的很便宜 .

    就个人而言,只有存在内存限制或任何其他类型的约束(例如硬件)时,我才会使用RGB24 . 还有其他任何东西我都会选择RGBA甚至是PBGRA,因为它有许多好处,比如透明度和在blitting操作期间额外的计算,以及更好地混合透明轮廓 .

    对于此类表示可以为您提供的好处,我建议您查看这个问题:Pre-multiplied alpha compositing(看看我发布的结果)

相关问题