PNM: Unterschied zwischen den Versionen

Aus KGS-Wiki
 
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Das '''PNM-Format''' ist ein Format zur Speicherung und Codierung von Bilddateien.
Das [[PNM|PNM-Format (Portable aNyMap)]] ist ein Format zur Speicherung und Codierung von Bilddateien. Genauer gesagt handelt es sich um ein [[Rastergrafik]]-Format, in dem die einzelnen [[Pixel]] [[Datenkompression|unkomprimiert]] gespeichert werden. Dadurch kann man aus dem Text der Bilddatei sehr gut ablesen, wie das Bild aussieht, und es entsprechend manipulieren. Ein Nachteil ist, dass PNM-Bilder sehr viel Speicherplatz benötigen.


Bisher kennen wir folgende PNM-Formate:
== Aufbau ==
{| class="wikitable"
PNM-Dateien bestehen aus zwei Teilen: einem so genannten ''Header'', der Informationen über das Bild enthält, und den eigentlichen Pixeldaten.
|+
!Format
!Magische Zahl
|-
|Schwarz-weiß
|<code>P1</code>
|-
|Graustufen
|<code>P2</code>
|-
|Farbbilder
|<code>P3</code>
|}


=== P1 – Schwarz-Weiß-Bilder ===
Der Header enthält folgende Informationen:
 
# Die [https://de.wikipedia.org/wiki/Magische_Zahl+ magische Zahl], die angibt, um welche Art von Bild es sich handelt:
## <code>P1</code> oder <code>P4</code> für Schwarz-Weiß-Bilder
## <code>P2</code> oder <code>P5</code> für Graustufenbilder
## <code>P3</code> oder <code>P6</code> für Farbbilder
# Die Breite und Höhe des Bildes, in dieser Reihenfolge – <code>16 9</code> steht für ein sechzehn Pixel breites und neun Pixel hohes Bild, <code>9 16</code> für ein neun Pixel breites und sechzehn Pixel hohes
# Den maximalen Farbwert bei Graustufen- und Farbbildern
 
Die Magische Zahl enthält neben der Farbinformation auch Informationen, in welcher Form die Pixel gespeichert werden: <code>P1</code>, <code>P2</code> und <code>P3</code> enthalten die Pixel in menschenlesbarer Form, <code>P4</code>, <code>P5</code> und <code>P6</code> in binärer Codierung. Aus Gründen der Lesbarkeit beschränkt sich dieser Artikel auf die menschenlesbaren Formate.
 
== P1 – Schwarz-Weiß-Bilder ==
Ein PNM-Schwarz-Weiß-Bild kann als Textdatei z.B. so aussehen:
Ein PNM-Schwarz-Weiß-Bild kann als Textdatei z.B. so aussehen:
P1
 
8 8
<syntaxhighlight lang="text" line="1" class="mw-collapsible">
0 0 1 1 1 1 0 0
P1
0 1 0 0 0 0 1 0
8 8
1 0 1 0 0 1 0 1
0 0 1 1 1 1 0 0
1 0 0 0 0 0 0 1
0 1 0 0 0 0 1 0
1 0 1 0 0 1 0 1
1 0 1 0 0 1 0 1
1 0 0 1 1 0 0 1
1 0 0 0 0 0 0 1
0 1 0 0 0 0 1 0
1 0 1 0 0 1 0 1
0 0 1 1 1 1 0 0
1 0 0 1 1 0 0 1
Dieses Bild sieht dann so aus: [[Datei:Smiley.png]]
0 1 0 0 0 0 1 0
0 0 1 1 1 1 0 0
</syntaxhighlight>Dieses Bild sieht dann so aus: [[Datei:Smiley.png]]


