13.07.2015 Aufrufe

Arbeitsblatt 2 – EAD II Bildbearbeitung

Arbeitsblatt 2 – EAD II Bildbearbeitung

Arbeitsblatt 2 – EAD II Bildbearbeitung

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Arbeitsblatt</strong> 2 <strong>–</strong> <strong>EAD</strong> <strong>II</strong> <strong>Bildbearbeitung</strong>Wir verwenden wieder einige der Klassen, die wir mit den bookClasses in BlueJ eingebundenhaben. Die Dokumentation für alle diese Klassen finden Sie hier:http://www.cs.duke.edu/courses/fall06/cps001/doc/mediaClasses/Aufgabe 1: Klasse Bild erstellen und testenErstellen Sie eine neue Klasse zur Bearbeitung von Bildernpublic class Bildmit einer Instanzvariable bild vom Typ Picture, in die vom Konstruktor eine Bilddateieingelesen wird.private Picture bild1;Der Konstruktor ruft einen Dialog auf, über den der Nutzer eine Datei auswählen kann, diedann angezeigt wird.public Bild(){String dateiname = FileChooser.pickAFile();bild1 = new Picture(dateiname);bild1.show();}Testen Sie Ihr Programm mit passenden Bildern (z.B. Blume1 oder Blume2 in denMaterialien der eduComponents).Aufgabe 2: vorhandene Methoden testenErstellen Sie eine eigene Methode getInfo() in der Klasse Bild, in der Sie folgendenMethoden der Klasse Picture ausprobieren. Lassen Sie die Rückgabewerte jeweils auf derKonsole ausgeben. Was bedeuten die Ausgaben?Picture.getWidth() -- gibt die Breite des Bildes in Pixel zurück, intPicture.getHeight() -- gibt die Höhe des Bildes in Pixel zurück, intPicture.getPixel(int i, int j) -- gibt das PixelObjekt an der Stelle i, j im Bildzurück, PixelUnter der o.a. URL können Sie weitere Methoden sehen, die Sie auf das Bild anwendenkönnen. Beachten Sie, dass es unter der Klasse Picture eine Liste vieler Methoden gibt, dievon SimplePicture geerbt wurden. Schauen Sie also unter SimplePicture fürweitere Erläuterungen nach!


Aufgabe 3: Klasse Pixel, einzelne Farbkanäle entfernenIn den folgenden Aufgaben wollen wir einzelne Pixel in unserem Bild manipulieren. EinenZugriff darauf erhalten wir über Methoden der Klasse Pixel. Einige sind hier aufgeführt, diekomplette Liste finden Sie wieder auf der angegebenen Webseite.Zuerst verwenden wir die Methode getPixels() aus der Klasse Picture, um uns eineindimensionales Feld (Array) mit allen Pixeln des Bildes zu erzeugen. Um unserOriginalbild nicht zu verändern, erzeugen wir uns eine Kopie und verändern diese.Picture testbild = new Picture(bild1);Pixel[] pixelFeld = testbild.getPixels();Dann erzeugen wir eine Variable bildpunkt, der wir nacheinander die Pixel zuweisen, um siezu bearbeiten.Pixel bildpunkt = null;In einer Schleife können wir nun das Feld durchlaufen, um die einzelnen Pixel zu bearbeiten.for (int i = 0; i < pixelFeld.length; i++)Wir weisen das aktuelle Pixel im Feld nun an unsere Variable bildpunkt zu und könnennun die Methoden der Klasse Pixel für die Variable aufrufen.bildpunkt=pixelFeld[i];bildpunkt.setRed(0);Weitere Methoden der Klasse Pixel:Pixel.getRed() -- liefert den aktuellen Wert(0-255) für die Rot-Komponente desPixelobjektes (getGreen(), getBlue() gibt es ebenfalls)Pixel.setRed(int wert); -- setzt einen neuen Wert wert (0-255) für die Rot-Komponente des Pixelobjektes (setGreen(), setBlue() gibt es ebenfalls)Picture.repaint(); --zeichnet das Bild neuSchreiben Sie je eine Methode, die für das Bild den Rot-Wert, den Blau-Wert und den Grün-Wert auf 0 setzt und das Bild dann zeichnet.public void entferneRot()public void entferneGruen()public void entferneBlau()


Aufgabe 4: Bild in Grauwerte umrechnenSchreiben Sie eine Methode zeichneGrau(), die die Farbwerte des Bildes in Grauwerteumrechnet und dann das Bild ausgibt.Man erhält einen Grauwert, indem man dem Rot-, Grün- und Blauanteil eines Pixels dengleichen Wert zuweist. Wir können also in RGB mit Werten von 0 bis 255 insgesamt 256verschiedene Grautöne darstellen. Die verschiedenen Farben unterscheiden sich als Grautönein ihrer Intensität. Den entsprechenden Grauwert einer Farbe kann man berechnen, indemman den Mittelwert der RGB-Anteile eines Pixels bildet und diesen dann allen Farbanteilenzuweist.Aufgabe 5: Negativ eines Bildes berechnenDas Negativ eines Bildes wird berechnet, indem man statt der originalen Farbwerte jeweilsden gegenteiligen Wert zuweist. Das bedeutet, wenn der Wert 0 ist, ist das Gegenteil 255 undumgedreht. Für alle Werte dazwischen wird der gegenteilige Wert immer als die Differenzzwischen 255 und dem aktuellen Wert berechnet, also255 <strong>–</strong> aktueller Wert = gegenteiliger WertEs müssen also für jedes Pixel die aktuellen Farbwerte für RGB bestimmt werden, dienegativen Werte berechnet und diese dann dem Pixel zugewiesen werden

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!