使用java捕获屏幕的指定区域
我正在Java web应用程序中实现一个屏幕截图,该应用程序已经在运行。但是,我对截图有一个问题,因为图像是针对整个屏幕拍摄的: 正如你所看到的,这是整个屏幕,我只想用图形捕捉这个区域,白色区域。我用于捕获此屏幕的代码是:使用java捕获屏幕的指定区域,java,jsf-2,screenshot,Java,Jsf 2,Screenshot,我正在Java web应用程序中实现一个屏幕截图,该应用程序已经在运行。但是,我对截图有一个问题,因为图像是针对整个屏幕拍摄的: 正如你所看到的,这是整个屏幕,我只想用图形捕捉这个区域,白色区域。我用于捕获此屏幕的代码是: public void captureGraphs() { try { Dimension size = Toolkit.getDefaultToolkit().getScreenSize(); Robot
public void captureGraphs() {
try {
Dimension size = Toolkit.getDefaultToolkit().getScreenSize();
Robot robot = new Robot();
BufferedImage img = robot.createScreenCapture(new Rectangle(size));
File f = new File("C:/capture");
if (!f.exists()) {
f.mkdir();
}
File[] flist = f.listFiles();
for (File flist1 : flist) {
flist1.delete();
}
ImageIO.write(img, "JPG", new File("C:/capture/screenShot.jpg"));
System.out.println("Capture Successfull");
FacesContext.getCurrentInstance().addMessage(
null,
new FacesMessage(FacesMessage.SEVERITY_INFO,
"Successful!",
"You have successfully taken a snapshot. Thank You"));
} catch (HeadlessException e) {
System.out.println(e.getMessage());
} catch (AWTException e) {
System.out.println(e.getMessage());
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
是否有任何方法可以更改此代码以捕获仅包含图形的中间部分???我以前从未这样做过。但是我认为您可以查看您正在使用的API,看看它是否允许您设置捕获长度X宽度的区域。如果可能的话,您可以使用鼠标在要捕获的区域周围绘制一个矩形,并将l,b传递给您的代码。您还需要有鼠标事件侦听器。您正在捕获服务器屏幕吗??对象管理组织