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

相关文章

hevc和H.264格式的区别

HEVC(High Efficiency Video Coding)和H.264(也称为Advanced Video Coding,AVC)都是视频压缩标准,但它们之间存在一些显著的区别,主要集中在压缩效率、资源需求和兼容性方面。 压缩效率 HEVC,也被称为H.265,提供了比H.264更高的压缩效率。这意味着在相同的视频质量下,HEVC能够以大约一半的比特率进行编码,从而减少存储空间需求和

JAVA读取MongoDB中的二进制图片并显示在页面上

1:Jsp页面: <td><img src="${ctx}/mongoImg/show"></td> 2:xml配置: <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001

android 带与不带logo的二维码生成

该代码基于ZXing项目,这个网上能下载得到。 定义的控件以及属性: public static final int SCAN_CODE = 1;private ImageView iv;private EditText et;private Button qr_btn,add_logo;private Bitmap logo,bitmap,bmp; //logo图标private st

在服务器上浏览图片

@StarSky 2018-10-26 15:09 字数 15971 阅读 28 https://www.zybuluo.com/StarSky/note/1294871 来源 2018-09-27 线上服务器安装 imgcat Tool   2018-09-27 线上服务器安装 imgcat 0. 准备文件:iterm2_shell_integration.bash1. 在有权限

FastAdmin/bootstrapTable 表格中生成的按钮设置成文字

公司有个系统后台框架用的是FastAdmin,后台表格的操作栏按钮只有图标,想要设置成文字。 查资料后发现其实很简单,主需要新增“text”属性即可,如下 buttons: [{name: 'acceptcompany',title: '复核企业',text:'复核企业',classname: 'btn btn-xs btn-primary btn-dialog',icon: 'fa fa-pe

BD错误集锦8——在集成Spring MVC + MyBtis编写mapper文件时需要注意格式 You have an error in your SQL syntax

报错的文件 <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.yuan.dao.YuanUserDao"><!

el-upload 上传图片及回显照片和预览图片,文件流和http线上链接格式操作

<div v-for="(info, index) in zsjzqwhxqList.helicopterTourInfoList" :key="info.id" >编辑上传图片// oss返回线上地址http链接格式:<el-form-itemlabel="巡视结果照片":label-width="formLabelWidth"><el-upload:action="'http:

PHP生成csv格式Excel,秒级别实现excel导出功能

防止报超内存,兼容中文,兼容科学技术法。 爽。。。。很爽。。。。 /*** 告诉浏览器下载csv文件* @param string $filename*/public static function downloadCsv($data, $filename, $encoding = 'utf-8'){header("Content-type: text/csv");header("Conten

PHP 读取或生成大的Excel

场景,在很多情况下,需要读取Excel文件。 常用的有PHPExcel包或者使用 maatwebsite/excel 包 但是使用这个包读取或生成excel,如果excel文件过大,很容易出现超内存情况。 解决方法: 上传:要求上传者使用.csv 文件上传。然后使用php自带的 fgetcsv()函数来读取文件。http://php.net/manual/zh/function.fgetc

3D模型相关生成

3D模型相关生成 1. DreamFusion Model DreamFusion Model 是一种将文本描述转化为三维模型的技术。你可以想象它是一个“魔法翻译器”,你告诉它一个场景或物体的描述,比如“一个飞翔的龙”,它就能生成一个相应的 3D 模型。 原理: 文本到图像生成:DreamFusion 首先将文本描述转化为一系列可能的 2D 图像。这部分利用了预训练的扩散模型(如 DALL