2010-02-04 2 views
17

Ich habe in Python keine Standardmethode zum Lesen von Bildern gefunden. Gibt es wirklich keine (weil es so viele Funktionen für so viele benutzerdefinierte Sachen gibt, dass ich mich wirklich wundere, dass es keine Funktionen zum Lesen von Bildern gibt)? Oder was ist es? (Es sollte in der MacOSX-Standardinstallation und in den neuesten Versionen auf Linux-Distributionen verfügbar sein.)Python: Standard/gängige Methode zum Lesen von PNG-Bildern

Wenn es keine gibt, was ist die am häufigsten verwendete lib?

Viele Suchergebnisse verweisen mich auf Python Imaging Library. Wenn dies eine bekannte Python-lib zum Lesen von Bildern ist, warum ist sie nicht in Python enthalten?

+3

Nicht alles sollte in der Standardbibliothek enthalten sein. In der Tat, es ist schon zu viel. –

Antwort

23

Nein, in der Standardbibliothek gibt es keine Module zum direkten Lesen/Schreiben/Verarbeiten von Bildern. Die am häufigsten verwendete Bibliothek ist jedoch PIL (Python Imaging Library). Viele Projekte sind nicht in der Standardbibliothek enthalten, da sie 1) völlig optional sind und 2) nicht von den wenigen Python-Core-Entwicklern gepflegt werden können.

+1

Python Imaging Library rockt. – Mark

+1

Nun, ich sehe nicht wirklich, warum es regexp, unzip, http, imap, ftp und all das Zeug (versteh mich nicht falsch: ich bin wirklich froh, dass es alles da ist), aber nicht einfache Bildladefunktionen. Aber ok, danke für diese Information! – Albert

+1

Lennart Regebro hat bereits darauf hingewiesen: Pythons Standardbibliothek enthält zu viel Zeug, das 1) nicht benutzt wird, 2) nicht in die Standardbibliothek gehört oder 3) von fraglicher Qualität ist. Hoffentlich wird es in Python 4.x mehr Aufräumarbeiten geben ... – AndiDog

0

Der vorgeschlagene PIL unterstützt keine verschachtelten PNGs. Es kann ziemlich nervig sein, wenn man mit vielen PNGs unterschiedlicher Herkunft umgeht. Es ist möglich, sie zu öffnen, aber kann nur Header-Informationen von ihnen lesen, alle anderen Operationen schlagen fehl.

+0

Also, was für einen anderen Vorschlag hast du? Was ist die beste lib? – Albert

+2

Nun, ich habe keine anderen Grafikbibliotheken außer PIL in Python verwendet, aber [pypng] (http://code.google.com/p/pypng/) behauptet, alle Arten von PNG-Dateien zu unterstützen. Sein pures Python ist also vielleicht nicht der schnellste Weg PNGs zu öffnen und hat auch eine ziemlich begrenzte API. Ich denke, es könnte verwendet werden, um interlaced PNGs in PIL zu laden. Sie können überprüfen, ob ein PNG im "info" -Dict der Image-Klasse interlaced ist. Darüber hinaus gibt es auch Python-Bindungen für [ImageMagick] (http://www.imagemagick.org/script/api.php)). – user266458

2

kommt spät zur Party, würde ich dringend ein vorschlagen der Python interfaces to the ImageMagick Bibliothek (Zauberstab funktionierte gut in meinem Test, werde ich bald mehr zu wissen ...)

ImageMagick ist eine leistungsfähigere Bibliothek und auch ziemlich Nun, ein De-facto-Standard in vielen Sprachen. Auf diese Weise haben sie eine breitere Entwicklerbasis.