Utilizarea unui filtru de imagini

 
FILTRAREA IMAGINILOR
 
filtrare.jpg
filtrare.jpg
 

Efectuati urmatorii pasi:
1.Creati un filtru de imagine

ImageFilter f=new FiltruImagine();

2.Creati un producator de imagine:

Image img=getImage(getCodeBase(), "imagine.gif");

3.Creati un obiect FilteredImageSource:

ImageProducer producator=new FilteredImageSource(img.getSource(),f);

4.Creati imaginea rezultata prin utilizarea metodei createImage:

Image img_filtrata=createImage(producator);

Utilizarea clasei RGBImageFilter

Pentru fiecare pixel al imaginii clasa RGBImageFilter apeleaza metoda filterRGB, transmitand catre metoda coordonatele x,y si valorile de culoare alfa-RGB ale pixelului. Supradefiniti metoda filterRGB pentru a prelucra datele despre pixeli, iar apoi returnati valoarea noii culori a acelui pixel.
Exemplu:

public int filterRGB (int x, int y, int rgb)
 {
     int alp=(rgb>>24) & 0xff;
     int r = (rgb >> 16) & 0xff;
     int g = (rgb >> 8) & 0xff;
     int b = (rgb >> 0) & 0xff;
     int r1=(int)((r+g+b)/3.0f);
     r1=Math.max(0,Math.min(r1,255));
     int g1=r1;
     int b1=r1; 
     return (alp<<24) | (r1<<16) | (g1<<8) | (b1<<0);
  }