Vincent.Chan‘s Blog

          常用鏈接

          統計

          積分與排名

          網站

          最新評論

          如何把awt或者swing的UI生成一個圖形文件

          package demo;

          import java.io.File;
          import org.jfree.chart.JFreeChart;
          import java.io.IOException;
          import java.io.OutputStream;
          import java.io.BufferedOutputStream;
          import java.io.FileOutputStream;
          import java.awt.image.BufferedImage;
          import org.jfree.chart.encoders.ImageFormat;
          import java.awt.Graphics2D;
          import java.awt.*;
          import java.awt.*;
          import org.jfree.chart.encoders.ImageEncoder;
          import org.jfree.chart.encoders.ImageEncoderFactory;
          import javax.swing.JFrame;
          import javax.imageio.ImageIO;

          public class ToImg {
            
          public ToImg() {
            }



            
          /**
             * Saves a chart to a file in JPEG format.
             *
             * 
          @param file  the file (<code>null</code> not permitted).
             * 
          @param quality  the JPEG quality setting.
             * 
          @param chart  the chart (<code>null</code> not permitted).
             * 
          @param width  the image width.
             * 
          @param height  the image height.
             *
             * 
          @throws IOException if there are any I/O errors.
             
          */

            
          public static void saveChartAsJPEG(File file,
                                               
          float quality,
                                               JFreeChart chart,
                                               
          int width,
                                               
          int height) throws IOException {

              
          if (file == null{
                  
          throw new IllegalArgumentException("Null 'file' argument.");
              }

              
          if (chart == null{
                  
          throw new IllegalArgumentException("Null 'chart' argument.");
              }

              OutputStream out 
          = new BufferedOutputStream(new FileOutputStream(file));

              BufferedImage images 
          = chart.createBufferedImage(width, height, null);
              BufferedImage image 
          = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
              Graphics2D g2 
          = image.createGraphics();
          //    draw(g2, new Rectangle2D.Double(0, 0, width, height), null, info);
              g2.dispose();

              writeBufferedImage(image, ImageFormat.JPEG, out, quality);
              out.close();
            }


            
          public static void writeBufferedImage(BufferedImage image, String format,
                OutputStream outputStream, 
          float quality)
                
          throws IOException {
              ImageEncoder imageEncoder
                  
          = ImageEncoderFactory.newInstance(format, quality);
              imageEncoder.encode(image, outputStream);

            }


            
          public static void main(String[] args) {
              Robot robot 
          = null;
              
          try {
                
                JFrame f 
          = new Frame1(); 
                f.setSize(
          500,600);
                f.setVisible(
          true);
                f.setDefaultCloseOperation(
          2);
                BufferedImage image 
          = new BufferedImage(500600, BufferedImage.TYPE_INT_RGB);
                f.getContentPane().paint(image.getGraphics());
                FileOutputStream out 
          = new FileOutputStream("d:\\b.jpg");
                ImageIO.write(image, 
          "jpeg" , out);
                out.close();

          /**    
               抓圖  
                Robot robot = new java.awt.Robot();
                BufferedImage image = robot.createScreenCapture(new Rectangle(100, 100));
                ImageEncoder imageEncoder
                    = ImageEncoderFactory.newInstance(ImageFormat.JPEG, 100);
                FileOutputStream out = new FileOutputStream("d:\\a.jpg");
                imageEncoder.encode(taget, out);
           }
          */


             }

              
          catch (Exception ex) {
                ex.printStackTrace();
              }


            }


          }

          posted on 2006-02-13 21:38 Vincent.Chen 閱讀(341) 評論(0)  編輯  收藏 所屬分類: Java

          主站蜘蛛池模板: 德阳市| 五大连池市| 焦作市| 浑源县| 红桥区| 寿光市| 屏东县| 将乐县| 雷山县| 高安市| 汉川市| 千阳县| 兴隆县| 阿荣旗| 阿鲁科尔沁旗| 临湘市| 卓尼县| 子洲县| 崇州市| 阳春市| 遂溪县| 瑞昌市| 杭锦后旗| 乌鲁木齐市| 玛多县| 瑞金市| 集安市| 侯马市| 青川县| 漠河县| 江口县| 鹤岗市| 玉溪市| 紫云| 绍兴县| 巩义市| 贺州市| 六盘水市| 二手房| 孝义市| 晋中市|