【问题标题】:8bpp image too dark8bpp 图像太暗
【发布时间】:2011-10-17 13:13:07
【问题描述】:

我为最初是索引 8bpp 256 色文件的图像创建了查看器。我首先阅读它的调色板,然后是图像字节本身,它引用了 256 调色板中的一种颜色。

使用这些数据,我创建了一个位图(32 bpp,但也尝试了各种 16bpp)并使用 SetPixel 分配每个像素。

结果是正确的图像,但颜色太暗。

任何想法为什么会发生这种情况?我想问题出在 PixelFormat 上,但我该如何解决呢?

【问题讨论】:

  • 调色板颜色可能呈现伽马曲线?
  • 我不会这么说,因为我正在做的是将 Pascal 程序转换为 .NET。原始程序以正确的颜色显示图像,无需进一步调整

标签: image-processing bitmap


【解决方案1】:

听起来您可能不会将原始颜色的字节值缩放到新的存储大小。在 16/32 位环境中直接使用 8 位值确实会使图像非常暗,因为它们的值最多为 255,而 16 或 32 位的值可能会大得多。

【讨论】:

  • 这是有道理的,因为使用 16bpp 格式会稍微亮一些。如何扩展它们?
  • 即便如此,使用 SetPixel(int,int, Color) 时,R、G 和 B 值最多只能为 255。否则会出现运行时错误。
  • 解决了。正如有人向我指出的那样,问题出在 VGA 调色板上,每种颜色最多 18 位(每个通道 6 位)。所以我乘以 4 得到了一个很好的近似值。谢谢! PD。无法将此作为自我回答发布...将其作为评论发布。
猜你喜欢
  • 2021-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-12
  • 1970-01-01
  • 2013-07-24
  • 2011-09-15
  • 2018-11-26
相关资源
最近更新 更多