Java,启动低于面板的屏幕截图

时间:2013-11-20 06:14:22

标签: java swing panel screenshot

所以我试图获得我的面板的屏幕截图,下面的代码非常完美。我想将屏幕截图的起点降低200像素。如果我做size.height-200它会提升底部。我将来需要这样做,但我如何降低顶部呢?或者我需要采用不同的方法吗?

System.out.println("Trying to screenshot");
                    Dimension size = getSize ();
                    BufferedImage img = new BufferedImage (size.width, size.height, BufferedImage.TYPE_3BYTE_BGR);
                    Graphics g = img.getGraphics ();
                    paint (g);
                    g.dispose ();
                    try
                    {
                        ImageIO.write (img, "png", new File ("screenshot1.png"));
                    }
                    catch (IOException ex)
                    {
                        ex.printStackTrace ();
                    }                   

2 个答案:

答案 0 :(得分:2)

是否要绘制具有偏移量的组件?如果是,那么AffineTransformation就是你的朋友。尝试拨打

    Graphics2D g = img.createGraphics();
    g.transform(AffineTransform.getTranslateInstance(0, -200));
    paint(g);
    g.dispose();

答案 1 :(得分:1)

您可以使用Screen Image课程。它允许您在创建面板图像时指定矩形。

如果您不想使用该类,请查看代码。根据您的要求,关键是在进行绘画之前翻译图形。