2017-03-03 2 views
0

wie es scheint, PIL unterstützt RGBA .bmp-Dateien nicht.Python speichern RGBA-Bild als BMP-Datei

Wenn ich das Bild speichere, werden die transparenten Pixel in schwarze umgewandelt.

Alles was möglich ist, ist das Bild als .png oder etwas anderes zu speichern, aber ich brauche es wirklich als .bmp also gibt es andere Möglichkeiten, eine RGBA BMP-Datei in Python zu erstellen?

+0

Betrachten Sie einfach die Daten selbst in das sehr einfache PAM-Format https://en.m.wikipedia.org/wiki/Netpbm#PAM_graphics_format und verwenden Sie danach ** ImageMagick **, um das in PNG oder etwas anderes zu konvertieren unterstützt Transparenz - so einfach wie 'image.pam result.png' konvertieren. –

+0

[BMP] (https://en.wikipedia.org/wiki/BMP_file_format) ist auch ein ziemlich einfaches Format selbst (vor allem, wenn alles, was Sie beachten müssen, ist 32-Bit-RGBA-Werte), wenn Sie also diese Route gehen, Sie könnten auch einfach das BMP-Format direkt schreiben. – haraldK

Antwort

1

Zitiert Wikipedia:

Ein integrierter Alpha-Kanal ist mit dem undokumentierte BITMAPV3INFOHEADER und mit dem dokumentierten BITMAPV4HEADER (ab Windows 95) eingeführt und ist in Windows XP-Anmeldung und Themen System sowie Microsoft verwendet Büro (seit v2000); Es wird von einigen Bildbearbeitungsprogrammen wie Adobe Photoshop seit Version 7 und Adobe Flash seit der Version MX 2004 (damals bekannt als Macromedia Flash) unterstützt. Es wird auch von GIMP, Google Chrome, Microsoft PowerPoint und Microsoft Word unterstützt.

Aus Kompatibilitätsgründen verwenden die meisten Anwendungen die älteren DIB-Header zum Speichern von Dateien.

Es scheint, dass ImageMagick das RGBA-Format unterstützt. Speichern Sie eine Datei als PNG und dann konvertieren oder mit ImageMagick bindings anstelle von PIL, sind unter Ihren Möglichkeiten.