我想将我用JFreeChart创建的图表的PNG嵌入到PDF文档中。这里的问题是,图表的质量非常差。我的目标是拥有300 DPI的PNG。我用Google搜索了将近一个小时,但我找不到解决方案。
有没有办法将生成的图表从JFreeCharts导出为具有300 DPI的PNG(或JPEG)?
答案 0 :(得分:2)
另请查看org.jfree.chart.ChartUtilities#writeScaledChartAsPNG
如果您提供的比例因子为2,则您的图表将以两倍的分辨率呈现。
答案 1 :(得分:1)
从版本1.4开始,JFreeChart
使用ImageIO
提供的png
编码器。作为替代方案,您可以查看com.keypoint.PngEncoder
,其中包括setDpi()
,等。另请参阅org.jfree.chart.encoders.SunPNGEncoderAdapter
和org.jfree.chart.encoders.KeypointPNGEncoderAdapter
。
答案 2 :(得分:0)
您可以使用XChart,因为在特定DPI的高分辨率中导出Charts
是自version 2.2.0以来的新功能。代码看起来像这样:
double[] xData = new double[] { 0.0, 1.0, 2.0 };
double[] yData = new double[] { 2.0, 1.0, 0.0 };
// Create Chart
Chart chart = QuickChart.getChart("Sample Chart", "X", "Y", "y(x)", xData, yData);
// Show it
new SwingWrapper(chart).displayChart();
// Save it
BitmapEncoder.savePNG(chart, "./Sample_Chart.png"); // default 72 DPI
BitmapEncoder.savePNGWithDPI(chart, "./Sample_Chart_300_DPI.png", 300);
免责声明:我是XChart的首席开发人员。我最近遇到了和你一样的问题。我需要300 DPI的图表才能获得科学出版物。欢迎提供反馈!