gpt4 book ai didi

c# - Bgr32 PixelFormat 中的第四个 channel 是什么

转载 作者:太空狗 更新时间:2023-10-29 20:23:58 26 4
gpt4 key购买 nike

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

  1. Bgr24 是一种每像素 24 位 (BPP) 的 sRGB 格式。每个颜色 channel (蓝色、绿色和红色)都分配了每像素 8 位 (BPP)。 ✓
  2. Bgra32 是一种每像素 32 位 (BPP) 的 sRGB 格式。每个 channel (蓝色、绿色、红色和 alpha)都分配了每像素 8 位 (BPP)。 ✓
  3. Bgr32 是一种每像素 32 位 (BPP) 的 sRGB 格式。每个颜色 channel (蓝色、绿色和红色)都分配了每像素 8 位 (BPP)。 -> (⊙.☉)? WTF

3 个 channel ,每个 8 位 -> 3x8bit = 24bit

最后一个 channel /剩余的 8 位是什么?

提前致谢

最佳答案

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

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

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

与 RGB24 相比,以一种颜色由一个整数表示的方式使用它更有意义,而在前者中它必须是 3 个字节。显然,您必须将其拆包才能获得不同的组件,但如今这些操作非常便宜。

就我个人而言,只有存在内存限制或任何其他类型的限制(例如硬件)时,我才会使用 RGB24。其他我会选择 RGBA 甚至 PBGRA,因为它有很多好处,例如透明度,并且在 blitting 操作期间节省额外的计算,以及更好地混合透明轮廓。

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

关于c# - Bgr32 PixelFormat 中的第四个 channel 是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23150576/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com