2017-03-03 286 views
0

因爲它似乎PIL不支持RGBA .bmp文件。python將RGBA圖像保存爲BMP文件

當我保存圖像時,透明像素被轉換成黑色。

所有可能的是將圖像保存爲.png或其他東西,但我真的需要它作爲一個.bmp 所以有什麼其他的方式來創建一個RGBA RGB文件在Python中?

+0

請考慮簡單地將數據寫入非常簡單的PAM格式https://en.m.wikipedia.org/wiki/Netpbm#PAM_graphics_format,然後使用** ImageMagick **將其轉換爲PNG或其他東西支持透明度 - 就像'convert image.pam result.png'一樣簡單。 –

+0

[BMP](https://en.wikipedia.org/wiki/BMP_file_format)本身也是一個相當簡單的格式(特別是如果你需要關心的是32位RGBA值),所以如果沿着這條路線走下去,你也可以直接寫BMP格式。 – haraldK

回答

1

引述維基百科:

集成的alpha通道已經推出了具有無證 BITMAPV3INFOHEADER並與記錄BITMAPV4HEADER(自Windows 95),並在Windows XP的登錄和主題系統內使用以及微軟辦公室(自v2000);它受到一些圖像編輯軟件的支持,如Adobe Photoshop自版本7以及Adobe Flash自MX 2004以來的版本(即Macromedia Flash)。它也支持GIMP,Google Chrome,Microsoft PowerPoint和Microsoft Word。

由於兼容性的原因,大多數應用程序都使用較舊的DIB標頭來保存文件。

看來ImageMagick支持RGBA .bmp格式。將文件另存爲PNG,然後轉換,或者使用ImageMagick bindings而不是PIL,這是您的選擇之一。