PGM Dateiformat
einfaches Format für Graustufen-Bilder
PGM ist der Graustufen-Vertreter der PBM-Familie. Während PBM nur Schwarz und Weiß kennt, erlaubt PGM bis zu 65.535 Abstufungen zwischen den beiden Extremen. Jeder Pixel wird durch einen einzelnen Zahlenwert beschrieben: 0 ist Schwarz, der Maximalwert ist Weiß. PGM steht für „Portable Gray Map“ und wurde Ende 1988 von Jef Poskanzer als Erweiterung von PBM entwickelt. Zur Geschichte der gesamten Formatfamilie siehe meinen Artikel über PBM.
TLDR:
PGM ist das Graustufenformat der Netpbm-Familie. Es funktioniert wie PBM, nur mit mehr als zwei „Farben“ – eben Graustufen. PGM wird noch in der Bildverarbeitung, in der Bildung und als Zwischenformat in Pipes genutzt. Wer den PBM-Artikel kennt, kennt das Prinzip, PGM macht es einfach grauer. Die bunte Variante ist schließlich PPM.
Der technische Aufbau
Ein PGM-Bild unterscheidet sich von PBM durch genau eine zusätzliche Zeile im Header: den Maximalwert (Maxval). Dieser legt fest, wie viele Graustufen das Bild verwendet. Auch mit PGM ist es möglich ein Bild auf „Karopapier“ zu zeichnen. Statt Kästchen auszumalen werden hier in jedem Kästchen Zahlen, die eine Helligkeit repräsentieren, verwendet.
| Bestandteil | Beispiel | Bedeutung |
|---|---|---|
| Magic Number | P2 |
Plain PGM (ASCII-Variante) |
| Kommentar | # mein bild |
Optional, mit # eingeleitet |
| Breite Höhe | 24 7 |
Dimensionen in Pixeln |
| Maxval | <15 |
Maximaler Grauwert (1-65535) |
| Rasterdaten | 0 2 4 6 ... |
Grauwerte pro Pixel |
Das klassische FEEP-Beispiel sieht in PGM so aus, jeder Buchstabe bekommt eine eigene Helligkeit. (Zur besseren Darstellung mit Monospace-Font habe ich einen Maxval von 8 gewählt)
P2 # feep.pgm 24 7 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 0 0 4 4 4 4 0 0 6 6 6 6 0 0 8 8 8 8 0 0 2 0 0 0 0 0 4 0 0 0 0 0 6 0 0 0 0 0 8 0 0 8 0 0 2 2 2 0 0 0 4 4 4 0 0 0 6 6 6 0 0 0 8 8 8 8 0 0 2 0 0 0 0 0 4 0 0 0 0 0 6 0 0 0 0 0 8 0 0 0 0 0 2 0 0 0 0 0 4 4 4 4 0 0 6 6 6 6 0 0 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Der Text FEEP ist wie im PBM-Beispiel zu erkennen, aber die Buchstaben werden von links nach rechts heller: F ist dunkelgrau (2), E mittelgrau (4 und 6), P weiß (8).
Maxval: der entscheidende Unterschied zwischen PBM und PGM
Der Maxval bestimmt die Farbtiefe des Bildes. Mit Maxval 1 verhält sich PGM übrigens genau wie PBM. Mit Maxval 255 hat man 256 Graustufen, das entspricht einem klassischen 8-Bit-Graustufenbild. Werte über 255 sind möglich (bis 65535), werden in der Praxis aber selten gebraucht.
Plain vs. Raw: P2 und P5
Genau wie bei PBM gibt es auch bei PGM eine ASCII- und eine Binärvariante:
| Eigenschaft | Plain PGM (P2) |
Raw PGM (P5) |
|---|---|---|
| Pixeldaten | ASCII-Dezimalzahlen | Binär, 1 oder 2 Byte pro Pixel |
| Menschenlesbar | Ja, komplett | Nur der Header |
| Speicherplatz pro Pixel | Variabel (Ziffern + Whitespace) | 1 Byte (Maxval ≤ 255) oder 2 Bytes |
| Max. Zeilenlänge | 70 Zeichen empfohlen | Kein Limit |
Die RAW-Variante (P5) ist der Standard bei Netpbm-Tools. Bei einem Maxval über 255 werden zwei Bytes pro Pixel verwendet, Big-Endian.
Typische Einsatzgebiete
PGM wird überall dort eingesetzt, wo es auf den reinen Helligkeitswert pro Pixel ankommt und Farbe keine Rolle spielt:
– Wissenschaft und Medizin: Röntgenbilder, MRT-Scans und Mikroskopie-Aufnahmen werden häufig als Graustufenbilder verarbeitet. PGM eignet sich dafür wegen seiner Einfachheit und verlustfreien Speicherung.
– Computer Vision: Kantendetektoren (Sobel, Canny), Schwellwertverfahren und Histogrammanalysen arbeiten mit Graustufendaten. PGM liefert diese ohne Overhead.
– Höhenkarten und Geländemodelle: Jeder Pixel repräsentiert eine Höhe – ein Anwendungsfall, der perfekt zur „ein Wert pro Pixel“-Logik von PGM passt.
– Transparenzmasken: In Netpbm wird PGM auch als Transparenzmaske verwendet. Dabei steht Weiß für volle Deckkraft und Schwarz für vollständige Transparenz.
– Lehre: Wie PBM eignet sich PGM hervorragend, um Grundlagen der Bildverarbeitung (nicht Bildbearbeitung) zu vermitteln.
Gamma und Farbraum
Laut Spezifikation sind die Grauwerte nicht linear, sondern folgen der Gamma-Transferfunktion nach ITU-R BT.709 (Gamma 2.2). In der Praxis halten sich aber viele Programme nicht daran und schreiben lineare Werte. Das Netpbm-Tool pnmgamma kann zwischen beiden Varianten konvertieren. Auch die inzwischen gängigere sRGB-Transferfunktion weicht leicht von BT.709 ab und in der Realität benutzen die meisten Programme einfach sRGB und nennen das Ergebnis PGM.
Quellen
Netpbm PGM-Formatspezifikation
PBM-Artikel mit Geschichte der Formatfamilie
PGM-Dateien umwandeln, öffnen und bearbeiten
Informationen zu PGM-Dateien
- Software zum PGM öffnen
- IrfanView
- XnView
- GIMP
- ImageMagick
- Software zum PGM bearbeiten
- GIMP
- ImageMagick
- Paint.NET
- MIME-Type für PGM
- image/x-portable-graymap
- image/x-pgm
Zuletzt aktualisiert am 22. April 2026 von
Keine Kommentare