我如何获得java.awt.ImageJFrame?
我想获得一个屏幕截图JFrame(以后在我的应用程序中使用).目前,这是通过使用机器人拍摄指定所JFrame涉及的坐标和尺寸的屏幕截图来完成的.
但是,我相信有一种更好的方法:默认情况下,Swing组件在将自己绘制到屏幕上之前将它们自身渲染为双缓冲区.
有没有办法从组件中获取这些图像?
所以我一直在尝试将我在JPanel上绘制的图像导出到图像中.我一直在使用这种方法:
BufferedImage image = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB);
Graphics2D g = image.createGraphics();
paint(g);
try { ImageIO.write(image, "png", new File([location goes here]); } catch (IOException e) {}
Run Code Online (Sandbox Code Playgroud)
我在预定的位置获得了一张图片,但我得到了我的JPanel显示的压缩版本.如果我也尝试导出BMP,也会发生同样的情况.有没有办法从JPanel导出像素完美的图像?提前致谢.