Informatik

Fotofilter

Ziel

Jede Kamera-App kann es: ein Bild heller machen, es in Schwarzweiß verwandeln, es weichzeichnen, die Umrisse hervorheben. In diesem Projekt baust du diese Filter selbst – und dabei lernst du die Datenstruktur kennen, ohne die Bildverarbeitung nicht funktioniert: das zweidimensionale Feld. Du brauchst es noch nicht zu kennen. Es reicht, wenn du mit eindimensionalen Feldern umgehen kannst.

Ein Foto ist nämlich nichts anderes als eine Tabelle aus Zahlen. 96 Spalten, 72 Zeilen, in jeder Zelle eine Helligkeit. Ein Filter ist eine Vorschrift, die aus dieser Tabelle eine neue macht. Mehr steckt nicht dahinter.

Am Ende hast du ein gutes Dutzend Filter geschrieben, sie zu einer Kette zusammengesteckt und dabei gesehen, warum man dafür Klassen und Vererbung gebrauchen kann.

Das Foto, mit dem du arbeitest

Vorwissen

Du solltest programmieren können, was im Lernpfad Grundlagen der Programmierung mit Java steht:

  • Variablen und Datentypen
  • Kontrollstrukturen, vor allem geschachtelte Schleifen
  • Methoden
  • Eindimensionale Felder – anlegen, durchlaufen, length
  • Objektorientierung – Klassen, Objekte, Attribute

Zweidimensionale Felder musst du nicht kennen. Du lernst sie in diesem Projekt kennen, und zwar Schritt für Schritt am Foto. Jede Seite bringt einen Baustein dazu:

Seite Das lernst du über zweidimensionale Felder
Das Bild als Gitter ein Feld von Feldern, bild[zeile][spalte], length, Zeilen durchlaufen mit geschachtelten Schleifen
Punktfilter ein neues Gitter mit new int[zeilen][spalten] anlegen und hineinschreiben
Farbe und Kanäle mehrere gleich große Gitter mit denselben Indizes gemeinsam durchlaufen
Spiegeln und Drehen mit Indizes rechnen, Gitter mit anderer Form anlegen
Weichzeichnen Nachbarn ansprechen, Ränder behandeln, Original und Kopie trennen
Kanten finden Unterschiede zwischen Nachbarn, Gitter miteinander verrechnen

Für die letzten beiden Seiten hilft es, wenn du Vererbung und abstrakte Klassen schon kennst. Nötig ist es nicht – die Seiten führen das ein, was sie brauchen.

So arbeitest du damit

  • Alle Programmierbereiche laufen im Browser. Du musst nichts installieren.
  • Jeder Bereich enthält das vollständige Programm. Du kannst darin herumändern, ohne etwas kaputtzumachen – ein Neuladen der Seite stellt den Ursprung wieder her.
  • Gestartet wird mit dem kleinen Pfeil neben Main.java in der Dateiliste links.
  • Tipps sind gestuft: Der erste gibt einen Denkanstoß, der letzte ein Gerüst.
  • Die Lösungen sind mit einem Passwort geschützt. Frag deine Lehrkraft oder sieh auf der Seite Lösungspasswörter nach.

Die Seiten

Seite Darum geht es
Das Bild als Gitter Vom eindimensionalen Feld zum Gitter – und das Foto zum ersten Mal auf dem Schirm
Punktfilter Ein Gitter anlegen, dann heller, dunkler, invertiert, schwarzweiß: jeder Bildpunkt für sich
Farbe und Kanäle Drei Gitter statt einem – Sepia, Farbstiche, Kanaltausch
Spiegeln und Drehen Nicht die Werte ändern sich, sondern die Indizes
Weichzeichnen Der Nachbarschaftsfilter – und warum er eine Kopie braucht
Kanten finden Wo sich die Helligkeit schnell ändert, ist ein Umriss
Filter als Klassen Aus acht Methoden wird eine Filterkette
Dein eigener Filter Freies Arbeiten, ohne Musterlösung

Woher kommt das Foto? Die Online-IDE legt die Bilddatei als fotofilter.png im Programm ab. Die Klasse Foto lädt sie in ein Bitmap und liest daraus die Farbwerte der 96 × 72 Bildpunkte. Du findest die Klasse in jedem Programmierbereich – du musst sie nie anfassen, nur benutzen.

Fotofilter

Teilbare URL erstellen

Abschnitte auswählen