Provided by: manpages-de_4.27.0-1_all 

BEZEICHNUNG
PGM - Netpbm-Graustufen-Bildformat
BESCHREIBUNG
Dieses Programm ist Teil von netpbm(1).
Das PGM-Format ist der kleinste gemeinsame Nenner der Graustufen-Dateiformate. Es ist so entworfen, dass
es sehr leicht ist, es zu erlernen und dafür Programme zu schreiben. (Es ist so einfach, dass die meisten
Menschen einfach den Quellcode studieren, weil das leichter ist, als diese Spezifikation zu lesen).
Ein PGM-Bild repräsentiert ein Graustufen-Bild. Es sind viele verschiedene Pseudo-PGM-Formate
gebräuchlich, von denen hier bis auf die Bedeutung der einzelnen Pixel-Werte alles spezifiziert ist. Für
die meisten Anwendungsfälle kann ein PGM-Bild als ein Feld von unterschiedlichen Ganzzahlen angesehen
werden. Und alle Programme der Welt, die meinen, ein Graustufen-Bild zu verarbeiten, können einfach dazu
überlistet werden, stattdessen etwas anderes zu verarbeiten.
Der Name »PGM« ist ein Akronym, das vom englischen »Portable-Gray-Map« abgeleitet ist.
Eine offizielle Variante von PGM verwendet eine Transparenz-Maske. Eine Transparenz-Maske in Netpbm wird
durch ein PGM-Bild dargestellt, nur dass anstatt der Intensitäten der Pixel Durchlässigkeitswerte
verwendet werden. Lesen Sie dazu den folgenden Abschnitt.
DAS FORMAT
Die Formatdefinition ist wie folgt. Sie können die C-Unterprogramm-Bibliothek libnetpbm(1) verwenden, um
das Format auf bequeme und exakte Art und Weise zu lesen und zu interpretieren.
Eine PGM-Datei besteht aus einer Reihe von einem oder mehreren PGM-Bildern. Vor, nach oder zwischen den
Bildern befinden sich weder Daten, Begrenzungs- oder Füllzeichen.
Jedes PGM-Bild hat folgende Bestandteile:
• Eine »magische Zahl«, um den Dateityp zu identifizieren. Die »magische Zahl« eines PGM-Bildes sind
die zwei Zeichen »P5«.
• Leerraumzeichen (Leerzeichen, Tabulatoren, Wagenrückläufe, Zeilenumbrüche).
• Eine Breite, dezimal in ASCII-Zeichen formatiert.
• Leerraumzeichen.
• Eine Höhe, wieder dezimal in ASCII.
• Leerraumzeichen.
• Der maximale Grauwert (»Maxwert«), wieder dezimal in ASCII. Er muss kleiner als 65536 und größer
als Null sein.
• Ein einzelnes Leerraumzeichen (normalerweise ein Zeilenumbruch).
• Ein Raster von »Höhe« Reihen in der Reihenfolge von oben nach unten. Jede Reihe besteht aus
»Breite« Grauwerten in der Reihenfolge von links nach rechts. Jeder Grauwert ist eine Zahl von 0
bis »Maxwert«; 0 ist Schwarz, »Maxwert« ist Weiß. Jeder Grauwert wird als reine Binärzahl mit
entweder einem oder zwei Byte dargestellt. Wenn »Maxwert« kleiner als 256 ist, dann ist es ein
Byte, ansonsten sind es zwei Byte. Das höherwertige Byte ist das erste Byte.
Eine Zeile in einem Bild ist horizontal. Eine Spalte ist vertikal. Die Pixel in dem Bild sind
quadratisch und fortlaufend.
Jeder Grauwert ist eine Zahl, die proportional zur gewichteten Intensität der Pixels ist. Die
Gewichtung erfolgt mit der Gamma-Funktion gemäß BT.709. (Diese Übertragungsfunktion spezifiziert
die Zahl Gamma zu 2,2 und weist für niedrige Intensitäten einen linearen Bereich auf). Ein Wert
von Null ist damit schwarz. Ein Wert von »Maxwert« entspricht CIE-D65-weiß und ist die hellste
Farbe in dem Bild und jedem anderen Bild, mit denen dieses Bild verglichen werden könnte.
Der Wertebereich von Kanalwerten (16-240) von BT.709 ist für PGM irrelevant.
Beachten Sie, dass eine gebräuchliche Variante des PGM Formates die Grauwerte »linear« verwendet,
dass heißt wie oben beschrieben, nur ohne die Gamma-Anpassung. pnmgamma(1) akzeptiert eine solche
PGM-Variante als Eingabe und erzeugt echtes PGM als Ausgabe.
Eine weitere gebräuchliche Variante von PGM verwendet die neuere »sRGB«-Übertragungsfunktion
anstatt der Funktion gemäß BT.709. Sie können pnmgamma(1) zur Umwandlung zwischen dieser Variante
und echtem PGM verwenden.
In der Transparenz-Maske-Variante von PGM repräsentiert der Wert die Undurchsichtigkeit. Er ist
proportional zu dem Anteil von Intensität, mit der ein Pixel unterhalb des Bildes durchscheinen
würde. Was normalerweise »weiß« bedeutet, erscheint komplett undurchsichtig. Was normalerweise
»schwarz« bedeutet, erscheint voll transparent. Für die Zwischenwerte können Sie die Intensität
eines zusammengesetzten Pixels aus Vordergrund-Pixel und Hintergrund-Pixel zu Hintergrund *
(1-(Alpha/Alpha_Maxwert)) + Vordergrund * (Alpha/Alpha_Maxwert) berechnen. Beachten Sie, dass bei
Verwendung der Transparenz-Maske keine Gamma-Anpassung durchgeführt wird.
Zeichenketten, die mit einem »#« beginnen, können wie bei PBM(1) Kommentare sein.
Beachten Sie, dass Sie pamdepth(1) verwenden können, um zwischen dem Format mit einem Byte pro Grauwert
und zwei Byte pro Grauwert zu konvertieren.
Alle Zeichen, auf die sich hier bezogen wird, sind ASCII-kodiert. »newline« (zu deutsch »Zeilenumbruch«)
entspricht dem ASCII-Zeichen, das als »Line-Feed« oder »LF« bekannt ist. Ein »white space« (zu deutsch
»Leerraumzeichen«) ist »Space« (Leerzeichen), »LF« (Zeilenumbruch), »TAB« (Tabulator), »VT« (vertikaler
Tabulator) oder »FF« (Seitenvorschub) (dies dind die Zeichen, die die Funktion isspace() aus
Standard-ANSI-C als »White Space« bezeichnet).
Gewöhnliches PGM
Es gibt eine weitere Version des PGM-Formats, die ziemlich selten ist: das »plain«-PGM-Format. Das obige
Format, das im Allgemeinen als normal angesehen wird, ist als »raw«-PGM-Format (zu deutsch »roh«)
bekannt. Lesen Sie die Diskussion in pbm(1) bezüglich der Beziehung zwischen dem »plain«- und dem
»raw«-Format und ihrer Verwendung.
Die Unterschiede zu dem »plain«-Format sind folgende:
• Es gibt genau ein Bild in einer Datei.
• Die »magische Zahl« ist »P2« anstatt »P5«.
• Jeder Wert in dem Raster wird durch eine ASCII-Dezimalzahl (von beliebiger Größe) dargestellt.
• Jeder Wert in dem Raster hat sowohl vorab als auch abschließend ein Leerraumzeichen. Zwischen zwei
Werten muss mindestens ein Leerraumzeichen stehen, es gibt aber keine maximale Anzahl.
• Keine Zeile sollte länger als 70 Zeichen sein.
Hier ist ein kleines Beispielbild im »plain«-PGM-Format.
P2
# feep.pgm
24 7
15
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 3 3 3 3 0 0 7 7 7 7 0 0 11 11 11 11 0 0 15 15 15 15 0
0 3 0 0 0 0 0 7 0 0 0 0 0 11 0 0 0 0 0 15 0 0 15 0
0 3 3 3 0 0 0 7 7 7 0 0 0 11 11 11 0 0 0 15 15 15 15 0
0 3 0 0 0 0 0 7 0 0 0 0 0 11 0 0 0 0 0 15 0 0 0 0
0 3 0 0 0 0 0 7 7 7 7 0 0 11 11 11 11 0 0 15 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
Es gibt am Ende jeder dieser Zeilen ein Zeilenumbruchzeichen.
Programme, die dieses Format lesen, sollten so nachsichtig wie möglich sein und alles akzeptieren, was
entfernt nach einem PGM-Bild aussieht.
INTERNET-MEDIENTYP
Für PGM wurde kein Internet-Medientyp (auch MIME-Typ, Content-Typ) bei der IANA registriert, jedoch ist
der Wert image/x-portable-graymap gebräuchlich.
Beachten Sie, dass der PNM-Internet-Medientyp image/x-portable-anymap ebenfalls verwendet wird.
DATEINAME
Es gibt keine Anforderungen an den Namen einer PGM-Datei. Die Konvention ist aber, die Endung ».pgm« zu
verwenden. In Fällen, in denen es unbequem ist, zwischen den verschiedenen Unterformaten von PNM zu
unterscheiden, ist die Verwendung von »pnm« ebenfalls üblich.
KOMPATIBILITÄT
Vor April 2000 konnte der »Maxwert« einer PGM-Datei nicht größer als 255 sein. Es konnte deshalb nicht
mehr als ein Byte pro Wert enthalten. Alte Programme verlassen sich möglicherweise darauf.
Vor Juli 2000 konnte in einer PGM-Datei maximal ein Bild enthalten sein. Deshalb ignorieren die meisten
Werkzeuge zur Verarbeitung von PGM-Dateien sämtliche Daten nach dem ersten Bild; sie werden nicht
eingelesen.
SIEHE AUCH
pnm(1), pbm(1), ppm(1), pam(1), libnetpbm(1), Programme, die PGM verarbeiten(1)
AUTOR
Copyright © 1989, 1991 Jef Poskanzer.
URSPRUNG DES DOKUMENTS
Diese Handbuchseite wurde vom Netpbm-Werkzeug »makeman« aus der HTML-Quelle erstellt. Das Hauptdokument
befindet sich unter
http://netpbm.sourceforge.net/doc/pgm.html
ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Christoph Brinkhaus <c.brinkhaus@t-online.de>
erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer
bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die
Mailingliste der Übersetzer: debian-l10n-german@lists.debian.org.
Netpbm-Dokumentation 9. Oktober 2016 PGM-Formatspezifikation(5)