Programmieraufgabe 116: Lego-Grafik

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.

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Durch die weitere Nutzung der Seite (Scrollen, Navigieren) stimmen Sie der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen