将动态创建的图像保存到文件。

时间:2014-03-20 01:51:11

标签: java image swing awt

我有一个图像,我读取图像,添加一些图像(如一些文本等)。

这一切都是在JPanel内完成的。

现在,我想将生成的图像保存到 .png文件

我认为,有一种方法可以使用ImageIO.write()

为缓冲图像执行此操作

但我无法将动态创建的图像转换为BufferedImage。

我有办法解决这个问题吗?

3 个答案:

答案 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){  
        }  
    }