import java.applet.*;
import java.awt.*;
import java.awt.image.*;
//import redimImage;
//import negativ;

public class imgdodo_n extends Applet implements ImageObserver
{

Image img,imgn,img2;
int selection=0,select2=0,argb=0;
int dimlat,dimin;  //dimensiuni imagine img
int lat,inalt;  //dimensiuni imgn
 
Graphics g;
Button Redimpm,Mono,Argb;
String valori[]={"min","0.5x","1.5x","max"};
Button but[]=new Button[4];
Panel p=new Panel();
Panel pnou=new Panel();
//int newindex;  // resized image pixel index
//int oldindex;  // original image pixel index

public void init()
{
 img=getImage(getCodeBase(), "T1.gif");
 dimlat=img.getWidth(this);
 dimin=img.getHeight(this);
 imgn=img;
 
 //if (dimlat>150)
  // dimlat=150;
 //if (dimin>150)
  // dimin=150;
 setLayout(new BorderLayout());
 
 p.add(new Button("Normal"));
 Redimpm=new Button("Mareste   ");
 p.add(Redimpm);
 //p.add(new Button("Micsoreaza"));
 p.add(new Button("Negativ"));
 p.add(new Button("Stralucire"));
 Mono=new Button("Albnegru 1");
 p.add(Mono);
 Argb=new Button("Alpha");
 p.add(Argb);
 add("North",p);
 for (int i=0;i<valori.length;i++)
     but[i]=new Button(valori[i]);
 pnou.setLayout(new GridLayout(20,2,30,10));
 add("East",pnou);
 //add("North",p);
 p.validate();
// Scrollbar orz=new Scrollbar(Scrollbar.HORIZONTAL);
//Scrollbar vert=new Scrollbar(Scrollbar.VERTICAL);
// add("South",orz);
// add("West",vert);
}


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("Normal")) {
       selection=0;
       pnou.removeAll(); 
       imgn=img; 
    }
    else if (ob.equals("Mareste   "))
      {
        selection=1;  
        pnou.removeAll();
        Redimpm.setLabel("Micsoreaza");
        redimImage rim1=new redimImage(imgn,1);
        imgn=rim1.rimg;
      }
    else if (ob.equals("Micsoreaza"))
      {
        selection=2;
        pnou.removeAll();
        Redimpm.setLabel("Mareste   ");
        redimImage rim2=new redimImage(imgn,0);
        imgn=rim2.rimg;
       
      }  
    else if(ob.equals("Negativ")) {
       selection=3;
       pnou.removeAll(); 
       negativ rim3=new negativ(imgn);
       imgn=rim3.rimg;
     
     }
    else if(ob.equals("Stralucire"))
      {  selection=4;
         img2=imgn;
         for (int i=0;i<valori.length;i++)
           pnou.add(but[i]);
         pnou.validate();
     
      }
    else if (ob.equals("Albnegru 1"))
      {
        selection=5;  
        pnou.removeAll();
        Mono.setLabel("Albnegru 2");
        albnegru1 rim5=new albnegru1(imgn);
        imgn=rim5.rimg;
     
      }  
    else if (ob.equals("Albnegru 2"))
      {
        selection=6;  
        pnou.removeAll();
        ImageFilter mono=new albnegruFilter();  
        ImageProducer produc=new FilteredImageSource(imgn.getSource(), mono); 
        imgn=createImage(produc);

        Mono.setLabel("Albnegru 1");
      }
     else if (ob.equals("Alpha"))
     {
          selection=7;
          img2=imgn;
          for (int i=0;i<valori.length;i++)
             pnou.add(but[i]);
          pnou.validate();          
          argb=1;
          Argb.setLabel("Red");
     
      } 
    else if (ob.equals("Red"))
     {
          selection=7;
          img2=imgn;
          for (int i=0;i<valori.length;i++)
            pnou.add(but[i]);
          pnou.validate();
          argb=2;
          Argb.setLabel("Green");
     
      }
    else if (ob.equals("Green"))
     {
          selection=7;
          img2=imgn;
          for (int i=0;i<valori.length;i++)
            pnou.add(but[i]);
          pnou.validate();
          argb=3;
          Argb.setLabel("Blue");
     
        
      }
    else if (ob.equals("Blue"))
     {
          selection=7;
          img2=imgn;
          for (int i=0;i<valori.length;i++)
            pnou.add(but[i]);
          pnou.validate();
          argb=4;
          Argb.setLabel("Alpha");
     
      }
    
    for (int i=0;i<valori.length;i++)
    {
       if (ob.equals(valori[i]))
       {    
         select2=i+1;
         if (selection==4) //stralucire
         {   stralucire rim4=new stralucire(img2,select2);
             imgn=rim4.rimg;
         }
         else if (selection==7)  //alp,rgb
         {
            alpha rim7=new alpha(img2,argb,select2);
            imgn=rim7.rimg;
         }    
       }
    }   
    repaint();
    //selection=10;
   return true;
  }
  return false;
}


public void paint(Graphics g)
{
 inalt=imgn.getHeight(this);
 lat=imgn.getWidth(this);
  g.drawImage(img,60,60, this);
  g.drawImage(imgn,60,100+dimin,this);
         
}

public void update(Graphics g)
{
    paint(g);
}
}