Diese Datei setzt sich aus folgenden Bestandteilen zusammen:
Diese Datei setzt sich aus folgenden Bestandteilen zusammen:
Zeile 37: Zeile 37:
# Danach folgen die einzelnen Pixel: 0 steht hier für weiß, 1 für schwarz. Um das Bild für Menschen einigermaßen lesbar zu halten, ist es empfehlenswert, jede Bildzeile in einer Textzeile zu codieren. Tatsächlich werden Leerzeichen und Zeilenumbrüche aber ignoriert. Man kann auch alle Pixel in eine Zeile oder jeden Pixel in eine separate Zeile schreiben.
# Danach folgen die einzelnen Pixel: 0 steht hier für weiß, 1 für schwarz. Um das Bild für Menschen einigermaßen lesbar zu halten, ist es empfehlenswert, jede Bildzeile in einer Textzeile zu codieren. Tatsächlich werden Leerzeichen und Zeilenumbrüche aber ignoriert. Man kann auch alle Pixel in eine Zeile oder jeden Pixel in eine separate Zeile schreiben.


=== P2 – Graustufenbilder ===
== P2 – Graustufenbilder ==
Ein PNM-Graustufenbild kann als Textdatei z.B. so aussehen:
Ein PNM-Graustufenbild kann als Textdatei z.B. so aussehen:
P2
 
17 8
<syntaxhighlight lang="text" line="1" class="mw-collapsible">
100
P2
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
17 8
10 50 10 50 10 10 10 10 10 80 10 80 10 10 10 10 10
100
10 50 10 50 10 65 65 65 10 80 10 80 10 10 10 10 10
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
10 50 50 50 10 10 10 65 10 80 10 80 10 95 95 95 10
10 50 10 50 10 10 10 10 10 80 10 80 10 10 10 10 10
10 50 10 50 10 65 65 65 10 80 10 80 10 95 10 95 10
10 50 10 50 10 65 65 65 10 80 10 80 10 10 10 10 10
10 50 10 50 10 65 10 65 10 80 10 80 10 95 10 95 10
10 50 50 50 10 10 10 65 10 80 10 80 10 95 95 95 10
10 50 10 50 10 65 65 65 10 80 10 80 10 95 95 95 10
10 50 10 50 10 65 65 65 10 80 10 80 10 95 10 95 10
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
10 50 10 50 10 65 10 65 10 80 10 80 10 95 10 95 10
10 50 10 50 10 65 65 65 10 80 10 80 10 95 95 95 10
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
</syntaxhighlight>
 
Dieses Bild sieht dann so aus: [[Datei:Hallo.png]]
Dieses Bild sieht dann so aus: [[Datei:Hallo.png]]


Diese Datei setzt sich aus folgenden Bestandteilen zusammen:
Diese Datei setzt sich aus folgenden Bestandteilen zusammen:


# Die [https://de.wikipedia.org/wiki/Magische_Zahl "magische Zahl"] <code>P2</code> in der ersten Zeile gibt an, dass es sich bei dieser Textdatei um einPNM-Bild in Graustufen handelt
# Die [https://de.wikipedia.org/wiki/Magische_Zahl "magische Zahl"] <code>P2</code> in der ersten Zeile gibt an, dass es sich bei dieser Textdatei um ein PNM-Bild in Graustufen handelt
# In der zweiten Zeile werden Breite und Höhe des Bildes angegeben, durch ein Leerzeichen getrennt.
# In der zweiten Zeile werden Breite und Höhe des Bildes angegeben, durch ein Leerzeichen getrennt.
# In der dritten Zeile steht die maximal mögliche Zahl, die die Farbe Weiß codiert, hier 255. Die kleinstmögliche Zahl, die die Farbe Schwarz codiert, ist immer 0.
# In der dritten Zeile steht die maximal mögliche Zahl, die die Farbe Weiß codiert, hier 100. Die kleinstmögliche Zahl, die die Farbe Schwarz codiert, ist immer 0.
# Danach folgen die einzelnen Pixel, angegeben als Zahl zwischen 0 und der höchsten Zahl, die in der dritten Zeile angegeben wurde. Um das Bild für Menschen einigermaßen lesbar zu halten, ist es empfehlenswert, jede Bildzeile in einer Textzeile zu codieren. Tatsächlich werden Leerzeichen und Zeilenumbrüche aber ignoriert. Man kann auch alle Pixel in eine Zeile oder jeden Pixel in eine separate Zeile schreiben.
# Danach folgen die einzelnen Pixel, angegeben als Zahl zwischen 0 und der höchsten Zahl, die in der dritten Zeile angegeben wurde. Um das Bild für Menschen einigermaßen lesbar zu halten, ist es empfehlenswert, jede Bildzeile in einer Textzeile zu codieren. Tatsächlich werden Leerzeichen und Zeilenumbrüche aber ignoriert. Man kann auch alle Pixel in eine Zeile oder jeden Pixel in eine separate Zeile schreiben.


