gpt4 book ai didi

java - JAVA : getSubimage() function 的奇怪行为

转载 作者:行者123 更新时间:2023-12-01 09:48:20 39 4
gpt4 key购买 nike

你好,

我正在运行以下代码来制作 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。我不知道为什么?以前有人遇到过这种情况吗?第二部分 - 宽度和高度确实对图像有影响,我可以根据需要将其缩小 - 这很好。但光栅的左上角“开始”不会移动。

这是一个错误吗?

注意:有趣的是,当我将其设置为“OFFSET + WIDTH > ORIGINAL”时,我收到一个错误 - 这是合乎逻辑的,但仍然不会“移动”

我是不是错过了什么?

最佳答案

你可以试试这个

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);

关于java - JAVA : getSubimage() function 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37798598/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com