squirrelRao
2011-03-12 18:10
浏览 255
已采纳

Java如何实现截图功能?有没有这方面开源的东东?

最近项目中涉及到一个问题:需要将已经画好的图形存储起来(注:利用其它的画图工具绘制),然后进行发送,在异地查看。

目前的一个思路是:希望将用画图工具绘制的图形采用截图的方式保存为图片格式,然后直接发送过去。由于绘制的图形是符合工业规范的图形,只能利用已有的工具进行绘制,还不能使用Java再造一个轮子。所以最直接的方式就是希望利用Java做一个截图的功能,进行截图。

寻求好的开源的Java的能实现截图的工具。或者Java支持截图的包什么的.... :lol:

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • redstarofsleep 2011-03-12 18:24
    已采纳

    可以进行截图的,你看看这个例子
    [code="java"]
    import java.awt.Dimension;

    import java.awt.Rectangle;

    import java.awt.Robot;

    import java.awt.Toolkit;

    import java.awt.image.BufferedImage;

    import java.io.File;

    import javax.imageio.ImageIO;

    /*******************************************************************************

    • 该JavaBean可以直接在其他Java应用程序中调用,实现屏幕的"拍照" This JavaBean is used to snapshot the

    • GUI in a Java application! You can embeded it in to your java application

    • source code, and us it to snapshot the right GUI of the application

    *

    • @see javax.ImageIO

    • @author liluqun ([email]liluqun@263.net[/email])

    • @version 1.0

    *

    ******************************************************************************/

    public class GuiCamera {

     private String fileName; // 文件的前缀
    
     private String defaultName = "GuiCamera";
    
     static int serialNum = 0;
    
     private String imageFormat; // 图像文件的格式
    
     private String defaultImageFormat = "jpg";
    
     Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    
    /***************************************************************************
    
      * 默认的文件前缀为GuiCamera,文件格式为PNG格式 The default construct will use the default
    
      * Image file surname "GuiCamera", and default image format "png"
    
      **************************************************************************/
    
     public GuiCamera() {
    
         fileName = defaultName;
    
         imageFormat = defaultImageFormat;
    
     }
    
    /***************************************************************************
    
      * @param s
    
      *             the surname of the snapshot file
    
      * @param format
    
      *             the format of the image file, it can be "jpg" or "png"
    
      *             本构造支持JPG和PNG文件的存储
    
      **************************************************************************/
    
     public GuiCamera(String s, String format) {
    
         fileName = s;
    
         imageFormat = format;
    
     }
    
    /***************************************************************************
    
      * 对屏幕进行拍照 snapShot the Gui once
    
      **************************************************************************/
    
     public void snapShot() {
    
         try {
    
             // 拷贝屏幕到一个BufferedImage对象screenshot
    
             BufferedImage screenshot = (new Robot())
    
                     .createScreenCapture(new Rectangle(0, 0,
    
                             (int) d.getWidth(), (int) d.getHeight()));
    
             serialNum++;
    
             // 根据文件前缀变量和文件格式变量,自动生成文件名
    
             String name = fileName + String.valueOf(serialNum) + "."
    
                     + imageFormat;
    
             File f = new File(name);
    
             System.out.print("Save File " + name);
    
             // 将screenshot对象写入图像文件
    
             ImageIO.write(screenshot, imageFormat, f);
    
             System.out.print("..Finished!\n");
    
         } catch (Exception ex) {
    
             System.out.println(ex);
    
         }
    
     }
    
     public static void main(String[] args) {
    
         GuiCamera cam = new GuiCamera("d:\\qq", "bmp");//
    
         cam.snapShot();
    
     }
    

    }
    [/code]

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题