//negativ1.java import java.applet.*; import java.awt.*; import java.awt.image.*; public class negativ1 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(70,150,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("Negativ")); 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) { negativ rim3=new negativ(imgn); imgn=rim3.rimg; repaint(); //selection=10; 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); } } // negativ.java import java.applet.*; import java.awt.*; import java.awt.image.*; public class negativ extends Applet { // MemoryImageSource mis; Image rimg; negativ (Image source) { // canFilterIndexColorModel=true; ColorModel cm=ColorModel.getRGBdefault(); boolean success; int widtho,heighto,oldi; 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=0; y < heighto; y++) { for (int x=0; x < widtho; x++) { int r=cm.getRed(Pixo[y*widtho+x]); int g=cm.getGreen(Pixo[y*widtho+x]); int b=cm.getBlue(Pixo[y*widtho+x]); int alp=cm.getAlpha(Pixo[y*widtho+x]); r=Math.abs(r-255); g=Math.abs(g-255); b=Math.abs(b-255); Pixn[y*widtho+x]=(alp<<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); } }