778 Part II: The Java Library
The two concrete subclasses, shown in the next section, simply implement theconvolve( )
method, usingimgpixelsfor source data andnewimgpixelsto storethe result.
import java.applet.*;
import java.awt.*;
import java.awt.image.*;
abstract class Convolver implements ImageConsumer, PlugInFilter {
int width, height;
int imgpixels[], newimgpixels[];
boolean imageReady = false;
abstract void convolve(); // filter goes here...
public Image filter(Applet a, Image in) {
in.getSource().startProduction(this);
imageReady = false;
waitForImage();
newimgpixels = new int[width*height];
try {
convolve();
} catch (Exception e) {
System.out.println("Convolver failed: " + e);
e.printStackTrace();
}
FIGURE 25-9
Using theContrast
filter with
ImageFilterDemo