我遇到了这个问题,JFreeChart 1.09渲染了整个背景为RED(或粉红色)的JPG图表。我不是直接使用JFreeChart,而是使用Seam JSF taglibs,组件: linechart 和 barchart 。它们都工作正常,只是渲染的JPG图像有浅红色的覆盖层背景。
这样正确吗?或者我错过了什么?
非常感谢!
答案 0 :(得分:5)
完全相同的问题:JPEG渲染上的红色/粉红色背景。 PNG很好。 我尝试了几个不同版本的jfreechart和jcommon没有任何运气。
我最终在创建缓冲图像时使用设置为RGB的imageType参数解决了这个问题。
我有这段代码:
BufferedImage buf = chart.createBufferedImage(320, 200, null);
response.setContentType("image/jpeg");
ChartUtilities.writeBufferedImageAsJPEG(response.getOutputStream(), 0.75f, buf);
我通过在第一行添加BufferedImage.TYPE_INT_RGB参数解决了这个问题:
BufferedImage buf = chart.createBufferedImage(320, 200,
BufferedImage.TYPE_INT_RGB, null);
答案 1 :(得分:1)
问题是jfreechart的错误版本1.09,以及每个Maven下载的jcommon-1.012.jar automatica。正如我用Seam 2.2.0.GA发行版的JAR替换它们一样,它们运行良好。现在我可以保存并显示渲染图像而没有任何问题。
答案 2 :(得分:0)
我认为您必须在Plot对象上设置背景颜色,例如:
plot.setBackgroundPaint(Color.WHITE);