返回BufferedImage会破坏图像

时间:2015-08-03 13:41:54

标签: java swing

我有一个返回缓冲图像的方法,在图像正常的方法中。但是一旦我尝试调用方法并显示返回的图像,它就会被破坏。

public BufferedImage componentToImage(Component component, Rectangle region)
        throws IOException {

    GraphicsEnvironment ge = GraphicsEnvironment
        .getLocalGraphicsEnvironment();
    GraphicsDevice gd = ge.getDefaultScreenDevice();
    GraphicsConfiguration gc = gd.getDefaultConfiguration();

    BufferedImage bImage = gc.createCompatibleImage(component.getWidth(),

    component.getHeight(), BufferedImage.TYPE_INT_RGB);

    Graphics2D g = bImage.createGraphics();

    component.paint(g);

    g.setColor(component.getForeground());
    g.setFont(component.getFont());

    return bImage;
}

显示图片的代码:

BufferedImage bi = componentToImage(jchartpanel);
ImageIcon icon = new ImageIcon();
icon.setImage(bi);
JOptionPane.showMessageDialog(null, icon);

如果我在方法中运行显示图像代码,它会工作,但返回的图像不会显示。

0 个答案:

没有答案