如何从图形创建图像?

时间:2016-04-18 08:47:26

标签: java image

有人可以就我创建的图表中如何保存图像(PNG)给我一些建议吗?

这是java程序:

public class GraphingData extends JPanel {
    int[] data = {
             110, 535, 0, 459, 380, 199, 212, 722, 332, 836, 149, 10, 656, 465, 100, 173, 277, 381, 685, 988, 89, 585, 381, 779, 378, 769, 265, 10 
    };
    final int PAD = 20;

    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D)g;
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                            RenderingHints.VALUE_ANTIALIAS_ON);
        int w = getWidth();
        int h = getHeight();

        .......
    }

    public static void main(String[] args) {
        JFrame f = new JFrame();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.add(new GraphingData());
        f.setSize(1000,500);
        f.setLocation(200,200);
        f.setVisible(true);
    }
}

1 个答案:

答案 0 :(得分:0)

将面板当前显示在屏幕上的大小(尺寸等)存储到文件中

BufferedImage bi = new BufferedImage(panel.getSize().width, panel.getSize().height, BufferedImage.TYPE_INT_RGB);
panel.paint(bi.createGraphics());
ImageIO.write(bi, "PNG", new File("path/to/file.png"));

除此之外,不要直接使用作为paintComponent参数给出的图形,而是在其上调用g.create(),如果你已经完成了新的实例调用dispose()。您不应更改有关颜色,转换等的图形对象,并使用create()dispose()确保情况属实。