Universität Ulm - Abteilung Angewandte Informationsverarbeitung

 


3. Übungsblatt zur Vorlesung Allgemeine Informatik III


Abgabetermin: Dienstag, 11.11.2003


Spiegelbilder...    (10 Punkte)


Für das Speichern von monochromen Bildern eignet sich das PBM-Format. Ein PBM-Bild besteht aus einem Header und den Bildaten, die im ASCII-Format oder in binärer Form abgelegt werden können. Ein PBM-Header enthält zunächst den Bildtyp (P1 für ASCII-, P4 für binäre Bildinformation), sowie die Breite und die Höhe des Bildes in Pixeln.


Beispiel eines PBM-Bildes mit den Bilddaten im ASCII-Format:

P1
24 5
0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0
0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0
0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Deutlich kleinere Dateien, die schneller gelesen und geschrieben werden können, werden mit Hilfe der binären Bilddarstellung erreicht. Nach dem Header ist nur noch ein einziger White Space (typischerweise Newline) erlaubt. Innerhalb der binären Bilddaten sind keine White Spaces erlaubt.


Je 8 Pixel werden dabei zu einem Byte zusammengefaßt. Im Beispiel oben sind die Pixel 0 1 1 1 1 0 0 1 im ersten Byte (y) zusammengefaßt, die Pixel 1 1 1 0 0 1 1 1 im zweiten Byte (ç) usw.


Das Zeichen y entsteht, indem die Binärfolge 0 1 1 1 1 0 0 1 zunächst in eine Dezimalzahl umgerechnet wird: 0*128 + 1*64 + 1*32 + 1*16 + 1*8 + 0*4 + 0*2 + 1*1 = 121. Die Zahl 121 entspricht dann in der ASCII-Tabelle dem Zeichen y, welches anschließend im PBM-Bild als erstes Zeichen abgespeichert wird:

P4
24 5
yç^ADRqÇ^ADP@@@


Ein vertikales Spielgelbild kann erzeugt werden, indem die Pixelreihenfolge jeder Zeile umgekehrt wird. Ihre Aufgabe besteht nun darin, ein PBM-Bild vom Typ P4 (binäre Bilddaten) einzulesen, vertikal zu spiegeln und in binärer Form wieder auszugeben. Im obigen Beispiel entsprechen 3 Bytes genau einer Zeile...


Sie können davon ausgehen, daß eine Bildzeile jeweils eine durch 8 teilbare Anzahl von Pixeln enthält. Einige PBM-Beispielbilder, die mit dem Programm xv oder gimp betrachtet werden können, sind auf der Homepage im Verzeichnis Beispiele abgelegt.



Viel Erfolg!



Hans Braxmeier