Image

|

-----AWT에서 이미지 불러오기 -----

 

import java.awt.*;
import java.awt.image.*;
import java.awt.event.*;

 

public class Imageview2 extends Frame
{
  Image img;
 
  Imageview2()
  {
     img = Toolkit.getDefaultToolkit().getImage("jun.jpg");  // AWT에서 이미지 객체

                                                                            // 생성
 
    setSize(500,500);
    setVisible(true);
 
  addWindowListener( new WindowAdapter()
   {
    public void windowClosing(WindowEvent e)
    {
     System.exit(0);
    }
   });
 }
 
 public void paint(Graphics g)
 {
    g.drawImage(img,0,0,this); 
// 이미지 그리기
 }
 
 public static void main(String[] args)
 {
  new Imageview2();
 }
 
}


 

----- Applet에서 이미지 불러오기 -----

import java.awt.*;
import java.awt.image.*;

 

public class Imageview extends java.applet.Applet
{
   Image img;
   String h;

 public void init()
 {
     img = getImage(getDocumentBase(), "jun.jpg"); //이미지 객체 생성
     

     h = getCodeBase().toString();
 
 }

 public void paint(Graphics g)
 {
    g.drawString(h,10,490);
    g.drawImage(img, 0,0,this);
 }
}

 

 

 

 

----- 이미지 편집 예제 -----


import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;

 

public class ImageEdit extends Frame implements ActionListener
{
 int x1,y1,x2,y2,sx1,sy1,sx2,sy2;
 
 Button bt[] = new Button[6];
 
 Image img;
 Panel p;
 
 ImageEdit()
 {
 
  img = Toolkit.getDefaultToolkit().getImage("jun.jpg");  // 이미지 객체 생성
   
  p = new Panel();
 
  bt[0] = new Button("정상그림");
  bt[1] = new Button("일부 그리기");
  bt[2] = new Button("축소");
  bt[3] = new Button("좌우 뒤집기");
  bt[4] = new Button("상하 뒤집기");
  bt[5] = new Button("전부 뒤집기");
 
  for(int i=0; i<=5; i++)
  {
   p.add(bt[i]);
   bt[i].addActionListener(this);
  }
 
  x1 = 0;
  x2 = img.getWidth(this);
  y1 = 0;
  y2 = img.getHeight(this);
  sx1 = 0;
  sy1 = 0;
  sx2 = img.getWidth(this);
  sy2 = img.getHeight(this);
 
  add("North",p);
  setSize(500,500);
 
  repaint();
 
  setVisible(true);
 
  addWindowListener(new WindowAdapter()
   {
    public void windowClosing(WindowEvent e)
    {
     System.exit(0);
    }
   });
 
 }
 
 public void paint(Graphics g)
 {
  g.drawImage(img,x1,y1+60,x2,y2+60,sx1,sy1,sx2,sy2,this);
 }
 
 
 public void actionPerformed(ActionEvent e)
 {
  Object ob = e.getSource();
 
  if(ob==bt[0])                   // 그림 원본 출력
  {
   x1 = 0;
   x2 = img.getWidth(this);
   y1 = 0;
   y2 = img.getHeight(this);
   
   sx1 = 0;
   sy1 = 0;
   sx2 = img.getWidth(this);
   sy2 = img.getHeight(this);
   
   repaint();
  }
  else if(ob==bt[1])           // 그림 일부 그리기
  {
   x1 = 0;
   y1 = 0;
   x2 = 100;
   y2 = 100;
 
   sx1 = 50;
   sy1 = 50;
   sx2 = 150;
   sy2 = 150;
 
   repaint();
  }
  else if(ob == bt[2])         // 그림 축소
  {
   x1 = 0;
   y1 = 0;
   x2 = img.getWidth(this)/2;
   y2 = img.getHeight(this)/2;
 
   sx1 = 0;
   sy1 = 0;
   sx2 = img.getWidth(this);
   sy2 = img.getHeight(this);
   
   repaint();
  }
  else if(ob == bt[3])         // 그림 좌우 뒤집기
  {
   sx1 = 0;
   sy1 = 0;
   sx2 = img.getWidth(this);
   sy2 = img.getHeight(this);
   
   x1 = sx2;
   y1 = 0;
   x2 = 0;
   y2 = sy2;
 
   
   repaint();
  } 
  else if(ob == bt[4])     // 그림 상하 뒤집기
  {
   sx1 = 0;
   sy1 = 0;
   sx2 = img.getWidth(this);
   sy2 = img.getHeight(this);
   
   x1 =0;
   y1 = sy2;
   x2 = sx2;
   y2 = 0;
 
   repaint();
  } 
  else if(ob == bt[5])        // 전체 뒤집기
  {
   sx1 = 0;
   sy1 = 0;
   sx2 = img.getWidth(this);
   sy2 = img.getHeight(this);
   
   x1 = sx2;
   y1 = sy2;
   x2 = 0;
   y2 = 0;
 
   repaint();
  } 
 
 
 }  
 
 public static void main(String[] args)
 {
  ImageEdit im = new ImageEdit();
 
  im.repaint();
 }

}

 

 

----- 전체 그림에서 일부만 보여주기 예제 -----

import java.awt.*;
import java.awt.image.*;
import java.awt.event.*;

 

public class Ani extends Frame implements Runnable
{
 int x1,y1,x2,y2,sx1,sy1,sx2,sy2;
 
 Image img = Toolkit.getDefaultToolkit().getImage("jun.jpg");
 
 Ani()
 {
  setSize(600,500);
  setVisible(true);
 
  x1 = 0;
  y1 = 0;
  x2= img.getWidth(this)/3;
  y2= img.getHeight(this)/3;
 
  sx1 = 0;
  sy1 = 0;
  sx2= img.getWidth(this)/3;
  sy2= img.getHeight(this)/3;
 
 
  repaint();
 
  addWindowListener(new WindowAdapter()
   {
    public void windowClosing(WindowEvent e)
    {
     System.exit(0);
    }
   });
 }
 
 
 public void paint(Graphics g)
 {
  g.drawImage(img, x1,y1,x2,y2,sx1,sy1,sx2,sy2,this);
 }
 
 public void run()
 {
  try{
     for(int i=0; i<=1; i++)
     {
       for(int j=0; j<=2; j++)
       {
         Thread.sleep(500);

         
        ///// 이미지를 6등분하여 한부분씩 보여준다/////
         x1 = (img.getWidth(this)/3)*j;
         y1 = (img.getHeight(this)/3)*i;
         x2 = (img.getWidth(this)/3)*(j+1);
         y2 = (img.getHeight(this)/3)*(i+1);
     
         sx1 = (img.getWidth(this)/3)*j;
         sy1 = (img.getHeight(this)/3)*i;
         sx2 = (img.getWidth(this)/3)*(j+1);
         sy2 = (img.getHeight(this)/3)*(i+1);
         repaint();
     
      }
   }
     
  }catch(InterruptedException e)
  {
   
  }
}
 
 public static  void main(String[] args)
 {
  Ani an = new Ani();
  Thread t = new Thread(an);
   
  t.start();
 }
 
}

 

'JAVA/JSP > Source' 카테고리의 다른 글

InetAddress/ URL  (0) 2008.07.14
Stream  (0) 2008.07.14
Thread  (0) 2008.07.14
Graphics(clipRect())  (0) 2008.07.14
아날로그 시계(AWT)  (0) 2008.07.14
And