最近项目中涉及到一个问题:需要将已经画好的图形存储起来(注:利用其它的画图工具绘制),然后进行发送,在异地查看。
目前的一个思路是:希望将用画图工具绘制的图形采用截图的方式保存为图片格式,然后直接发送过去。由于绘制的图形是符合工业规范的图形,只能利用已有的工具进行绘制,还不能使用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]