Was ist eine PBM-Datei?

Eine Portable-Bitmap-Datei ist ein Netpbm-Rasterformat für monochrome Bilder. Jedes Pixel hat einen von zwei Werten, dargestellt durch ein bewusst einfaches Text- oder Binär-Encoding.

So funktionieren PBM-Dateien

PBM ist neben PGM (Graustufen) und PPM das zweistufige Format der Netpbm-Familie. PNM ist ein Sammelbegriff für diese drei Formate; PAM ist ein viertes, allgemeineres Format. Ein PBM-Bild besteht aus einem kurzen ASCII-Header und einem anschließenden Raster: einer magischen Zahl aus zwei Zeichen, Breite und Höhe als Dezimalzahlen mit Whitespace dazwischen und anschließend den Zeilen von oben nach unten, jeweils von links nach rechts. PBM hat kein Feld für den Maximalwert, das PGM nach der Höhe ergänzt. Vor dem Raster gilt Text von einem # bis zum Zeilenende als Kommentar. Die Raw-Variante packt Pixel in Bytes, während die ältere Plain-Variante jedes Pixel als ASCII-Zeichen 1 oder 0 schreibt. Für Bilder mit mehr Darstellungsumfang sind PGM, PPM, PAM oder ein anderes Format nötig.

Wichtige Fakten

  1. Erkennen Sie die Variante an den ersten zwei Bytes, nicht an der Dateiendung: P4 kennzeichnet die gepackte binäre Raw-Variante und P1 die ASCII-basierte Plain-Variante. Die übliche Dateiendung ist .pbm, doch .pnm wird gleichermaßen für PBM, PGM und PPM verwendet. Bei der IANA ist kein Medientyp registriert; image/x-portable-bitmap ist der übliche Wert. Prüfen Sie, ob Ihre Bibliothek beide Varianten liest: Laut Dokumentation schreibt Pillow die Raw-Varianten und liest Plain-Dateien von P1 bis P3 erst ab Version 9.2.0.
  2. In Raw-PBM werden pro Zeile jeweils 8 Pixel in ein Byte gepackt, mit dem höchstwertigen Bit zuerst. Das letzte Byte der Zeile wird mit Füllbits ergänzt, deren Werte keine Rolle spielen. Eine Zeile benötigt daher die durch 8 geteilte und aufgerundete Breite in Bytes. Ein Leseprogramm, das das Raster als durchgehenden Bitstrom behandelt, verschiebt jede Zeile nach der ersten, wenn die Breite kein Vielfaches von 8 ist. Genau ein Whitespace-Zeichen trennt die Höhe vom Raster.
  3. Ein gespeicherter Wert 1 steht für Schwarz und 0 für Weiß. Das ist umgekehrt zu PGM, wo null Schwarz und der Maximalwert Weiß bedeutet, sowie zu einem PAM-Bild mit dem Tupeltyp BLACKANDWHITE, der 0 für Schwarz und 1 für Weiß verwendet. Code, der gespeicherte PBM-Bits direkt auf Helligkeitswerte oder PAM-Abtastwerte abbildet, muss sie invertieren. Eine Bibliothek zum Decodieren kann das bereits getan haben: Pillow wandelt einen gespeicherten Wert 1 in 0 und einen gespeicherten Wert 0 in 255 um. Prüfen Sie deshalb die Rückgabewerte Ihrer Bibliothek, bevor Sie erneut invertieren.
  4. Die beiden Varianten unterscheiden sich nicht nur im Encoding. Eine Plain-Datei enthält genau ein Bild, hat keine Füllbits, ignoriert Whitespace innerhalb des Rasters und sollte Zeilen auf 70 Zeichen begrenzen. Eine Raw-Datei kann mehrere Bilder direkt hintereinander enthalten. Die Spezifikation erlaubt dies seit Juli 2000 und weist darauf hin, dass die meisten Werkzeuge weiterhin nur das erste Bild lesen. Für größtmögliche Kompatibilität empfiehlt sie, P4, einen Zeilenumbruch, Breite und Höhe mit einem Leerzeichen dazwischen, einen Zeilenumbruch und ein einzelnes Raster zu schreiben.

Wann PBM-Dateien relevant sind

Nutzen Sie PBM als Zwischenformat für zweistufige Daten, etwa binäre Masken, die zwischen Bildwerkzeugen ausgetauscht werden. Die Netpbm-Spezifikation beschreibt es als Zwischenformat, das keine Rücksicht auf Effizienz nimmt und normalerweise nicht zum Speichern oder Übertragen einer Datei verwendet wird. Ohne Konvertierung in ein anderes Format lassen sich damit keine Graustufen, Farben oder Teiltransparenz darstellen.

So hilft Transloadit bei PBM-Dateien

Transloadits Bildformattabelle führt PBM als Format auf, das seine ImageMagick-basierten Robots, darunter /image/resize, lesen und schreiben können. Der Parameter format dieses Robots akzeptiert jedes Format, das die Tabelle als schreibbar kennzeichnet.

Die Tabelle gibt nicht an, ob PBM-Ausgaben in der Raw- oder Plain-Variante geschrieben werden. Prüfen Sie deshalb die magische Zahl der Ausgabe, wenn das nächste Werkzeug eine bestimmte Variante benötigt.

Entdecken Sie Transloadits Möglichkeiten für Dateiformate & Komprimierung

Quellen

Machen Sie aus Medienwissen eine funktionierende Pipeline

Verbinden Sie Uploads, Verarbeitung, KI, Storage und Auslieferung über eine deklarative API – um Encoding-Stack, Skalierung und ständig wechselnde Formate müssen Sie sich nicht selbst kümmern.

Transloadit kostenlos ausprobieren