我有一个图像,我阅读图像,添加一些东西到图像(如一些文本等)。
所有这些我都在JPanel
中完成。
现在,我想将生成的图像保存到. png文件中。
我认为,有一种方法可以使用ImageIO. write()
为缓冲图像执行此操作
但是我无法将动态创建的图像转换为BufferedImage。
有什么办法让我去做这件事吗?
您可以使用屏幕图像类。
它将为您的JPanel创建一个BufferedImage。该类还有将图像写入文件的代码。
所有这些我都在JPanel
中完成。
改为在JLabel
中显示的另一个BufferedImage
中执行此操作。代码可以使用BufferedImage. createGraphics()
方法获取Graphics2D
对象。将图像和文本绘制到新的Graphics2D
实例中,然后可以直接保存新图像以及更改。
使用以下方法对我有用…
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){
}
}