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

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

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

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

可以进行截图的,你看看这个例子
[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]