=== P3 – Farbbilder ===
== P3 – Farbbilder ==
Ein PNM-Farbbild kann als Textdatei z.B. so aussehen:
Ein PNM-Farbbild kann als Textdatei z.B. so aussehen:
P3
 
# Created by GIMP version 2.10.32 PNM plug-in
<syntaxhighlight lang="text" line="1" class="mw-collapsible">
16 16
P3
255
16 16
# Erste Zeile
255
0 0 0
# Erste Zeile
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
255 61 0
0 0 0
255 61 0
255 61 0
255 61 0
255 61 0
255 61 0
255 61 0
255 61 0
255 61 0
255 61 0
255 61 0
0 0 0
255 61 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
# Zweite Zeile
0 0 0
0 0 0
# Zweite Zeile
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
255 61 0
0 0 0
255 61 0
255 61 0
255 61 0
255 61 0
255 61 0
255 61 0
255 61 0
255 61 0
255 61 0
255 61 0
255 61 0
255 61 0
255 61 0
255 61 0
255 61 0
255 61 0
255 61 0
255 61 0
0 0 0
255 61 0
0 0 0
0 0 0
# Dritte Zeile
0 0 0
0 0 0
# Dritte Zeile
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
93 64 55
0 0 0
93 64 55
93 64 55
93 64 55
93 64 55
255 209 128
93 64 55
255 209 128
255 209 128
255 209 128
255 209 128
38 50 56
255 209 128
255 209 128
38 50 56
0 0 0
255 209 128
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
# Vierte Zeile
0 0 0
0 0 0
# Vierte Zeile
0 0 0
0 0 0
0 0 0
0 0 0
93 64 55
0 0 0
255 209 128
93 64 55
93 64 55
255 209 128
255 209 128
93 64 55
255 209 128
255 209 128
255 209 128
255 209 128
255 209 128
255 209 128
38 50 56
255 209 128
255 209 128
38 50 56
255 209 128
255 209 128
255 209 128
255 209 128
0 0 0
255 209 128
0 0 0
0 0 0
# Fuenfte Zeile
0 0 0
0 0 0
# Fuenfte Zeile
0 0 0
0 0 0
0 0 0
0 0 0
93 64 55
0 0 0
255 209 128
93 64 55
93 64 55
255 209 128
93 64 55
93 64 55
255 209 128
93 64 55
255 209 128
255 209 128
255 209 128
255 209 128
255 209 128
255 209 128
38 50 56
255 209 128
255 209 128
38 50 56
255 209 128
255 209 128
255 209 128
255 209 128
0 0 0
255 209 128
# Sechste Zeile
0 0 0
0 0 0
# Sechste Zeile
0 0 0
0 0 0
0 0 0
0 0 0
93 64 55
0 0 0
93 64 55
93 64 55
255 209 128
93 64 55
255 209 128
255 209 128
255 209 128
255 209 128
255 209 128
255 209 128
255 209 128
255 209 128
38 50 56
255 209 128
38 50 56
38 50 56
38 50 56
38 50 56
38 50 56
38 50 56
0 0 0
38 50 56
0 0 0
0 0 0
# Siebte Zeile
0 0 0
0 0 0
# Siebte Zeile
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
255 209 128
0 0 0
255 209 128
255 209 128
255 209 128
255 209 128
255 209 128
255 209 128
255 209 128
255 209 128
255 209 128
255 209 128
255 209 128
255 209 128
255 209 128
255 209 128
0 0 0
255 209 128
0 0 0
0 0 0
0 0 0
0 0 0
# Achte Zeile
0 0 0
0 0 0
# Achte Zeile
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
255 61 0
0 0 0
255 61 0
255 61 0
2 119 189
255 61 0
255 61 0
2 119 189
255 61 0
255 61 0
255 61 0
255 61 0
255 61 0
255 61 0
0 0 0
255 61 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
# Neunte Zeile
0 0 0
0 0 0
# Neunte Zeile
0 0 0
0 0 0
0 0 0
0 0 0
255 61 0
0 0 0
255 61 0
255 61 0
255 61 0
255 61 0
2 119 189
255 61 0
255 61 0
2 119 189
255 61 0
255 61 0
2 119 189
255 61 0
255 61 0
2 119 189
255 61 0
255 61 0
255 61 0
255 61 0
0 0 0
255 61 0
0 0 0
0 0 0
0 0 0
0 0 0
# Zehnte Zeile
0 0 0
0 0 0
# Zehnte Zeile
0 0 0
0 0 0
255 61 0
0 0 0
255 61 0
255 61 0
255 61 0
255 61 0
255 61 0
255 61 0
2 119 189
255 61 0
2 119 189
2 119 189
2 119 189
2 119 189
2 119 189
2 119 189
255 61 0
2 119 189
255 61 0
255 61 0
255 61 0
255 61 0
255 61 0
255 61 0
0 0 0
255 61 0
0 0 0
0 0 0
# Elfte Zeile
0 0 0
0 0 0
# Elfte Zeile
0 0 0
0 0 0
255 209 128
0 0 0
255 209 128
255 209 128
255 61 0
255 209 128
2 119 189
255 61 0
255 234 0
2 119 189
2 119 189
255 234 0
2 119 189
2 119 189
255 234 0
2 119 189
2 119 189
255 234 0
255 61 0
2 119 189
255 209 128
255 61 0
255 209 128
255 209 128
0 0 0
255 209 128
0 0 0
0 0 0
# Zwoelfte Zeile
0 0 0
0 0 0
# Zwoelfte Zeile
0 0 0
0 0 0
255 209 128
0 0 0
255 209 128
255 209 128
255 209 128
255 209 128
2 119 189
255 209 128
2 119 189
2 119 189
2 119 189
2 119 189
2 119 189
2 119 189
2 119 189
2 119 189
2 119 189
2 119 189
255 209 128
2 119 189
255 209 128
255 209 128
255 204 128
255 209 128
0 0 0
255 204 128
0 0 0
0 0 0
# Dreizehnte Zeile
0 0 0
0 0 0
# Dreizehnte Zeile
0 0 0
0 0 0
255 209 128
0 0 0
255 209 128
255 209 128
2 119 189
255 209 128
2 119 189
2 119 189
2 119 189
2 119 189
2 119 189
2 119 189
2 119 189
2 119 189
2 119 189
2 119 189
2 119 189
2 119 189
2 119 189
2 119 189
255 209 128
2 119 189
255 209 128
255 209 128
0 0 0
255 209 128
0 0 0
0 0 0
# Vierzehnte Zeile
0 0 0
0 0 0
# Vierzehnte Zeile
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
2 119 189
0 0 0
2 119 189
2 119 189
2 119 189
2 119 189
0 0 0
2 119 189
0 0 0
0 0 0
2 119 189
0 0 0
2 119 189
2 119 189
2 119 189
2 119 189
0 0 0
2 119 189
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
# Fuenfzehnte Zeile
0 0 0
0 0 0
# Fuenfzehnte Zeile
0 0 0
0 0 0
0 0 0
0 0 0
109 76 65
0 0 0
109 76 65
109 76 65
109 76 65
109 76 65
0 0 0
109 76 65
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
109 76 65
0 0 0
109 76 65
109 76 65
109 76 65
109 76 65
0 0 0
109 76 65
0 0 0
0 0 0
0 0 0
0 0 0
# Sechzehnte Zeile
0 0 0
0 0 0
# Sechzehnte Zeile
0 0 0
0 0 0
109 76 65
0 0 0
109 76 65
109 76 65
109 76 65
109 76 65
109 76 65
109 76 65
0 0 0
109 76 65
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
109 76 65
0 0 0
109 76 65
109 76 65
109 76 65
109 76 65
109 76 65
109 76 65
0 0 0
109 76 65
0 0 0
0 0 0
0 0 0
</syntaxhighlight>
 
