JFreeChart 1.09呈现整个背景为红色(或粉红色)的JPG图表

时间:2011-09-07 16:51:25

标签: jsf charts seam jfreechart

我遇到了这个问题,JFreeChart 1.09渲染了整个背景为RED(或粉红色)的JPG图表。我不是直接使用JFreeChart,而是使用Seam JSF taglibs,组件: linechart barchart 。它们都工作正常,只是渲染的JPG图像有浅红色的覆盖层背景。

这样正确吗?或者我错过了什么?

非常感谢!

3 个答案:

答案 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);