Die Aufgabe
Aufgabe 7.3
In der Datei eingabe73.txt sind die Helligkeitswerte eines 8x8-Pixelblocks gespeichert. Die Helligkeitswerte liegen im Bereich 0 (schwarz) bis 255 (weiß).
a) Schreiben Sie ein Programm A7_3a, welches das Negativ des gegebenen 8x8-Pixelblocks berechnet und in die Datei ausgabe73a.txt ausgibt. Mit Negativ ist der seitenverkehrte Pixelblock (nur rechts-links-vertauscht) mit komplementären Helligkeitswerten gemeint. Beispielsweise ist „weiß“ komplementär zu „schwarz“, d. h. aus dem Helligkeitswert 255 wird 0 und umgekehrt. Ebenso wird z. B. aus 200 der Wert 55 usw.
b) Schreiben Sie ein Programm A7_3b, welches den gegebenen 8x8-Pixelblock um 180° dreht und das Ergebnis in die Datei ausgabe73b.txt ausgibt.
c) Schreiben Sie ein Programm A7_3c, welches den gegebenen 8x8-Pixelblock im Uhrzeigersinn um 90° dreht und das Ergebnis in die Datei ausgabe73c.txt ausgibt.
Die 64 Helligkeiten stehen in der Datei eingabe73.txt, Zeile für Zeile. Jedes Programm liest sie in ein Array mit 8 Zeilen und 8 Spalten, baut daraus ein neues Bild und schreibt es in eine eigene Ausgabedatei.
- a) Negativ: links und rechts tauschen und jede Helligkeit umkehren, 200 wird 55.
- b) Das Bild auf den Kopf stellen, also um 180° drehen.
- c) Das Bild um 90° im Uhrzeigersinn drehen.
Annahme: Die Datei eingabe73.txt liegt nicht vor. Unsere eigene Datei zeigt ein schwarzes „F“ auf weißem Grund mit grauen Ecken. Ein „F“ sieht nach jedem Spiegeln und Drehen anders aus; daran erkennt man sofort, ob ein Programm richtig arbeitet.
q[i][j] fragt man: Von welchem Platz in p kommt es? Die Antwort ist eine Formel für die Indizes.- a) Die Eingabedatei festlegen und einlesen.
- a) Spiegeln: Spalte j kommt von Spalte 7 − j.
- a) Komplement: 255 minus Helligkeit.
- a) Das Ergebnis in die Datei schreiben.
- b) 180°: Zeile und Spalte spiegeln.
- c) 90°: aus einer Zeile wird eine Spalte.