Dieses Bild sieht dann so aus: [[Datei:Mario2.png]]
 
Diese Datei setzt sich aus folgenden Bestandteilen zusammen:
 
# Die [https://de.wikipedia.org/wiki/Magische_Zahl "magische Zahl"] <code>P3</code> in der ersten Zeile gibt an, dass es sich bei dieser Textdatei um ein PNM-Bild in Farben handelt
# In der zweiten Zeile werden Breite und Höhe des Bildes angegeben, durch ein Leerzeichen getrennt.
# In der dritten Zeile steht die maximal mögliche Zahl, die Farbwerte annehmen können, hier 255. Die kleinstmögliche Zahl ist immer 0.
Danach folgen die einzelnen Pixel, angegeben in drei Zahlen zwischen 0 und dem angegebenen Höchstwert.
 
Die erste Zahl steht für den Rot-Anteil (0 = gar kein Rot in der Farbe, 255 = volle Pulle Rot), die zweite für grün, die dritte für blau. <code>255 0 0</code> steht für ein kräftiges Rot, <code>23 42 69</code> für ein dunkles Blau. Siehe auch [[RGB-Farbmodell]]
[[Category:Bildcodierung]]
[[Category:Bildcodierung]]

Aktuelle Version vom 9. Februar 2024, 12:14 Uhr

