// aritmetic1.java import java.applet.*; import java.awt.*; import java.awt.image.*; public class aritmetic1 extends Applet { Image img1,img2,imgn; Graphics g; int dimlat,dimin; //dimensiuni imagine img int lat,inalt; //dimensiuni imgn public void init() { Color culoare=new Color(70,150,100); // setBackground(culoare); String imaginea1=getParameter("imagine1"); if (imaginea1==null) imaginea1="didi.jpg" ; String imaginea2=getParameter("imagine2"); if (imaginea2==null) imaginea2="lost2.jpg" ; img1=getImage(getCodeBase(), imaginea1); img2=getImage(getCodeBase(), imaginea2); dimlat=img1.getWidth(this); dimin=img1.getHeight(this); imgn=img1; // Image rimg; Panel p=new Panel(); setLayout(new BorderLayout()); p.add(new Button("Adunare")); p.add(new Button("Scadere")); p.add(new Button("Produs")); p.add(new Button("Divizare")); 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(); if (evt.target instanceof Button) { if (ob.equals("Adunare")) { aritmetic rim1=new aritmetic(img1,img2,1); imgn=rim1.rimg; } if (ob.equals("Scadere")) { aritmetic rim1=new aritmetic(img1,img2,2); imgn=rim1.rimg; } if (ob.equals("Produs")) { aritmetic rim1=new aritmetic(img1,img2,3); imgn=rim1.rimg; }if (ob.equals("Divizare")) { aritmetic rim1=new aritmetic(img1,img2,4); imgn=rim1.rimg; } repaint(); //selection=10; return true; } return false; } public void paint(Graphics g) { g.drawImage(img1,60,60,this); g.drawImage(img2,100+dimlat,60,this); g.drawImage(imgn,180,100+dimin,this); } public void update(Graphics g) { paint(g); } } // aritmetic.java import java.applet.*; import java.awt.*; import java.awt.image.*; public class aritmetic extends Applet { // MemoryImageSource mis; Image rimg; aritmetic (Image source1, Image source2, int select) { // canFilterIndexColorModel=true; ColorModel cm=ColorModel.getRGBdefault(); boolean success; int widtho,heighto,oldi; int[] Pix1,Pix2,Pixn; int pixelval; int r,g,b,alp; r=b=g=alp=0; PixelGrabber pg1,pg2; widtho = source1.getWidth(this); heighto = source1.getHeight(this); Pix1 = new int[widtho*heighto]; Pix2 = new int[widtho*heighto]; Pixn = new int[widtho*heighto]; pg1 = new PixelGrabber(source1.getSource(), 0,0,widtho,heighto,Pix1,0,widtho); try { success = pg1.grabPixels(0); } catch (Exception e) { System.out.println("Eroare!! " + e); } pg2 = new PixelGrabber(source2.getSource(), 0,0,widtho,heighto,Pix2,0,widtho); try { success = pg2.grabPixels(0); } catch (Exception e) { System.out.println("Eroare!! " + e); } for (int y=0; y < heighto; y++) { for (int x=0; x < widtho; x++) { int r1=cm.getRed(Pix1[y*widtho+x]); int g1=cm.getGreen(Pix1[y*widtho+x]); int b1=cm.getBlue(Pix1[y*widtho+x]); int alp1=cm.getAlpha(Pix1[y*widtho+x]); int r2=cm.getRed(Pix2[y*widtho+x]); int g2=cm.getGreen(Pix2[y*widtho+x]); int b2=cm.getBlue(Pix2[y*widtho+x]); int alp2=cm.getAlpha(Pix2[y*widtho+x]); switch (select) { case 1: r=r1+r2; g=g1+g2; b=b1+b2; alp=alp1+alp2; break; case 2: r=r1-r2; g=g1-g2; b=b1-b2; alp=alp1-alp2; break; case 3: r=r1*r2; g=g1*g2; b=b1*b2; alp=alp1*alp2; break; case 4: r=(int)(r1/r2); g=(int)(g1/g2); b=(int)(b1/b2); alp=(int)(alp1/alp2); break; } r=Math.max(0,Math.min(255,r)); g=Math.max(0,Math.min(255,g)); b=Math.max(0,Math.min(255,b)); alp=Math.max(0,Math.min(255,alp)); Pixn[y*widtho+x]=(alp1<<24) | (r<<16) | (g<<8) | (b<<0); } } rimg = createImage(new MemoryImageSource(widtho,heighto,Pixn,0,widtho)); } public void paint (Graphics g1) { // g1.drawImage(rimg,250,250,this); } }