Weitere aktuelle Java-Titel finden Sie bei dpunkt.
 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index


12.9

Verwendung von Filtern



Durch die Verwendung von Filtern kann man in Java komplexe Bildbearbeitung betreiben. Ein Filter schaltet sich zwischen ImageProducer und ImageConsumer. Er empfängt die Bilddaten, die der ImageProducer liefert, verändert sie nach bestimmten Regeln und gibt sie anschließend an den ImageConsumer weiter.

Abbildung 12.8: Die Arbeitsweise eines Image-Filters
Abbildung 12.8

Die Klasse ImageFilter ist abstrakt, d. h., man kann nicht direkt ein Exemplar erzeugen, sondern man muss zuerst eine eigene Klasse ableiten. Durch die Implementierung der Methoden werden einem ImageFilter bestimmte Eigenschaften zugeordnet.

Im Paket java.awt.image sind bereits drei ImageFilter definiert, die direkt vom Programmierer verwendet werden können: Die Benutzung eines ImageFilters erfordert eine bestimmte Art von ImageProducer namens FilteredImageSource. FilteredImageSource ist nach MemoryImageSource der zweite ImageProducer, von dem Exemplare erzeugt werden können.

Dem Konstruktor von FilteredImageSource müssen zwei Parameter übergeben werden: Das endgültige Bild wird wie bei MemoryImageSource mit createImage() erzeugt, wobei das Exemplar von FilteredImageSource als Parameter übergeben wird.

In folgendem Code-Auszug wird die Filterung eines Bildes mit dem AreaAveragingScaleFilter vorgenommen:
Image img = getImage(getCodeBase(), "bild.gif");
Image scaledImg = 
  new FilteredImageSource(img.getSource(), 
                       new AreaAveragingFilter(100,100));
Über die Methode getSource() der Klasse Image wird der ImageProducer des zu filternden Bildes abgefragt. Der AreaAveragingFilter filtert das ursprüngliche Bild auf Breite und Höhe 100.


 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index

Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.