【问题标题】:Losing alpha channel information opening a BMP file打开 BMP 文件时丢失 Alpha 通道信息
【发布时间】:2014-03-22 05:59:19
【问题描述】:

我有一个 BMP 文件,我知道它是 32bpp 并包含 alpha 信息。每当我使用 System.Drawing.Bitmap 类的构造函数或 FromFile 时,它​​会将其加载为 32bppRgb 而不是 32bppArgb。有没有办法保留 alpha 信息? 我知道 BMP 是一种简单的文件格式,我可以为其编写自己的加载程序,但我宁愿不这样做。似乎应该在某个地方有一个选项。

【问题讨论】:

  • 这有点相关。也许它会帮助你stackoverflow.com/questions/10658994/…
  • 似乎不支持加载带有 Alpha 通道的 bmp。看到这个线程:social.msdn.microsoft.com/Forums/vstudio/en-US/….
  • 无法加载支持 alpha 的.bmp 格式。
  • 它支持 PNG 文件的 alpha - 您是否仅限于使用 BMP,或者您是否有可能切换格式?
  • 感谢您的回复。在发布之前,我已经阅读了 GIF 透明度文章。另一篇文章很有启发性。我不受限于 BMP,我试图同时支持 PNG 和 BMP。在我可以手动加载它们之前,我已经暂停了 BMP 支持。感谢您的帮助。

标签: c# winforms bmp fromfile


【解决方案1】:

很遗憾,GDI+ 不支持 BMP 文件中的 Alpha 通道。这是the docs中的相关说明:

Image 类不支持位图中的 Alpha 透明度。到 启用 Alpha 透明度,使用每像素 32 位的 PNG 图像。

最好的办法是在支持 BMP alpha 的单独程序中将文件转换为支持透明度的格式(如 PNG),或者编写自己的代码来执行此操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-18
    • 1970-01-01
    • 2013-12-17
    • 1970-01-01
    • 2018-10-24
    • 2018-02-04
    • 1970-01-01
    • 2015-03-05
    相关资源
    最近更新 更多