我制作了一个屏幕快照,并尝试获取图像的一部分,当我尝试将其保存到文件不起作用时。 将竭诚为得到任何建议如何将光栅转换为RenderedImage
Rectangle Rect = new Rectangle(10, 10, 50, 50);
File file = new File("D:\\output.png");
RenderedImage renderedImage = SwingFXUtils.fromFXImage(browser.snapshot(null, null), null);
try {
ImageIO.write((RenderedImage) renderedImage.getData(Rect),"png",file);
} catch (IOException ex { Logger.getLogger(JavaFXApplication3.class.getName()).log(Level.SEVERE, null, ex);
}
所以在这里我终于和它的作品
File file = new File("D:\\output.png");
BufferedImage image = SwingFXUtils.fromFXImage(browser.snapshot(null, null), null);
try {
ImageIO.write(image.getSubimage(100, 100, 50, 50) , "png", file);
} catch (IOException ex) {
Logger.getLogger(JavaFXApplication3.class.getName()).log(Level.SEVERE, null, ex);
}
能否详细说明“不起作用”。输出是不是你所期望的或者是否会抛出异常? –
它没有给我任何输出图像,并没有引发异常。程序刚刚卡住了 – Jason
*“很乐意得到任何建议”* 1)为了更快地获得更好的帮助,请发布[SSCCE](http://sscce.org/)。 2)所述任务可以在J2SE中完成。不需要'SwingFXUtils'。 3)*“它不起作用”*可能是累了。不要模糊在这一点上。复制/粘贴结果的错误或异常输出,或者准确描述发生了什么,以及您预期会发生什么。 4)对代码块使用一致的逻辑缩进。代码的缩进旨在帮助人们理解程序流程! –