import java.applet.*; import java.awt.*; import java.awt.image.*; // filtrulin1.java public class filtrulin1 extends Applet { Image img,imgn; Graphics g; int dimlat,dimin; //dimensiuni imagine img int lat,inalt; //dimensiuni imgn public void init() { Color culoare=new Color(200,100,100); setBackground(culoare); String imaginea=getParameter("imagine"); if (imaginea==null) imaginea="Andreea1.jpg" ; img=getImage(getCodeBase(), imaginea); dimlat=img.getWidth(this); dimin=img.getHeight(this); imgn=img; // Image rimg; Panel p=new Panel(); setLayout(new BorderLayout()); p.add(new Button("Filtru liniar1")); p.add(new Button("Filtru liniar2")); p.add(new Button("Filtru liniar3")); add("North",p); // g.drawImage(img,60,60,this); } public boolean action(Event evt, Object ob) { Graphics g=getGraphics(); inalt=imgn.getHeight(this); lat=imgn.getWidth(this); g.clearRect(60,100+dimin,60+lat,100+dimin+inalt); g.dispose(); int sel=0; if (evt.target instanceof Button) { if (ob.equals("Filtru liniar1")) sel=1; else if (ob.equals("Filtru liniar2")) sel=2; else if (ob.equals("Filtru liniar1")) sel=3; filtrulin rim3=new filtrulin(img,sel); imgn=rim3.rimg; repaint(); return true; } return false; } public void paint(Graphics g) { g.drawImage(img,60,60,this); g.drawImage(imgn,100+dimlat,60,this); } public void update(Graphics g) { paint(g); } } // filtrulin.java import java.applet.*; import java.awt.*; import java.awt.image.*; public class filtrulin extends Applet { // MemoryImageSource mis; Image rimg; filtrulin (Image source,int select) { // canFilterIndexColorModel=true; ColorModel cm=ColorModel.getRGBdefault(); boolean success; int widtho,heighto,oldi; int r1,b1,g1; int pondere[]={-1,1,-1,1,1,-1,1,-1,1}; switch (select) { case 1: for (int i=0;i<9;i++) pondere[i]=-1; pondere[5]=9; break; case 2: for (int i=0;i<9;i++) pondere[i]=1; break; case 3: break; } int[] Pixo,Pixn; int pixelval; PixelGrabber pg; widtho = source.getWidth(this); heighto = source.getHeight(this); Pixo = new int[widtho*heighto]; Pixn = new int[widtho*heighto]; pg = new PixelGrabber(source.getSource(), 0,0,widtho,heighto,Pixo,0,widtho); try { success = pg.grabPixels(0); } catch (Exception e) { System.out.println("Eroare!! " + e); } for (int y=1; y < heighto-1; y++) { for (int x=1; x < widtho-1; x++) { r1=g1=b1=0; int k=0; for (int i=y-1;i<=y+1;i++) { for (int j=x-1;j<=x+1;j++) { int r=cm.getRed(Pixo[i*widtho+j]); int g=cm.getGreen(Pixo[i*widtho+j]); int b=cm.getBlue(Pixo[i*widtho+j]); r1+=r*pondere[k]; g1+=g*pondere[k]; b1=b*pondere[k]; k++; } } if (select==2) { r1=r1/9; b1=b1/9; g1=g1/9; } r1=Math.max(0,Math.min(r1,255)); g1=Math.max(0,Math.min(g1,255)); r1=Math.max(0,Math.min(r1,255)); b1=Math.max(0,Math.min(b1,255)); Pixn[y*widtho+x]=(0xFF000000) | (r1<<16) | (g1<<8) | (b1<<0); } } for (int x=0;x