JPanel快照并将图像保存在文件中。它显示黑色图像。该怎么办?

时间:2014-10-25 06:46:01

标签: java file jpanel bufferedimage snapshot

BufferedImage image=null;
            try {
                image = new BufferedImage(mypanel.getSize().width, mypanel.getSize().height,BufferedImage.TYPE_INT_RGB);
            } catch (HeadlessException ex) {
                // TODO Auto-generated catch block
                ex.printStackTrace();
            }

            try {
                ImageIO.write(image, "png", new File("D://end12.png"));
            } catch (IOException ef) {
                // TODO Auto-generated catch block
                ef.printStackTrace();
            }

我想将面板图像保存到file.when尝试这样做。它显示一个黑色的图像。我理解的是默认情况下jpanel的背景颜色。但我有一个彩色的jpanel.Can任何一个帮助< / p>

1 个答案:

答案 0 :(得分:4)

您正在创建一个空的BufferedImage,在其上绘制Jpanel使用:

  try {
        BufferedImage image = new BufferedImage(mypanel.getWidth(),
                mypanel.getHeight(), BufferedImage.TYPE_4BYTE_ABGR);
        Graphics g = image.getGraphics();
        mypanel.printAll(g);
        g.dispose();
        ImageIO.write(image, "png", new File("img.png"));
    } catch (Exception e) {
        e.printStackTrace();
    }