Lesen von BMP-Dateien in Python

8

Gibt es eine Möglichkeit, in Python eine BMP-Datei einzulesen, die nicht die Verwendung von PIL beinhaltet? PIL funktioniert nicht mit der Version 3, die ich habe. Ich habe versucht, das Image-Objekt von graphics.py, Image (anchorPoint, Dateiname) zu verwenden, aber das scheint nur mit gif-Dateien zu funktionieren.

    
Xinnamin 03.05.2012, 20:48
quelle

5 Antworten

10

In Python kann es einfach wie folgt gelesen werden:

%Vor%     
Ashish 01.04.2014 19:11
quelle
1

Der gemeinsame Port von PIL zu Python 3.x heißt "Pillow". Auch würde ich pygame Bibliothek für einfache Aufgaben vorschlagen. Es ist eine Bibliothek, voll von Funktionen zum Erstellen von Spielen - und Lesen von einigen gängigen Bildformaten ist unter ihnen. Funktioniert auch mit Python 3.x.

    
Helga Iliashenko 04.08.2013 22:28
quelle
0

Es hängt davon ab, was Sie erreichen möchten und auf welcher Plattform?

Jedenfalls kann die Verwendung einer C-Bibliothek zum Laden von BMP z. Ссылка oder Ссылка , und C-Bibliotheken können einfach aus Python zB aufgerufen werden Ctypes verwenden oder als Python-Modul umschließen.

oder Sie können diese Version von PIL Ссылка

kompilieren     
Anurag Uniyal 03.05.2012 21:14
quelle
0

Wenn Sie dies in Windows tun, sollten Sie auf dieser Site PIL (und viele andere beliebte Pakete) mit den meisten Versionen von Python ausführen können: Unoffizielle Windows-Binärdateien für Python-Erweiterungspakete

    
John Gaines Jr. 03.05.2012 21:26
quelle
0
Ich stelle fest, dass dies eine alte Frage ist, aber ich habe es gefunden, als ich dieses Problem selbst gelöst habe, und ich dachte mir, dass dies jemand anderen in der Zukunft helfen könnte.

Es ist ziemlich einfach, eine BMP-Datei als Binärdaten zu lesen. Abhängig davon, wie breit die Unterstützung und wie viele Eckfälle Sie natürlich unterstützen müssen.

Unten ist ein einfacher Parser, der NUR für 1920x1080 24-Bit BMPs funktioniert (wie sie von MS Paint gespeichert wurden). Es sollte jedoch einfach zu erweitern sein. Es spuckt die Pixelwerte als eine Python-Liste wie (255, 0, 0, 255, 0, 0, ...) für ein rotes Bild als Beispiel aus.

Wenn Sie eine stabilere Unterstützung benötigen, finden Sie Informationen darüber, wie Sie die Kopfzeile in Antworten auf diese Frage richtig lesen können: Wie liest man den bmp-Datei-Header in Python? . Anhand dieser Informationen sollten Sie in der Lage sein, den unten stehenden einfachen Parser mit allen benötigten Funktionen zu erweitern.

Es gibt auch mehr Informationen über das BMP-Dateiformat in Wikipedia Ссылка , wenn Sie es brauchen.

%Vor%     
Sebastian Ärleryd 20.11.2017 12:34
quelle

Tags und Links