Das PNM-Format (Portable aNyMap) ist ein Format zur Speicherung und Codierung von Bilddateien. Genauer gesagt handelt es sich um ein Rastergrafik-Format, in dem die einzelnen Pixel unkomprimiert gespeichert werden. Dadurch kann man aus dem Text der Bilddatei sehr gut ablesen, wie das Bild aussieht, und es entsprechend manipulieren. Ein Nachteil ist, dass PNM-Bilder sehr viel Speicherplatz benötigen.

Aufbau

PNM-Dateien bestehen aus zwei Teilen: einem so genannten Header, der Informationen über das Bild enthält, und den eigentlichen Pixeldaten.

Der Header enthält folgende Informationen:

  1. Die magische Zahl, die angibt, um welche Art von Bild es sich handelt:
    1. P1 oder P4 für Schwarz-Weiß-Bilder
    2. P2 oder P5 für Graustufenbilder
    3. P3 oder P6 für Farbbilder
  2. Die Breite und Höhe des Bildes, in dieser Reihenfolge – 16 9 steht für ein sechzehn Pixel breites und neun Pixel hohes Bild, 9 16 für ein neun Pixel breites und sechzehn Pixel hohes
  3. Den maximalen Farbwert bei Graustufen- und Farbbildern

Die Magische Zahl enthält neben der Farbinformation auch Informationen, in welcher Form die Pixel gespeichert werden: P1, P2 und P3 enthalten die Pixel in menschenlesbarer Form, P4, P5 und P6 in binärer Codierung. Aus Gründen der Lesbarkeit beschränkt sich dieser Artikel auf die menschenlesbaren Formate.

P1 – Schwarz-Weiß-Bilder

Ein PNM-Schwarz-Weiß-Bild kann als Textdatei z.B. so aussehen:

P1
8 8
0 0 1 1 1 1 0 0
0 1 0 0 0 0 1 0
1 0 1 0 0 1 0 1
1 0 0 0 0 0 0 1
1 0 1 0 0 1 0 1
1 0 0 1 1 0 0 1
0 1 0 0 0 0 1 0
0 0 1 1 1 1 0 0

