有人可以就我创建的图表中如何保存图像(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);
}
}
答案 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()
确保情况属实。