`

Jfreechart生成JPEG格式图片出现不正常的背景色

 
阅读更多

 

版本1:jfreechart-1.0.9

 

生成图片代码如下:

 

 

ChartUtilities.writeChartAsJPEG(out, chart, 500, 400);

 

 

得到的图片显示如下,出现不正常的红色背景

 

 

jfreechart-1.0.9生成图片各主要代码如下:

 

JFreeChart类

 

public BufferedImage createBufferedImage(int width, int height, ChartRenderingInfo info)
{
     return createBufferedImage(width, height, 2, info);
}

public BufferedImage createBufferedImage(int width, int height, int imageType, ChartRenderingInfo info)
{
     BufferedImage image = new BufferedImage(width, height, imageType);
     Graphics2D g2 = image.createGraphics();
     draw(g2, new Rectangle2D.Double(0.0D, 0.0D, width, height), null, info);
     g2.dispose();
     return image;
}
 

如上所述,创建BufferedImage的时候,使用的iamgeType是2,也就是BufferedImage.TYPE_INT_ARGB格式。

 

解决方法一:手动设置imageType为1(即BufferedImage.TYPE_INT_RGB),如下代码:

 

 

BufferedImage bi = chart.createBufferedImage(500, 400, 1, null);
ImageIO.write(bi, "jpeg", out);
 

 

解决方法二:升级jfreechart到1.0.10,该版本中JFreeChart中的createBufferedImage代码如下:

 

 

public static void writeChartAsJPEG(OutputStream out, float quality, JFreeChart chart, int width, int height, ChartRenderingInfo info)
  throws IOException                                                                                                                  
{                                                                                                                                     
  if (chart == null) {                                                                                                                
    throw new IllegalArgumentException("Null 'chart' argument.");                                                                     
  }                                                                                                                                   
  BufferedImage image = chart.createBufferedImage(width, height, 1, info);                                                                                                                                        
  EncoderUtil.writeBufferedImage(image, "jpeg", out, quality);                                                                        
}

 

 1.0.10版本在调用JFreeChart的createBufferedImage默认使用了imageType为BufferedImage.TYPE_INT_RGB

 

调整后生成的图片如下:

 

 

  • 大小: 31.1 KB
  • 大小: 40.5 KB
分享到:
评论

相关推荐

    JFreeChart生成图片并显示

    《JFreeChart生成图片并显示》 在Java开发中,我们常常需要生成各种图表来直观地展示数据,比如折线图、柱状图、饼图等。JFreeChart是一个强大的开源Java库,它提供了丰富的图表生成功能,可以满足开发者在各种应用...

    jfreechart生成图片及导出pdf 、excel

    在这个“jfreechart生成图片及导出pdf、excel”的主题中,我们将深入探讨如何利用JFreeChart来生成这些图表,并将其导出为PDF和Excel格式。 1. **JFreeChart基本使用** JFreeChart库提供了多种图表类型,包括...

    JfreeChart-雷达图与导出

    本篇将深入探讨如何利用JFreeChart生成雷达图以及相关的数据导出功能。 **雷达图的使用** 雷达图是一种多维数据可视化工具,特别适合于比较多个变量在同一标准下的表现。在JFreeChart中,创建雷达图主要分为以下几...

    java生成报表JFreeChart

    此外,还可以导出生成的图表为PDF、SVG、JPEG等多种格式,方便在不同的应用场景中使用。 在实际开发中,JFreeChart与Swing或JavaFX等GUI框架结合,可以构建出强大的数据分析界面。例如,将图表嵌入到JPanel或JFrame...

    jfreechart生成报表图片.zip

    这个“jfreechart生成报表图片.zip”压缩包包含了一组资源,可以帮助你快速创建各种类型的图表,如柱状图、饼图、折线图等,非常适合用于数据可视化。 1. **JFreeChart库介绍**: JFreeChart是开源的Java库,它...

    jfreechart生成单组3D变色柱状图

    #### 1.1 标题:“jfreechart生成单组3D变色柱状图” 标题明确指出本篇教程的目标是使用JFreeChart库生成一种特定类型的图表——3D变色单组柱状图。这里的关键信息包括: - **jfreechart**:一个Java图形绘制类库。...

    JFreeChart生成饼图

    ### JFreeChart生成饼图知识点详解 #### 一、引言 在Web开发中,图表是一种非常有效的数据可视化工具,能够帮助用户更直观地理解数据。`JFreeChart`是Java平台上的一个开源图表库,提供了丰富的图表类型,包括柱状...

    Freemarker导出word示例,包括jfreechart图表

    4. 使用JFreeChart生成图表并保存为图片文件。 5. 在生成的Word文档中,确保图表图像正确显示。 最后,压缩包中的"FreemarkerWord"可能包含了以下文件: - 一个或多个Freemarker模板文件(.ftl),定义了Word文档的...

    JFreeChart生成3D饼状图及柱状图

    例如,`ChartUtilities.saveChartAsJPEG()`方法可以将图表保存为JPEG格式,需要指定图表、输出文件的路径和图片的宽度和高度。 在实际操作中,我们需要先创建数据集,然后根据数据集生成图表,最后将图表保存到指定...

    struts2+MySQL+jfreechart生成带热点

    在"struts2+MySQL+jfreechart生成带热点"的场景中,我们可以构建一个Web应用,该应用能够从MySQL数据库中检索数据,然后使用JFreeChart生成包含热点的图表。热点是指图表上的区域,当用户点击这些区域时,可以触发...

    JfreeChart生成报表[定义].pdf

    《JFreeChart生成报表详解》 在现代软件开发中,数据可视化已经成为不可或缺的一部分,尤其是在Web应用程序中。JFreeChart作为一款强大的Java图表库,能够帮助开发者轻松生成各种类型的图表,适用于网页、应用和...

    使用 jfreechart 生成 曲线、柱状图、饼状图、分布图 展示到JSP

    为了将图表展示到JSP页面,我们需要将`JFreeChart`对象转换成可以在Web环境中显示的格式,通常是JPEG或PNG图片。这可以通过`ChartUtilities`类实现: ```java response.setContentType("image/png"); ...

    用jfreechart来生成统计图表.doc

    最后,我们将饼图保存为 JPEG 图片文件。 jFreeChart 提供了丰富的定制选项,包括但不限于: 1. 调整图表的颜色和样式。 2. 自定义轴标签和标签格式。 3. 添加图例和工具提示。 4. 雷达图、折线图、散点图等多种...

    JFreeChart画曲线图

    4. **渲染和输出**:最后,你可以将图表渲染为图片(如JPEG或PNG),或者直接显示在Swing组件中,如`JFrame`或`JPanel`。 在`jfreechartDemo`这个示例中,你可能会看到如何创建一个包含多条曲线的图表,并且在每个...

    JFreeChart

    2. **绘制图表**:利用JFreeChart生成所需的图表,将其保存为图像文件。 3. **插入图表到工作表**:通过POI将图像文件作为单元格内容插入到Excel工作表中。 4. **数据更新**:当数据发生变化时,重新生成图表并替换...

    jfreechart中文文档和jar包

    这通常需要理解HTTP响应、图片流的概念,以及如何将JFreeChart生成的BufferedImage对象转换为可以在浏览器中显示的图像格式,如JPEG或PNG。 **lib** 文件夹: 这个文件夹很可能包含了JFreeChart库的jar文件,以及...

    java里用JFreeChart画柱状图、折线图、雷达图

    在Java编程环境中,JFreeChart库是一...此外,它还支持导出图表为各种格式(如PNG、JPEG、PDF等),方便集成到报告或者Web应用中。通过熟练掌握JFreeChart库,开发者能够轻松地为Java项目增添高质量的数据可视化功能。

    JFreeChart水晶报表制作

    由于JFreeChart生成的是图片,我们可以通过保存为PNG或JPEG格式的图片文件,然后在水晶报表中添加图片控件来显示。另外,可以使用水晶报表的“自定义代码”功能,通过Java或.NET代码直接生成JFreeChart并将其插入到...

Global site tag (gtag.js) - Google Analytics