圖象緩沖的應用雙緩沖繪圖:

           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 

          圖象緩沖的應用截圖:
           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 

          posted on 2007-02-07 09:45 -274°C 閱讀(358) 評論(0)  編輯  收藏 所屬分類: JAVA

          常用鏈接

          留言簿(21)

          隨筆分類(265)

          隨筆檔案(242)

          相冊

          JAVA網站

          關注的Blog

          搜索

          •  

          積分與排名

          • 積分 - 916114
          • 排名 - 40

          最新評論

          主站蜘蛛池模板: 青州市| 昭苏县| 建昌县| 嘉黎县| 辉县市| 普定县| 安图县| 福安市| 灵台县| 宝清县| 三台县| 惠州市| 太仆寺旗| 孝昌县| 聊城市| 鲁山县| 郎溪县| 永修县| 汾西县| 荃湾区| 新化县| 南汇区| 罗源县| 哈巴河县| 康乐县| 于都县| 泸西县| 尚志市| 那曲县| 苏尼特右旗| 正镶白旗| 璧山县| 房产| 衡南县| 贵定县| 迁安市| 南宫市| 土默特右旗| 福安市| 潢川县| 武夷山市|