python将RGBA图像保存为BMP文件

Posted

技术标签:

【中文标题】python将RGBA图像保存为BMP文件【英文标题】:python save RGBA Image as BMP file 【发布时间】:2017-03-03 20:41:19 【问题描述】:

看起来 PIL 不支持 RGBA .bmp 文件。

当我保存图像时,透明像素会转换为黑色像素。

所有可能的是将图像保存为 .png 或其他文件,但我真的需要它作为 .bmp 那么有没有其他方法可以在python中创建RGBA bmp文件?

【问题讨论】:

考虑简单地将数据自己写入非常简单的 PAM 格式 en.m.wikipedia.org/wiki/Netpbm#PAM_graphics_format,然后使用 ImageMagick 将其转换为 PNG 或其他支持透明度的东西 - 简单如 @ 987654323@. BMP 本身也是一种相当简单的格式(特别是如果您只需要关心 32 位 RGBA 值),所以如果您沿着这条路走,您不妨只写 BMP直接格式化。 【参考方案1】:

引用***:

一个集成的 alpha 通道已与 未记录的 BITMAPV3INFOHEADER 和记录的 BITMAPV4HEADER(自 Windows 95 起)一起引入,并用于 Windows XP 登录和主题系统以及 Microsoft Office(自 v2000 起) ;一些图像编辑软件支持它,例如从版本 7 开始的 Adob​​e Photoshop 和从版本 MX 2004 开始的 Adob​​e Flash(当时称为 Macromedia Flash)。 GIMP、Google Chrome、Microsoft PowerPoint 和 Microsoft Word 也支持它。

出于兼容性原因,大多数应用程序使用较旧的 DIB 标头来保存文件。

ImageMagick 似乎支持 RGBA .bmp 格式。将文件保存为 PNG,然后进行转换,或者使用 ImageMagick bindings 代替 PIL,都是您的选择。

【讨论】:

以上是关于python将RGBA图像保存为BMP文件的主要内容,如果未能解决你的问题,请参考以下文章

Mat 图像和 BMP格式图像的相互转换

将图像数据写入文本文件以创建 BMP 文件

matlab怎么将100个图像存在1个mat文件里

如何将多个 .img 图像转换为 .bmp 格式?

C++如何把位图保存到数组中

如何将 SoftwareBitmap 对象保存到 bmp 文件 C#,UWP