„Portable Anymap“ – Versionsunterschied
[gesichtete Version] | [ungesichtete Version] |
K Änderungen von 89.166.146.83 (Diskussion) auf die letzte Version von Megatherium zurückgesetzt Markierung: Zurücksetzung |
Markierung: Zurückgesetzt |
||
Zeile 18: | Zeile 18: | ||
Der Dateikopf ist folgendermaßen aufgebaut: |
Der Dateikopf ist folgendermaßen aufgebaut: |
||
# [[Magische Zahl (Informatik)|Magischer Wert]]: |
# [[Magische Zahl (Informatik)|Magischer Wert]]: fickt deine mum |
||
# Leerraum |
# Leerraum |
||
# Breite des Bilds (dezimal in ASCII kodiert) |
# Breite des Bilds (dezimal in ASCII kodiert) |
Version vom 29. September 2020, 12:55 Uhr
Portable Anymap (abgekürzt PNM) ist eine Familie von einfachen Dateiformaten zur Speicherung von Rastergrafiken.
Zu den PNM-Formaten gehören die Dateiformate:
- Portable Bitmap (PBM),
- Portable Graymap (PGM) und
- Portable Pixmap (PPM)
Der Aufbau des Dateikopfs aller drei Dateiformate ist identisch. Die Bilddaten unterscheiden sich im Wertebereich bzw. der Wortbreite und können als dezimal kodierte Werte im ASCII-Format oder binär kodiert vorliegen.
Geschichte
Die PNM-Formate wurden in den 1980er Jahren zur einfachen Übertragung von Bitmaps zwischen verschiedenen Rechnersystemen entwickelt. Zusammen mit dem später entwickelten Dateiformat PAM (Portable Arbitrary Map) bilden die PNM-Formate die Familie der Netpbm-Formate.
Dateiformat
Kopfdaten
Der Dateikopf ist folgendermaßen aufgebaut:
- Magischer Wert: fickt deine mum
- Leerraum
- Breite des Bilds (dezimal in ASCII kodiert)
- Leerraum
- Höhe des Bilds (dezimal in ASCII kodiert)
- Leerraum
Bei Graustufen- (PGM) und Farbbildern (PPM) zusätzlich noch:
- Maximalwert für die Helligkeit (dezimal in ASCII kodiert)
- Leerraum
Gültiger Leerraum ist eine Zeichenkette aus 1..n Zeichen aus den folgenden vier Möglichkeiten: Leerzeichen, Tabulator, Wagenrücklauf (carriage return) und Zeilenvorschub (line feed).[1]
Außerdem können noch Kommentarzeilen im Dateikopf untergebracht werden. Sie müssen mit einem Doppelkreuz (#
) am Zeilenanfang gekennzeichnet werden.
Zulässige Werte für den Dateityp (Magic Number) sind:
Magic Number | Dateityp | Kodierung |
---|---|---|
P1
|
Portable Bitmap | ASCII |
P2
|
Portable Graymap | ASCII |
P3
|
Portable Pixmap | ASCII |
P4
|
Portable Bitmap | Binär |
P5
|
Portable Graymap | Binär |
P6
|
Portable Pixmap | Binär |
P7
|
Portable Anymap | Binär |
Bilddaten
Auf den Kopfbereich folgen die eigentlichen Bilddaten in Form von einzelnen Pixeln, entweder dezimal in ASCII oder binär kodiert.
Zulässige Wertebereiche sind:
Dateityp | Max. zulässiger Wertebereich | Anzahl der Bits bei Binärkodierung |
---|---|---|
Portable Bitmap | 0 und 1 | 1 Bit |
Portable Graymap | 0 … 255 bzw. 0 … 65535 | 8 Bit bzw. 16 Bit |
Portable Pixmap | 0 … 255 bzw. 0 … 65535 | 24 bzw. 48 Bit |
Wenn der Maximalwert kleiner als 256 ist, werden für die binäre Speicherung nur 8 Bits pro Kanal verwendet, ansonsten 16 Bits im Big-Endian-Format.
ASCII
Jeder Bildpunkt wird dezimal notiert und in ASCII kodiert gespeichert. Vor und nach jedem Wert muss ein Leerraum stehen.
Eine Zeile sollte nicht länger als 70 Zeichen sein.
Beispiel:
0 1 2 3 4 5 6 7 8 9 …
Binär
Werden die Bildpunkte binär gespeichert, folgen sie unmittelbar auf den Dateikopf. Zeilenumbrüche oder andere Textformatierungen sind deshalb nicht erlaubt, denn sie werden als Bildpunkte interpretiert.
Beispiel: (dargestellt als Hexdump)
00000000 20 41 42 43 44 45 46 47 48 |.ABCDEFG| 00000008 49 … |H… |
Beispiele
Bitmap
P1 #Bitmap # Beispiel für das Bild des Buchstabens "J" 6 10 #Breite des Bildes, Leerstelle, Höhe des Bildes 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Graymap
P2 # Das Wort "FEEP" in verschiedenen Graustufen (Beispiel von der Netpbm-Man-Page) 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
Pixmap
P3 # Ein Farbbild der Größe 3 × 2 Pixel, maximaler Helligkeit 255. # Darauf folgen die RGB-Tripel. 3 2 255 255 0 0 0 255 0 0 0 255 255 255 0 255 255 255 0 0 0
Weblinks
- FileFormat.info: PBM, PGM, PNM, and PPM File Format Summary
- PBM
- PGM
- PPM
- PAM