'JAVA/JSP/Source'에 해당되는 글 36건
- 2008.07.14 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.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 |