屏幕截图是不可见的元素?

时间:2017-10-24 13:37:13

标签: java swing screenshot paintcomponent

我试图在JFrame中获取组件的屏幕截图。 问题是这个组件很大,你不能完全在窗口中看到它(你必须向下滚动才能看到隐藏的部分)。 我尝试了几件事,例如:

Rectangle rect = component.getBounds();

    try {
        String format = "png";
        String fileName = component.getName() + "." + format;
        BufferedImage captureImage =
                new BufferedImage(rect.width, rect.height,
                                    BufferedImage.TYPE_INT_ARGB);
        component.paint(captureImage.getGraphics());

        ImageIO.write(captureImage, format, new File(fileName));

        System.out.printf("The screenshot of %s was saved!", component.getName());
    } catch (IOException ex) {
        System.err.println(ex);
    }

这个(coming from here):

BufferedImage bi;
    try {
        bi = ScreenImage.createImage( component  );
        ScreenImage.writeImage(bi, "Screen-Image.jpg");
    } catch (AWTException | IOException e) {
        e.printStackTrace();
    }

但在这两种情况下,我得到的屏幕截图只显示了我在窗口中可以看到的内容。 因此,如果我向下滚动,我会错过上面的部分,如果我向上滚动,我会错过底部。 你知道如何在图片中渲染整个组件吗?

0 个答案:

没有答案