JFreeChart로 만든 차트의 PNG를 PDF 문서에 포함하려고합니다. 여기서 문제는 차트의 품질이 매우 낮다는 것입니다. 내 목표는 300DPI의 PNG를 사용하는 것입니다. 거의 1 시간 씩 인터넷 검색을했는데 해결책을 찾지 못했습니다.JFreeChart 차트의 품질 향상
생성 된 차트를 JFreeCharts에서 300DPI의 PNG (또는 JPEG) 형식으로 내보내는 방법이 있습니까?
JFreeChart로 만든 차트의 PNG를 PDF 문서에 포함하려고합니다. 여기서 문제는 차트의 품질이 매우 낮다는 것입니다. 내 목표는 300DPI의 PNG를 사용하는 것입니다. 거의 1 시간 씩 인터넷 검색을했는데 해결책을 찾지 못했습니다.JFreeChart 차트의 품질 향상
생성 된 차트를 JFreeCharts에서 300DPI의 PNG (또는 JPEG) 형식으로 내보내는 방법이 있습니까?
버전 1.4부터 JFreeChart
은 ImageIO
으로 제공되는 png
인코더를 사용합니다. 대신 com.keypoint.PngEncoder
(setDpi()
, 외)을 볼 수 있습니다. org.jfree.chart.encoders.SunPNGEncoderAdapter
및 org.jfree.chart.encoders.KeypointPNGEncoderAdapter
도 참조하십시오. 당신이 2의 규모 계수 차트는 두 배의 해상도로 렌더링됩니다를 제공하는 경우
스케일 인수 2를 사용하면 글꼴 크기가 2 씩 줄어 듭니다. 따라서 완벽한 해결책은 아닙니다. – Uli
특정 DPI에서 고해상도로 Charts
을 내보내기 할 때 version 2.2.0부터 새로운 기능인 XChart을 사용할 수 있습니다. 코드는 다음과 같습니다.
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 (새 파일 ("/ Users/myuser/test.png"), demo.getChart(), 1000, 1000); 하지만 물론 내 요구 사항과 함께 작동하는 제안에 열려 있습니다 :) –
그냥 더 큰 크기로 저장 하시겠습니까? 1000x1000은 3in x 3 이미지의 경우 300dpi를 제공해야합니다. – millimoose