图象缓冲的应用双缓冲绘图:
图象缓冲的应用截图:
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->
1
//
/
2 //
3 // @title:BufImgJpane
4 //
5 // @discription 实现了双缓冲画图
6 //
7 // @author 爪洼河
8 //
9 // @date 2006-8
10 //
11
12 import java.awt.Graphics;
13 import java.awt.Graphics2D;
14 import java.awt.Image;
15 import java.awt.image.BufferedImage;
16 import javax.swing.ImageIcon;
17 import javax.swing.JButton;
18 import javax.swing.JFrame;
19 import javax.swing.JPanel;
20 public class BufImgJpane extends JPanel
21 {
22 Image img ;
23 BufferedImage bufimg ;
24 public BufImgJpane ()
25 {
26 ImageIcon icon = new ImageIcon (getClass ().getResource ( " 1.jpg " )) ;
27 img = icon.getImage () ;
28 bufimg = new BufferedImage (img.getWidth ( this ) , img.getHeight ( this ) ,
29 BufferedImage.TYPE_3BYTE_BGR) ;
30 Graphics2D g2 = bufimg.createGraphics () ;
31 g2.clearRect ( 0 , 0 , img.getWidth ( this ) , img.getHeight ( this )) ;
32 g2.drawImage (img , 0 , 0 , img.getWidth ( this ) , img.getHeight ( this ) ,
33 this ) ;
34 }
35 public void paintComponent (Graphics g)
36 {
37
38 g.drawImage (bufimg , 0 , 0 , this .getWidth () , this .getHeight () ,
39 this ) ;
40 }
41 public static void main (String args[])
42 {
43 BufImgJpane bufimgpane = new BufImgJpane () ;
44 JFrame frame = new JFrame ( " 双缓冲画图 " ) ;
45 frame.add (bufimgpane) ;
46 frame.setSize ( 610 , 625 ) ;
47 frame.setVisible ( true ) ;
48 frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE) ;
49 }
50 }
51
2 //
3 // @title:BufImgJpane
4 //
5 // @discription 实现了双缓冲画图
6 //
7 // @author 爪洼河
8 //
9 // @date 2006-8
10 //
11
12 import java.awt.Graphics;
13 import java.awt.Graphics2D;
14 import java.awt.Image;
15 import java.awt.image.BufferedImage;
16 import javax.swing.ImageIcon;
17 import javax.swing.JButton;
18 import javax.swing.JFrame;
19 import javax.swing.JPanel;
20 public class BufImgJpane extends JPanel
21 {
22 Image img ;
23 BufferedImage bufimg ;
24 public BufImgJpane ()
25 {
26 ImageIcon icon = new ImageIcon (getClass ().getResource ( " 1.jpg " )) ;
27 img = icon.getImage () ;
28 bufimg = new BufferedImage (img.getWidth ( this ) , img.getHeight ( this ) ,
29 BufferedImage.TYPE_3BYTE_BGR) ;
30 Graphics2D g2 = bufimg.createGraphics () ;
31 g2.clearRect ( 0 , 0 , img.getWidth ( this ) , img.getHeight ( this )) ;
32 g2.drawImage (img , 0 , 0 , img.getWidth ( this ) , img.getHeight ( this ) ,
33 this ) ;
34 }
35 public void paintComponent (Graphics g)
36 {
37
38 g.drawImage (bufimg , 0 , 0 , this .getWidth () , this .getHeight () ,
39 this ) ;
40 }
41 public static void main (String args[])
42 {
43 BufImgJpane bufimgpane = new BufImgJpane () ;
44 JFrame frame = new JFrame ( " 双缓冲画图 " ) ;
45 frame.add (bufimgpane) ;
46 frame.setSize ( 610 , 625 ) ;
47 frame.setVisible ( true ) ;
48 frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE) ;
49 }
50 }
51
图象缓冲的应用截图:
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->
1
//
/
2 //
3 // @name TestImageIO.java
4 //
5 // @discription 首先测试把一个容器通过按钮事件存为一张图片。
6 //
7 // @author java&he
8 //
9 // @date 2006-12
10 //
11
12 import java.awt.Graphics;
13 import java.awt.event.ActionEvent;
14 import java.awt.event.ActionListener;
15 import java.awt.image.BufferedImage;
16 import java.io.File;
17 import javax.imageio.ImageIO;
18 import javax.swing. * ;
19 public class TestImageIO
20 {
21 JFrame frame = new JFrame ( " 测试截屏 " );
22 JPanel panel = new JPanel ();
23 public TestImageIO ()
24 {
25
26 frame.setSize ( 200 , 300 );
27
28 frame.add ( " Center " ,panel);
29 panel.setLayout ( null );
30 JButton btn = new JButton ( " paint " );
31 btn.setBounds ( 100 , 100 , 100 , 50 );
32 panel.add (btn);
33 btn.addActionListener ( new ActionListener ()
34 {
35 public void actionPerformed (ActionEvent evt)
36 {
37 BufferedImage bufimg = new BufferedImage (TestImageIO. this .frame.getBounds ().width,TestImageIO. this .frame.getBounds ().height,BufferedImage.TYPE_INT_RGB);
38 Graphics g = bufimg.getGraphics ();
39 TestImageIO. this .frame.paint (g);
40 g.dispose ();
41 try
42 {
43 ImageIO.write (bufimg, " jpg " , new File ( " Test.jpg " ));
44
45 }
46 catch (Exception e)
47 {
48 e.printStackTrace ();
49 }
50 }
51 });
52 frame.setVisible ( true );
53 frame.setDefaultCloseOperation (frame.EXIT_ON_CLOSE);
54 }
55 public static void main (String[] args)
56 {
57 new TestImageIO ();
58 }
59
60 }
61
2 //
3 // @name TestImageIO.java
4 //
5 // @discription 首先测试把一个容器通过按钮事件存为一张图片。
6 //
7 // @author java&he
8 //
9 // @date 2006-12
10 //
11
12 import java.awt.Graphics;
13 import java.awt.event.ActionEvent;
14 import java.awt.event.ActionListener;
15 import java.awt.image.BufferedImage;
16 import java.io.File;
17 import javax.imageio.ImageIO;
18 import javax.swing. * ;
19 public class TestImageIO
20 {
21 JFrame frame = new JFrame ( " 测试截屏 " );
22 JPanel panel = new JPanel ();
23 public TestImageIO ()
24 {
25
26 frame.setSize ( 200 , 300 );
27
28 frame.add ( " Center " ,panel);
29 panel.setLayout ( null );
30 JButton btn = new JButton ( " paint " );
31 btn.setBounds ( 100 , 100 , 100 , 50 );
32 panel.add (btn);
33 btn.addActionListener ( new ActionListener ()
34 {
35 public void actionPerformed (ActionEvent evt)
36 {
37 BufferedImage bufimg = new BufferedImage (TestImageIO. this .frame.getBounds ().width,TestImageIO. this .frame.getBounds ().height,BufferedImage.TYPE_INT_RGB);
38 Graphics g = bufimg.getGraphics ();
39 TestImageIO. this .frame.paint (g);
40 g.dispose ();
41 try
42 {
43 ImageIO.write (bufimg, " jpg " , new File ( " Test.jpg " ));
44
45 }
46 catch (Exception e)
47 {
48 e.printStackTrace ();
49 }
50 }
51 });
52 frame.setVisible ( true );
53 frame.setDefaultCloseOperation (frame.EXIT_ON_CLOSE);
54 }
55 public static void main (String[] args)
56 {
57 new TestImageIO ();
58 }
59
60 }
61