你好,
我正在运行以下代码来制作我的JPanel的截图。
private void makePanelImage(Component panel, String saveAs) {
Dimension size = panel.getSize();
BufferedImage image = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_RGB);
// CROP
// BufferedImage cropped = image.getSubimage(9, 31, 2459, 3467);
BufferedImage cropped = image.getSubimage(1800, 2000, 500, 700);
Graphics2D g2 = cropped.createGraphics();
panel.paint(g2);
saveAs = saveAs + ".png";
try {
ImageIO.write(cropped, "png", new File(saveAs));
System.out.println("Image Saved: " + saveAs);
} catch (Exception e) {
e.printStackTrace();
}
}
有问题的部分是:
BufferedImage cropped = image.getSubimage(1800, 2000, 500, 700);
无论我将X和Y设置为 - 它始终被视为忽略。因为它会是0和0.我不明白为什么?有没有人遇到过这个?第二部分 - 宽度和高度确实对图像产生影响,我可以将它缩小到我想要的程度 - 这很好。但是光栅WONT的左上角“开始”移动。
这是一个错误吗?
注意:有趣的是,我将它设置为OFFSET + WIDTH> ORIGINAL我收到一个错误 - 这是合乎逻辑的,但它仍然不会被“移动”
我在这里想念一下吗?
答案 0 :(得分:1)
你可以试试这个
BufferedImage image = new BufferedImage(panel.getWidth(), panel.getHeight(), BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = image.createGraphics();
panel.paint(g2);
BufferedImage cropped = image.getSubimage(1800, 2000, 500, 700);