我想做一个截取本机的屏幕并且生成一张图片上传到服务器。为何用以下代码截取的总是服务器的屏幕,而不是截取的本机的屏幕。很是纠结啊。请问各位大虾们是否有好的方案或者解决办法。在线等啊!
public void snapShot(String fileName,String imageFormat) { 
try { 
//拷贝屏幕到一个BufferedImage对象screenshot 
BufferedImage screenshot = (new Robot()).createScreenCapture(new 
Rectangle(200, 260, (int) d.getWidth()-100, (int) d.getHeight()-100)); 
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); 

catch (Exception ex) { 
System.out.println(ex); 

}

解决方案 »

  1.   

    我认为是你BufferedImage screenshot = (new Robot()).createScreenCapture造成的,This class is used to generate native system input events for the purposes of test automation self-running demos, and other applications where control of the mouse and keyboard is needed(此类用于为测试自动化、自运行演示程序和其他需要控制鼠标和键盘的应用程序生成本机系统输入事件)当你把项目发布到服务器中这就意味着服务器就是“本地”而客户端不是“本地”所以会出现你的那种情况,或许你应该把这东西送到客户端执行,或者搞个客户端本地对象来负责产生这个Robot,我没接触过呵呵 瞎猜的,错了请原谅