Il seguente codice mostra come si fa in Java a costruire un filtro
per immagini:
import java.applet.Applet;
import java.awt.image.*;
import java.awt.*;
public class Color2GrayFilterApplet extends Applet
{
Image image;
Image gray;
Color2GrayFilter filter;
public void init() {
image = getImage (getCodeBase (), "images/keyb.jpg");
System.out.println (getCodeBase ());
filter = new Color2GrayFilter ();
gray = createImage (new FilteredImageSource (image.getSource(), filter)); }
public void paint (Graphics g) {
g.drawImage (image, 0, 0, this);
g.drawImage (gray, 310, 0, this); }
}
class Color2GrayFilter extends RGBImageFilter
{
public Color2GrayFilter () {
canFilterIndexColorModel = true; }
public int filterRGB (int x, int y, int rgb) {
int red = (rgb & 0xff0000) >>16;
int green = (rgb & 0xff00) >> 8;
int blue = rgb & 0xff;
int gray = (red + green + blue) / 3;
return (0xff000000 | (gray << 16) | (gray << 8) | gray); }
}
Trasformate questo codice aggiungendo un'interfaccia AWT o Swing con 3 barre di scorrimento che permettono di variare a piacere il contenuto di Rosso,Verde e Blu
nell'immagine filtrata.