„Portable Anymap“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
[gesichtete Version][ungesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
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]]: Kennzeichnet das Format der Bilddaten
# [[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:

  1. Magischer Wert: fickt deine mum
  2. Leerraum
  3. Breite des Bilds (dezimal in ASCII kodiert)
  4. Leerraum
  5. Höhe des Bilds (dezimal in ASCII kodiert)
  6. Leerraum

Bei Graustufen- (PGM) und Farbbildern (PPM) zusätzlich noch:

  1. Maximalwert für die Helligkeit (dezimal in ASCII kodiert)
  2. 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

Dekodiertes Bild:

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

Dekodiertes Bild:

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

Dekodiertes Bild:

Einzelnachweise

  1. sourceforge.net Fileformate netpbm