我有一个图像,我读取图像,添加一些图像(如一些文本等)。
这一切都是在JPanel
内完成的。
现在,我想将生成的图像保存到 .png文件。
我认为,有一种方法可以使用ImageIO.write()
但我无法将动态创建的图像转换为BufferedImage。
我有办法解决这个问题吗?
答案 0 :(得分:2)
您可以使用Screen Image类。
它将创建JPanel的BufferedImage。该类还具有将图像写入文件的代码。
答案 1 :(得分:2)
这一切都是在
JPanel
内完成的。
改为BufferedImage
中显示的其他JLabel
。代码可以使用Graphics2D
方法获取BufferedImage.createGraphics()
对象。将图像和文本绘制到新的Graphics2D
实例,然后您可以直接保存新图像以及更改。
答案 2 :(得分:1)
使用以下方法对我有用...
void TakeSnapShot(JPanel panel,String Locatefile){
BufferedImage bi = new BufferedImage(panel.getSize().width, panel.getSize().height,BufferedImage.TYPE_INT_RGB);
panel.paint(bi.createGraphics());
File image = new File(Locatefile);
try{
image.createNewFile();
ImageIO.write(bi, "png", image);
}catch(Exception ex){
}
}