所以我试图获得我的面板的屏幕截图,下面的代码非常完美。我想将屏幕截图的起点降低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 ();
}
答案 0 :(得分:2)
是否要绘制具有偏移量的组件?如果是,那么AffineTransformation就是你的朋友。尝试拨打
Graphics2D g = img.createGraphics();
g.transform(AffineTransform.getTranslateInstance(0, -200));
paint(g);
g.dispose();
答案 1 :(得分:1)
您可以使用Screen Image课程。它允许您在创建面板图像时指定矩形。
如果您不想使用该类,请查看代码。根据您的要求,关键是在进行绘画之前翻译图形。