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

2024-01-27 10:38

本文主要是介绍jfreechart 生成JPEG格式图片出现不正常的背景色,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

版本1:jfreechart-1.0.9

 

生成图片代码如下:

 

 

Java代码 

 收藏代码

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

 

 

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

 

 

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

 

JFreeChart类

 

Java代码 

 收藏代码

  1. public BufferedImage createBufferedImage(int width, int height, ChartRenderingInfo info)  
  2. {  
  3.      return createBufferedImage(width, height, 2, info);  
  4. }  
  5.   
  6. public BufferedImage createBufferedImage(int width, int height, int imageType, ChartRenderingInfo info)  
  7. {  
  8.      BufferedImage image = new BufferedImage(width, height, imageType);  
  9.      Graphics2D g2 = image.createGraphics();  
  10.      draw(g2, new Rectangle2D.Double(0.0D, 0.0D, width, height), null, info);  
  11.      g2.dispose();  
  12.      return image;  
  13. }  

 

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

 

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

 

 

Java代码 

 收藏代码

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

 

 

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

 

 

Java代码 

 收藏代码

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

 

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

 

调整后生成的图片如下:

 

 

这篇关于jfreechart 生成JPEG格式图片出现不正常的背景色的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/649985

相关文章

使用Python自动化生成PPT并结合LLM生成内容的代码解析

《使用Python自动化生成PPT并结合LLM生成内容的代码解析》PowerPoint是常用的文档工具,但手动设计和排版耗时耗力,本文将展示如何通过Python自动化提取PPT样式并生成新PPT,同时... 目录核心代码解析1. 提取 PPT 样式到 jsON关键步骤:代码片段:2. 应用 JSON 样式到

SpringBoot实现二维码生成的详细步骤与完整代码

《SpringBoot实现二维码生成的详细步骤与完整代码》如今,二维码的应用场景非常广泛,从支付到信息分享,二维码都扮演着重要角色,SpringBoot是一个非常流行的Java基于Spring框架的微... 目录一、环境搭建二、创建 Spring Boot 项目三、引入二维码生成依赖四、编写二维码生成代码五

Java如何根据文件名前缀自动分组图片文件

《Java如何根据文件名前缀自动分组图片文件》一大堆文件(比如图片)堆在一个目录下,它们的命名规则遵循一定的格式,混在一起很难管理,所以本文小编就和大家介绍一下如何使用Java根据文件名前缀自动分组图... 目录需求背景分析思路实现代码输出结果知识扩展需求一大堆文件(比如图片)堆在一个目录下,它们的命名规

将图片导入Python的turtle库的详细过程

《将图片导入Python的turtle库的详细过程》在Python编程的世界里,turtle库以其简单易用、图形化交互的特点,深受初学者喜爱,随着项目的复杂度增加,仅仅依靠线条和颜色来绘制图形可能已经... 目录开篇引言正文剖析1. 理解基础:Turtle库的工作原理2. 图片格式与支持3. 实现步骤详解第

在React聊天应用中实现图片上传功能

《在React聊天应用中实现图片上传功能》在现代聊天应用中,除了文字和表情,图片分享也是一个重要的功能,本文将详细介绍如何在基于React的聊天应用中实现图片上传和预览功能,感兴趣的小伙伴跟着小编一起... 目录技术栈实现步骤1. 消息组件改造2. 图片预览组件3. 聊天输入组件改造功能特点使用说明注意事项

Android与iOS设备MAC地址生成原理及Java实现详解

《Android与iOS设备MAC地址生成原理及Java实现详解》在无线网络通信中,MAC(MediaAccessControl)地址是设备的唯一网络标识符,本文主要介绍了Android与iOS设备M... 目录引言1. MAC地址基础1.1 MAC地址的组成1.2 MAC地址的分类2. android与I

使用Python开发Markdown兼容公式格式转换工具

《使用Python开发Markdown兼容公式格式转换工具》在技术写作中我们经常遇到公式格式问题,例如MathML无法显示,LaTeX格式错乱等,所以本文我们将使用Python开发Markdown兼容... 目录一、工具背景二、环境配置(Windows 10/11)1. 创建conda环境2. 获取XSLT

PyQt5+Python-docx实现一键生成测试报告

《PyQt5+Python-docx实现一键生成测试报告》作为一名测试工程师,你是否经历过手动填写测试报告的痛苦,本文将用Python的PyQt5和python-docx库,打造一款测试报告一键生成工... 目录引言工具功能亮点工具设计思路1. 界面设计:PyQt5实现数据输入2. 文档生成:python-

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

关于MongoDB图片URL存储异常问题以及解决

《关于MongoDB图片URL存储异常问题以及解决》:本文主要介绍关于MongoDB图片URL存储异常问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录MongoDB图片URL存储异常问题项目场景问题描述原因分析解决方案预防措施js总结MongoDB图