Dieses Bild sieht dann so aus: Smiley.png

Diese Datei setzt sich aus folgenden Bestandteilen zusammen:

  1. Die "magische Zahl" P1 in der ersten Zeile gibt an, dass es sich bei dieser Textdatei um ein schwarz-weißes PNM-Bild handelt
  2. In der zweiten Zeile werden Breite und Höhe des Bildes angegeben, durch ein Leerzeichen getrennt.
  3. Danach folgen die einzelnen Pixel: 0 steht hier für weiß, 1 für schwarz. Um das Bild für Menschen einigermaßen lesbar zu halten, ist es empfehlenswert, jede Bildzeile in einer Textzeile zu codieren. Tatsächlich werden Leerzeichen und Zeilenumbrüche aber ignoriert. Man kann auch alle Pixel in eine Zeile oder jeden Pixel in eine separate Zeile schreiben.

P2 – Graustufenbilder

Ein PNM-Graustufenbild kann als Textdatei z.B. so aussehen:

P2
17 8
100
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
10 50 10 50 10 10 10 10 10 80 10 80 10 10 10 10 10
10 50 10 50 10 65 65 65 10 80 10 80 10 10 10 10 10
10 50 50 50 10 10 10 65 10 80 10 80 10 95 95 95 10
10 50 10 50 10 65 65 65 10 80 10 80 10 95 10 95 10
10 50 10 50 10 65 10 65 10 80 10 80 10 95 10 95 10
10 50 10 50 10 65 65 65 10 80 10 80 10 95 95 95 10
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10

Dieses Bild sieht dann so aus: Hallo.png

Diese Datei setzt sich aus folgenden Bestandteilen zusammen:

  1. Die "magische Zahl" P2 in der ersten Zeile gibt an, dass es sich bei dieser Textdatei um ein PNM-Bild in Graustufen handelt
  2. In der zweiten Zeile werden Breite und Höhe des Bildes angegeben, durch ein Leerzeichen getrennt.
  3. In der dritten Zeile steht die maximal mögliche Zahl, die die Farbe Weiß codiert, hier 100. Die kleinstmögliche Zahl, die die Farbe Schwarz codiert, ist immer 0.
  4. Danach folgen die einzelnen Pixel, angegeben als Zahl zwischen 0 und der höchsten Zahl, die in der dritten Zeile angegeben wurde. Um das Bild für Menschen einigermaßen lesbar zu halten, ist es empfehlenswert, jede Bildzeile in einer Textzeile zu codieren. Tatsächlich werden Leerzeichen und Zeilenumbrüche aber ignoriert. Man kann auch alle Pixel in eine Zeile oder jeden Pixel in eine separate Zeile schreiben.

P3 – Farbbilder

Ein PNM-Farbbild kann als Textdatei z.B. so aussehen:

