Was ist eine PPM-Datei?
Eine PPM-Datei (Portable Pixel Map, auch portable pixmap genannt) verwendet das Farbbildformat von Netpbm: ein unkomprimiertes Raster aus roten, grünen und blauen Abtastwerten nach einem kurzen Textheader. Die Binärvariante (P6) und die Klartextvariante (P3) geben einfachem Parsen Vorrang vor Kompaktheit.
So funktionieren PPM-Dateien
Ein PPM-Bild besteht aus einem Textheader mit anschließendem Raster. Der Header enthält die magische Kennung, danach Breite, Höhe und den maximalen Abtastwert (maxval, von 1 bis 65535) als ASCII-Dezimalzahlen, getrennt durch Leerraumzeichen. # leitet einen Kommentar ein. In der üblichen Rohvariante (P6) beendet ein einzelnes Leerraumzeichen den Header. Das Raster folgt zeilenweise von oben nach unten, jeder Pixel als roter, grüner und blauer Abtastwert: jeweils ein Byte, wenn maxval unter 256 liegt, andernfalls zwei Bytes mit dem höchstwertigen zuerst. Die Klartextvariante (P3) schreibt stattdessen jeden Abtastwert als ASCII-Dezimalzahl. Nichts wird komprimiert. Ein Rohbild mit 1920 × 1080 Pixeln und maxval 255 belegt daher 6.220.800 Bytes zuzüglich Header. Netpbm bezeichnet PPM als Farbformat auf dem kleinsten gemeinsamen Nenner und als „außerordentlich ineffizient“. Der Zweck sei, dass sich Programme dafür sehr einfach schreiben lassen.
Wichtige Fakten
- Schreiben Sie die Rohvariante
P6, sofern kein Mensch die Datei lesen muss. Netpbm bezeichnet die KlartextvarianteP3als recht selten und empfiehlt für größtmögliche Kompatibilität eine minimale Teilmenge:P6, einen Zeilenumbruch, Breite und Höhe durch ein Leerzeichen getrennt, einen Zeilenumbruch, einen maxval von höchstens 255, einen Zeilenumbruch und dann das Raster, mit nur einem Bild in der Datei. Eine PPM-Rohdatei darf zwar mehrere Bilder nacheinander enthalten, doch Netpbm warnt, dass die meisten Werkzeuge nur das erste lesen. - maxval legt sowohl die Skala als auch die Bytebreite jedes Abtastwerts fest. Die Werte reichen von 0 bis maxval, das jeden Wert von 1 bis 65535 annehmen kann. Rohdateien wechseln bei maxval 256 von einem Byte pro Abtastwert zu zwei Bytes in Big-Endian-Reihenfolge. Eine Leseimplementierung, die Kanäle mit 8 Bit fest voraussetzt, liest eine gültige Datei mit 16 Bit falsch. Ignoriert sie maxval, interpretiert sie die Helligkeit falsch. Netpbm weist darauf hin, dass Rohdateien vor April 2000 auf 255 beschränkt waren und ältere Programme davon abhängen können.
- Die Farbbedeutung ist festgelegt, wird aber nicht in der Datei vermerkt. Echte PPM-Abtastwerte verwenden Rot, Grün und Blau nach BT.709 mit der Gamma-Übertragungsfunktion nach BT.709. maxval auf allen drei Kanälen entspricht D65-Weiß. Die Spezifikation selbst weist darauf hin, dass Dateien häufig stattdessen sRGB verwenden oder lineare Abtastwerte speichern. Der Header hat weder ein Feld zur Unterscheidung noch Platz für ein ICC-Profil. Stimmen Sie die Interpretation daher mit der Stelle ab, die die Dateien erzeugt. Das Werkzeug
pnmgammavon Netpbm wandelt zwischen diesen Varianten um. - PPM hat keinen Alphakanal: Jeder Pixel besteht aus genau drei Abtastwerten. Netpbm speichert Transparenz in einer separaten PGM-Datei, die als Transparenzmaske dient, oder im PAM-Format mit dem Tupeltyp
RGB_ALPHA. Beim Umwandeln eines Bildes mit Transparenz in PPM geht Alpha daher verloren, sofern es nicht separat exportiert wird.
Wann PPM-Dateien relevant sind
Verwenden Sie PPM für unkomplizierte Bildkonvertierung, Untersuchung oder Fehlersuche, wenn ein einfacher Decoder hilfreich ist. Wandeln Sie es vor der Auslieferung um, wenn seine vergleichsweise große Dateigröße Speicherplatz oder Netzwerkbandbreite verschwenden würde.
So hilft Transloadit bei PPM-Dateien
Transloadits Bildformattabelle führt PPM als Format auf, das die ImageMagick-basierten Robots, darunter /image/resize, lesen und schreiben können. Eine PPM-Datei kann daher in einem Step in ein komprimiertes Format wie PNG oder JPEG umgewandelt werden.
Die Tabelle gibt an, was jeder Stack lesen und schreiben kann. Sie sagt nicht, wie Abtastwerte mit 16 Bit oder die Farbvarianten von PPM interpretiert werden. Für diesen Eintrag wurde keine Assembly ausgeführt.
Entdecken Sie Transloadits Möglichkeiten für Dateiformate & Komprimierung
Quellen
- Netpbm: Spezifikation des PPM-Farbbildformats (Format, minimale Teilmenge, Klartext-PPM, Kompatibilität)
- Netpbm: Spezifikation des PGM-Graustufenbildformats (Transparenzmaskenvariante)
- Netpbm: PAM-Formatspezifikation (Tupeltypen RGB und RGB_ALPHA)
- Pillow-Fehlerbericht #5008: Maximaler Grau- bzw. Farbwert von PGM und PPM wird ignoriert