我想將使用JFreeChart創建的圖表的PNG嵌入到PDF文檔中。這裏的問題是,圖表的質量很差。我的目標是擁有300 DPI的PNG。我搜索了近一個小時,但我找不到解決方案。JFreeChart圖表質量更高
有沒有辦法將生成的圖表從JFreeCharts作爲PNG(或JPEG)以300 DPI導出?
我想將使用JFreeChart創建的圖表的PNG嵌入到PDF文檔中。這裏的問題是,圖表的質量很差。我的目標是擁有300 DPI的PNG。我搜索了近一個小時,但我找不到解決方案。JFreeChart圖表質量更高
有沒有辦法將生成的圖表從JFreeCharts作爲PNG(或JPEG)以300 DPI導出?
自版本1.4開始,JFreeChart
使用ImageIO
提供的png
編碼器。或者,您可以查看com.keypoint.PngEncoder
,其中包括setDpi()
,等人。另請參閱org.jfree.chart.encoders.SunPNGEncoderAdapter
和org.jfree.chart.encoders.KeypointPNGEncoderAdapter
。
而且看看org.jfree.chart.ChartUtilities#writeScaledChartAsPNG
如果您提供的2比例因子,圖表會以兩倍的分辨率呈現。
使用比例因子2將字體大小減少2.因此,它不是一個完整的解決方案。 – Uli
您可以使用XChart爲此,因爲出口Charts
在某些DPI的高分辨率是自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的圖表來發表科學出版物。歡迎反饋!
謝謝herrtim,XCharts看起來很棒。我一定會考慮將它用於我的下一個項目。 –
你如何導出圖表? – peshkira
@peshkira目前與ChartUtilities.saveChartAsPNG(新文件(「/用戶/ myuser/test.png」),demo.getChart(),1000,1000);但我當然願意接受任何符合我的要求的建議:) –
只需將它保存在更大的尺寸? 1000x1000應該爲您提供300dpi的3in x 3圖像。 – millimoose