P3
16 16
255
# Erste Zeile
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
255	61	0
255	61	0
255	61	0
255	61	0
255	61	0
255	61	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
# Zweite Zeile
0	0	0
0	0	0
0	0	0
0	0	0
255	61	0
255	61	0
255	61	0
255	61	0
255	61	0
255	61	0
255	61	0
255	61	0
255	61	0
255	61	0
0	0	0
0	0	0
# Dritte Zeile
0	0	0
0	0	0
0	0	0
0	0	0
93	64	55
93	64	55
93	64	55
255	209	128
255	209	128
255	209	128
38	50	56
255	209	128
0	0	0
0	0	0
0	0	0
0	0	0
# Vierte Zeile
0	0	0
0	0	0
0	0	0
93	64	55
255	209	128
93	64	55
255	209	128
255	209	128
255	209	128
255	209	128
38	50	56
255	209	128
255	209	128
255	209	128
0	0	0
0	0	0
# Fuenfte Zeile
0	0	0
0	0	0
0	0	0
93	64	55
255	209	128
93	64	55
93	64	55
255	209	128
255	209	128
255	209	128
255	209	128
38	50	56
255	209	128
255	209	128
255	209	128
0	0	0
# Sechste Zeile
0	0	0
0	0	0
0	0	0
93	64	55
93	64	55
255	209	128
255	209	128
255	209	128
255	209	128
255	209	128
38	50	56
38	50	56
38	50	56
38	50	56
0	0	0
0	0	0
# Siebte Zeile
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
255	209	128
255	209	128
255	209	128
255	209	128
255	209	128
255	209	128
255	209	128
255	209	128
0	0	0
0	0	0
0	0	0
# Achte Zeile
0	0	0
0	0	0
0	0	0
0	0	0
255	61	0
255	61	0
2	119	189
255	61	0
255	61	0
255	61	0
255	61	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
# Neunte Zeile
0	0	0
0	0	0
0	0	0
255	61	0
255	61	0
255	61	0
2	119	189
255	61	0
255	61	0
2	119	189
255	61	0
255	61	0
255	61	0
0	0	0
0	0	0
0	0	0
# Zehnte Zeile
0	0	0
0	0	0
255	61	0
255	61	0
255	61	0
255	61	0
2	119	189
2	119	189
2	119	189
2	119	189
255	61	0
255	61	0
255	61	0
255	61	0
0	0	0
0	0	0
# Elfte Zeile
0	0	0
0	0	0
255	209	128
255	209	128
255	61	0
2	119	189
255	234	0
2	119	189
2	119	189
255	234	0
2	119	189
255	61	0
255	209	128
255	209	128
0	0	0
0	0	0
# Zwoelfte Zeile
0	0	0
0	0	0
255	209	128
255	209	128
255	209	128
2	119	189
2	119	189
2	119	189
2	119	189
2	119	189
2	119	189
255	209	128
255	209	128
255	204	128
0	0	0
0	0	0
# Dreizehnte Zeile
0	0	0
0	0	0
255	209	128
255	209	128
2	119	189
2	119	189
2	119	189
2	119	189
2	119	189
2	119	189
2	119	189
2	119	189
255	209	128
255	209	128
0	0	0
0	0	0
# Vierzehnte Zeile
0	0	0
0	0	0
0	0	0
0	0	0
2	119	189
2	119	189
2	119	189
0	0	0
0	0	0
2	119	189
2	119	189
2	119	189
0	0	0
0	0	0
0	0	0
0	0	0
# Fuenfzehnte Zeile
0	0	0
0	0	0
0	0	0
109	76	65
109	76	65
109	76	65
0	0	0
0	0	0
0	0	0
0	0	0
109	76	65
109	76	65
109	76	65
0	0	0
0	0	0
0	0	0
# Sechzehnte Zeile
0	0	0
0	0	0
109	76	65
109	76	65
109	76	65
109	76	65
0	0	0
0	0	0
0	0	0
0	0	0
109	76	65
109	76	65
109	76	65
109	76	65
0	0	0
0	0	0

Dieses Bild sieht dann so aus: Mario2.png

Diese Datei setzt sich aus folgenden Bestandteilen zusammen:

  1. Die "magische Zahl" P3 in der ersten Zeile gibt an, dass es sich bei dieser Textdatei um ein PNM-Bild in Farben handelt
  2. In der zweiten Zeile werden Breite und Höhe des Bildes angegeben, durch ein Leerzeichen getrennt.
  3. In der dritten Zeile steht die maximal mögliche Zahl, die Farbwerte annehmen können, hier 255. Die kleinstmögliche Zahl ist immer 0.

Danach folgen die einzelnen Pixel, angegeben in drei Zahlen zwischen 0 und dem angegebenen Höchstwert.

Die erste Zahl steht für den Rot-Anteil (0 = gar kein Rot in der Farbe, 255 = volle Pulle Rot), die zweite für grün, die dritte für blau. 255 0 0 steht für ein kräftiges Rot, 23 42 69 für ein dunkles Blau. Siehe auch RGB-Farbmodell