Was ist das PNM-Dateiformat?
Portable Anymap ist ein Sammelbegriff für die Netpbm-Rasterformate PBM, PGM und PPM. Gemeinsam decken sie monochrome Bilddaten, Graustufen und RGB durch eng verwandte Strukturen ab.
So funktioniert das PNM-Dateiformat
PNM ist kein eigenes Dateiformat: Die Netpbm-Dokumentation bezeichnet es als Abstraktion, die PBM (zweistufig), PGM (Graustufen) und PPM (Farbe) zusammenfasst. Jedes Bild beginnt mit einer magischen Kennung aus zwei Zeichen, P1 bis P6, gefolgt von Breite und Höhe als ASCII-Dezimalzahlen sowie bei PGM und PPM einem maximalen Abtastwert namens maxval. Die Rohvarianten (P4, P5, P6) speichern das Raster anschließend binär, zeilenweise von oben nach unten: PBM packt acht Pixel in ein Byte, wobei 1 Schwarz bedeutet. PGM und PPM verwenden ein Byte pro Abtastwert, wenn maxval unter 256 liegt, andernfalls zwei Bytes, das höchstwertige zuerst. Die Klartextvarianten (P1, P2, P3) schreiben jeden Abtastwert als ASCII-Text. Netpbm beschreibt diese Formate als Zwischenformate, die in ihrer reinsten Verwendung nur in einer Pipe zwischen zwei Programmen existieren.
Wichtige Fakten
- Ein Dateiname mit
.pnmoder der Medientypimage/x-portable-anymapsagt nicht aus, welches Format eine Datei enthält. Lesen Sie die magische Kennung aus zwei Zeichen:P1undP4stehen für PBM,P2undP5für PGM,P3undP6für PPM. Die kleinere Zahl jedes Paares bezeichnet die Klartextvariante. Keiner der Netpbm-Medientypen ist bei der IANA registriert. Eine Schreibimplementierung, die „PNM“ ausgeben soll, muss eines der drei Formate wählen. ImageMagick wählt beispielsweise das für das Bild am besten geeignete Format und schreibt die Binärvariante, sofern nichts anderes vorgegeben ist. - PGM- und PPM-Abtastwerte haben nicht immer 8 Bit. maxval im Header kann jeden Wert von 1 bis 65535 annehmen. Rohdateien verwenden ein Byte pro Abtastwert, wenn maxval unter 256 liegt, andernfalls zwei Bytes, das höchstwertige zuerst. Daten mit 10 Bit und maxval 1023 sind daher gültig. Die Abtastwerte beziehen sich auf maxval. Eine Leseimplementierung, die 255 voraussetzt, interpretiert daher sowohl den Byte-Aufbau als auch 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 drei Formate haben weder einen Alphakanal noch ein Feld für ein ICC-Profil. Frei formulierbare Daten sind nur als Kommentare mit
#im Header möglich. Netpbm speichert Transparenz in einer separaten PGM-Datei, die als Transparenzmaske dient, oder im neueren PAM-Format, wo ein Tupeltyp wieRGB_ALPHAeine Deckkraftebene ergänzt. PAM beginnt mitP7und ist ein viertes Netpbm-Format, keines der PNM-Formate. Gehen Sie daher nicht davon aus, dass eine PNM-Leseimplementierung es akzeptiert. - Eine PBM-, PGM- oder PPM-Rohdatei darf mehrere Bilder unmittelbar hintereinander ohne Trennzeichen enthalten. Diese Regel wurde im Juli 2000 hinzugefügt. Die Klartextvarianten enthalten genau ein Bild. Netpbm warnt, dass die meisten Werkzeuge alles nach dem ersten Bild ignorieren. Die Dokumentation von OpenImageIO führt mehrere Bilder pro Datei für PNM als nicht unterstützt auf. Verlassen Sie sich daher nicht darauf, dass eine Datei mit mehreren Bildern eine Verarbeitungskette vollständig durchläuft.
Wann das PNM-Dateiformat relevant ist
Verwenden Sie Dateien der PNM-Familie als einfache Zwischenformate zwischen Kommandozeilenwerkzeugen oder Bildanalyseschritten, wenn ein Parser mit wenigen Zeilen wichtiger ist als die Dateigröße. Sie sind unkomprimiert und enthalten fast keine Metadaten. Wandeln Sie sie daher für die Speicherung oder Auslieferung in ein komprimiertes Format um. Die PBM-Dokumentation von Netpbm selbst beschreibt es als Format, das man normalerweise nicht zum Speichern oder Übertragen einer Datei verwenden würde.
So hilft Transloadit beim PNM-Dateiformat
Transloadits Bildformattabelle führt PBM, PGM, PPM, PNM und PAM als Formate auf, die die ImageMagick-basierten Robots, darunter /image/resize, lesen und schreiben können. Eine Netpbm-Datei kann daher in einem Step in ein komprimiertes Format umgewandelt werden.
Die Tabelle gibt an, was jeder Stack lesen und schreiben kann. Sie sagt nicht, welche PNM-Variante geschrieben wird oder wie Abtastwerte mit 16 Bit behandelt werden. Für diesen Eintrag wurde keine Assembly ausgeführt.
Entdecken Sie Transloadits Möglichkeiten für Dateiformate & Komprimierung
Quellen
- Netpbm: pnm, das Netpbm-Überformat (Definition, Medientyp, Dateiname)
- Netpbm: Spezifikation des zweistufigen PBM-Bildformats
- Netpbm: Spezifikation des PGM-Graustufenbildformats (maxval, Transparenzmaske)
- Netpbm: Spezifikation des PPM-Farbbildformats
- Netpbm: PAM-Formatspezifikation (Beziehung zu PNM, Alpha-Tupeltypen)
- ImageMagick-Bildformate: PNM-Zeile (Auswahl des Ausgabeformats, Binär- und ASCII-Varianten)
- Mitgelieferte Format-Plugins von OpenImageIO: PNM / Netpbm