要在我的java应用程序中捕获屏幕截图,我已编写以下代码
Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit()。getScreenSize());
BufferedImage capture = new Robot()….
我的应用程序是安装到程序文件文件夹和Windows 8不授予写在那里我怎么可以写在那里?
做 的 不 强> 写在那里!操作系统制造商以及Sun / Oracle多年来一直在说 的 不 强> 将文件写入应用程序的安装目录。编写它们不仅是一个错误的地方,而且正如您所发现的那样,它不为典型的Java应用程序提供写入权限。
而是将屏幕截图放入 user.home 例如如图所示 这个答案 。
user.home
如果不使用以下代码在本地计算机中写入文件,则可以执行此操作
ByteArrayOutputStream bos=new ByteArrayOutputStream(); byte[] imageByte = null; try { //To Get the the size of the screen. Rectangle screenRect = new Rectangle(Toolkit .getDefaultToolkit().getScreenSize()); //To Store the scrreen shot in buffer. BufferedImage capture = new Robot() .createScreenCapture(screenRect); //To Save the image on specific location. ImageIO.write(capture, "png",bos); bos.flush(); imageByte=bos.toByteArray(); bos.close(); // File file = new File("resources/img/screenshot.png"); MultipartEntity mpEntity = new MultipartEntity(); // ContentBody cfBody = new FileBody(file); ContentBody cfBody = new ByteArrayBody(imageByte,"screenshot.png"); mpEntity.addPart("screenshot", cfBody);
}
直接发送图像的字节数组