Bei einer Freundin habe ich abstrahierte Bilder auf Basis von 1er-Legosteinen gesehen, die sie über einen Online-Shop bestellt hat und Familienmitglieder darstellt. Das hat mich gleich zu folgender Aufgabe angeregt:
Aufgabe
Schreibe ein Programm, das ein Foto in eine Rastergrafik mit 5 Graustufen umrechnet und die Anzahl der Farben wie ausgibt:
Pro Reihe = 64.0
Black = 349.0
Dark Grey = 387.0
Middle Grey = 738.0
Bright Grey = 1361.0
White = 1261.0
Gesamt = 4096.0
Bilder zum Rastern kann man sich über this-person-does-not-exist.com holen. Im Internet gibt es auch Shops in denen man nachgemachte 1er-Steine kaufen kann. Wer nicht Lego oder ähnliches nutzen möchte, kann natürlich auch gerne das händisch Bild malen.
Als kleine Zusatzaufgabe kann man noch eine zur gif-Kodierung ähnliche, verlustfreie Kompression umsetzen, wobei die folgenden Abkürzungen genutzt werden können: Black – B, Dark Grey – D, Middle Grey – M, Bright Grey – G, White – W.
Aufgabe
Programmiere eine Kompression des Bildes nach folgendem Schema:
64×64
8W3G1M4D…
9W1G1M5D2B…
…
Zunächst wird das Bildformat angegeben, dann kommen so viele Zeilen, wie das Bild hat. Pro Zeile werden die gleichfarbige, aufeinanderfolgenden Blöcke in der Kurzform “Anzahl Farbe” angegeben. “8W” bedeutet also 8 weiße Steine.
Weitere Aufgaben
Und wer dann noch Lust hat, kann ja mal die Kompressionsrate im Vergleich zur Angabe “WWWWWWWWGGGMDDDD…” etc. ausrechnen, wenn jeder Stein bzw. Farbe einzeln angegeben wird.
Und wer dann noch Lust hat, kann das Einlesen von so einem Kompressionstext in ein Bild umsetzen.