【问题标题】:JFreeChart 1.09 renders JPG charts with whole background in RED (or pink)JFreeChart 1.09 以红色(或粉红色)呈现整个背景的 JPG 图表
【发布时间】:2011-09-07 16:51:25
【问题描述】:

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

这样对吗?还是我错过了什么?

非常感谢!

【问题讨论】:

  • 我只想要带有背景的图表,但渲染的图像都有浅红色背景。很烦人。

标签: jsf charts seam jfreechart


【解决方案1】:

完全相同的问题: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);

【讨论】:

    【解决方案2】:

    问题在于 jfreechart 的错误版本 1.09,以及每个 Maven 下载的自动下载的 jcommon-1.012.jar。当我用 Seam 2.2.0.GA 发行版中的 JAR 替换它们时,它们运行良好。现在我可以毫无问题地保存并显示渲染的图像。

    【讨论】:

      【解决方案3】:

      我认为您必须在 Plot 对象上设置背景颜色,例如:

      plot.setBackgroundPaint(Color.WHITE);
      

      【讨论】:

      • 据我记忆,它也可能在图表上。如果剧情背景不够,试试chart.setBackgroundPaint(Color.WHITE)
      • plotBackgroundPaint="white" 已在 jsf 组件折线图上设置。但这没有帮助。正如我上面所说,我没有使用 JFreeChart direckty,而是使用 JSF 组件。除了这个问题,它们都工作正常。
      • 当我尝试从浏览器保存渲染的 JPG 图像并使用照片查看器程序(windows 油漆,办公室图片管理器)显示它们时,程序会说,图像有缺陷或不支持格式,无法显示。但在浏览器上它们会显示出来。
      • 你在什么操作系统上运行?我以前遇到过这个粉红色的背景,但现在想可能它只在 AIX 机器上运行时发生,而在 Windows 上它很好。可能与 UIManager 的默认颜色有关
      猜你喜欢
      • 2010-09-19
      • 1970-01-01
      • 2012-07-29
      • 1970-01-01
      • 1970-01-01
      • 2011-07-06
      • 1970-01-01
      • 2016-01-27
      相关资源
      最近更新 更多