前言
- 代码都上传到GitHub了,这里仅仅是贴出来主要部分,GitHub传送门:https://github.com/fengfanli/draw_poster_echarts
- 海报制作的所有博客和一些问题:
- 总博客:java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
文字换行算法详解
,传送门:java制作海报一:java使用Graphics2D 在图片上写字,文字换行算法详解头像切割成圆形方法详解
,传送门:java制作海报二:java使用Graphics2D 在图片上合成另一个照片,并将照片切割成头像,头像切割成圆形方法详解获取微信二维码详情
,传送门:java制作海报三:获取微信二维码详情,并改变大小,合成到海报(另一张图片)上java BufferedImage 转 InputStream
和png 图片合成到模板(另一个图片)上时,透明部分变成了黑色
,传送门:java制作海报四:java BufferedImage 转 InputStream 上传至OSS。png 图片合成到模板(另一个图片)上时,透明部分变成了黑色java 整合echarts 画出 折线图
,传送门:Graphics2D的RenderingHints方法参数详解,包括解决文字不清晰,抗锯齿问题
,传送门:java制作海报六:Graphics2D的RenderingHints方法参数详解,包括解决文字不清晰,抗锯齿问题项目部署到linux下中文不显示,echarts图上的中文也不显示问题
,传送门:java制作海报七:java Graphics2D 合成图片 在 linux下中文不显示,echarts图上的中文也不显示问题
- 这里的代码都在上面的
GitHub
中
一、需求描述
在 使用 java Graphics2D 进行画图时,有一个配置如下:
这个方法g2d.setRenderingHint()
配置很常见,这个配置也很重要,可以配置抗锯齿,使图片合成变的清晰,不再失真。
以下配置,也可以进行对文字进行配置抗锯齿,解决不清晰问题。
这个方法的配置项,是key value
的形式。
下面进行配置项讲解
二、RenderingHints 配置详解
RenderingHints 类定义了多种着色微调,它们存储在一个映射集的 Graphics2D 对象里。setRenderingHint() 方法的参数是一个键值对的形式。
下面详细介绍各个常用键值的含义:
KEY_ANTIALIASING
决定是否使用抗锯齿。当着色有倾斜角度的线时,通常会得到一组阶梯式的像素排列,使这条线看上去不平滑,经常被称为 锯齿状图形。抗锯齿是一种技术,它设置有倾斜角度的线的像素亮度,以使线看起来更平滑。因此,这个微调是用来决定在着色有倾斜角度的线时是否在减少锯齿状图形上花费时间。可能的值有VALUE_ANTIALIAS_ON(使用抗锯齿)、VALUE_ANTIALIAS_OFF(不使用抗锯齿) 和 VALUE_ANTIALIAS_DEFAULT(默认的抗锯齿)
。KEY_COLOR_RENDERING
控制颜色着色的渲染方式。可能的值有VALUE_COLOR_RENDER_SPEED(追求速度)、VALUE_COLOR_RENDER _QUALITY(追求质量) 和 VALUE_COLOR_RENDER_DEFAULT(默认)
。KEY_DITHERING
控制如何处理抖动。抖动是用一组有限的颜色合成出一个更大范围的颜色的过程,方法是给相邻像素着色以产生不在该组颜色中的新的颜色幻觉。可能的值有VALUE_DITHER_ENABLE(不抖动)、VALUE_DITHER _DISABLE (抖动)和 VALUE_DITHER_DEFAULT(默认)
。KEY_FRACTIONALMETRICS
字体规格。可能的值有VALUE_FRACTIONALMETRICS_ON(启用字体规格)、VALUE_FRACTIONALMETRICS_OFF(禁用字体规格) 和VALUE_FRACTIONALMETRICS _DEFAULT(默认)
。KEY_INTERPOLATION
确定怎样做内插。在对一个源图像做变形时,变形后的像素很少能够恰好对应目标像素位置。在这种情况下,每个变形后的像素的颜色值不得不由周围的像素决定。内插就是实现上述过程。有许多可用的技术,可能的值,按处理时间从最多到最少,是VALUE_INTERPOLATION_BICUBIC、 VALUE_INTERPOLATION_BILINEAR 和 VALUE_INTERPOLATION_NEAREST_NEIGHBOR
。KEY_RENDERING
确定着色技术,在速度和质量之间进行权衡。可能的值有VALUE_RENDERING_SPEED(追求速度)、VALUE_RENDERING _QUALITY(追求质量) 和VALUE_RENDERING_DEFAULT(默认)
。KEY_TEXT_ANTIALIASING
确定对文本着色时是否抗锯齿。可能的值有VALUE_TEXT_ANTIALIASING_ON(使用抗锯齿呈现文本)、VALUE_TEXT_ANTIALIASING _OFF (不使用抗锯齿呈现文本)和VALUE_TEXT_ANTIALIASING _DEFAULT(使用平台默认的文本抗锯齿模式呈现文本)
。KEY_ALPHA_INTERPOLATION
代表 alpha 合成微调的键,该微调可能的值有VALUE_ALPHA_INTERPOLATION_SPEED(追求速度)、VALUE_ALPHA_INTERPOLATION_QUALITY(追求质量)和VALUE_ALPHA_INTERPOLATION_DEFAULT,代表平台缺省值。
KEY_STROKE_CONTROL
笔划规范化控制,可能有的值有VALUE_STROKE_NORMALIZE、VALUE_STROKE_PURE和VALUE_STROKE_DEFAULT