34

Durch PIL (und in Bezug auf this question), wo kann ich eine umfassende Liste von Bildmodi erhalten? Ich sehe "RGB", "RGBX", mein Code hat irgendwie "BGRX", obwohl es in den PIL-Dokumenten nicht erwähnt wird, die ich sehen kann. Wie kann ich sehen, welches was ist, was PIL unterstützt und welche geeigneten Modi zum Beispiel bei der Interaktion mit Windows API-Aufrufen ausgewählt werden?Liste der Bild- "Modi"

Grundsätzlich weiß ich sehr wenig über Bildmodi und möchte mehr als nur lernen, welche Buchstaben zu setzen, um es magisch arbeiten zu lassen.

Antwort

23

Wie es in der Pillow documentation (und wie es auch in der alten PIL documentation) sagte, müssen Sie sich die Datei Unpack.c ansehen. Sie finden die Liste am Ende der Datei.

Unpack.c aus dem aktuellen Hauptzweig Pillow: https://github.com/python-pillow/Pillow/blob/master/src/libImaging/Unpack.c

Unpack.c aus der endgültigen Version von PIL: http://svn.effbot.org/public/tags/pil-1.1.7/libImaging/Unpack.c

16-Bit BGR als "BGR;16" aufgeführt ist und erzeugt eine Ausgabe "RGBX".

+0

ah schön, ich tatsächlich geschafft, die Datei zu finden, aber diese Nachschlagetabelle nicht gefunden. – Claudiu

+0

Verdammt, ich verstand endlich etwas von etwas, das mich seit Ewigkeiten in die Irre geführt hatte. Die Modi, die in der zweiten Spalte der Tabelle in 'Unpack.c' aufgelistet sind, sind nicht das, was die Docs * modes * nennen, sondern was sie * rohe Modi * nennen. Der Unterschied ist, dass * rohe Modi * Dateitypen sind, die Pillow analysieren kann, während * modes * Typen sind, die der Parameter 'mode' von verschiedenen Pillow-Funktionen versteht und die Sie in' .convert() 'konvertieren können. Die Kommentare oberhalb der verlinkten Tabelle machen zwar deutlich, dass diese nicht gleich sind, aber es war mir lange über den Kopf gegangen. –

+0

Nun, da ich es verstehe, scheint mir, dass diese Frage ernsthaft von einer Antwort profitieren würde, die auf * beide * https://pillow.readthedocs.io/en/3.0.x/handbook/concepts.html#modes (die Liste der * Modi *) und 'Unpack.c' (die Liste der * Rohmodi *) und erklärt den Unterschied zwischen ihnen. Anderes Mark, wärst du bereit, dies über einen Schnitt zu machen? Wenn nicht, aber Sie würden sich mit mir wohlfühlen, lassen Sie es mich wissen und ich werde mich darum kümmern. Ansonsten werde ich wahrscheinlich nur eine konkurrierende Antwort posten. –

Verwandte Themen