2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > Java生成png文件字体不清晰_java 文本图片字体模糊优化处理

Java生成png文件字体不清晰_java 文本图片字体模糊优化处理

时间:2021-02-27 13:32:44

相关推荐

Java生成png文件字体不清晰_java 文本图片字体模糊优化处理

昨天发现虽然图片生成字体够清楚了,但是会出现少量锯齿,所以调整了下,代码如下:

g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

-- 以下为旧的

今天遇到一个很纠结的问题,就是用java 生成的图片字体很是模糊,一开始以为是字体的问题,换了很多字体,例如苹方,思源黑体,这些平时用到的开源字体,无论咋处理,都没效果。

后面老大看了下,觉得是我的画布又问题,于是添加了一个参数,实例如下:

g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB);

然后就ok了,具体代码如下

/**

* 计算文本高度

*

* @param content 文本内容

* @param font 文本字体

* @param width 文本的行宽

* @param lineHeight 文本行高

*/

public static ContentImgInfo effectiveHeight(String content, Font font, int width, int lineHeight) {

int imgHeight = 0;

ContentImgInfo contentImgInfo = new ContentImgInfo();

try {

BufferedImage image = new BufferedImage(100, 300, BufferedImage.TYPE_INT_RGB);

Graphics2D g = image.createGraphics();

g.setFont(font);

g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB);

FontMetrics fm = g.getFontMetrics(font);

// 获取字体高度

int fontHeight = fm.getHeight() + lineHeight;

// 添加对文字的换行处理

char firstChar = "中文".charAt(0);

int charWidth = fm.charWidth(firstChar); // 字符的宽度

int num = (int) Math.ceil(width / charWidth);

int lineNum = EffHelper.ceil(content.length(), num) + 1;

imgHeight = lineNum * fontHeight;

g.dispose();

// 设置文本图片信息

contentImgInfo.setFontHeight(fontHeight);

contentImgInfo.setContentImgHeight(imgHeight);

contentImgInfo.setLineNum(lineNum);

} catch (Exception e) {

}

return contentImgInfo;

}

java通过freemarker导出包含富文本图片的word文档

废话不多说,进入正题! 本文重点在于:对富文本图片的导出(基础的freemarker+word模板导出这里不做详细解说哈) 参考文章:/liaofeifig ...

web前端图片加载优化,从图片模糊到清晰的实现过程

在网页图片显示的时候,会发现许多网站采用了先模糊,然后在慢慢清晰的过程,这样的加载用户体验是比较好的,那么如何实现呐? 默认加载2张图片,一张缩略图,一张原图,当打开网页的时候默认只显示缩略图,然后我 ...

Manjaro安装配置美化字体模糊发虚解决记录

Manjaro安装记录 前言: ​ 记录自己Manjaro18安装的一些坑,避免下次满互联网找解决方法.在此之前试过Manjaro.Ubuntu.Fedora.linux Mint系统的pac.yum ...

css3新增边框、阴影、边框、背景、文本、字体

css3和css有什么区别?简单来讲css3是css(层叠样式表)技术的升级版本,css3新特征有很多,例如圆角效果.图形化边界.块阴影与文字阴影.使用RGBA实现透明效果.渐变效果.使用@Font- ...

Win10 字体模糊解决(DPI缩放禁用),设置默认输入法英文

电脑坏了 , 换了新电脑, 但是新电脑,死活不能装win7, 装都不能装!!!郁闷了 好多地方字体模糊了,百般设置都不好看, 后来远程桌面到winserver, 发现,在远程桌面里面居然很清晰 ...

Qt在Linux环境下应用程序字体模糊的解决方法(先改成使用默认字体,然后使用qtconfig配置)

这两天一直在用Qt实现一个跨平台的软件.软件之前在Windows上编写的,后来放到里Ubuntu 10.10下编译.程序运行时遇到一个很棘手的问题,界面文本非常模糊.后来在网上查阅了好几天的资料,经历 ...

HTML学习笔记 CSS文本及字体及连接及列表(a标签使用及缩进) 案例 第七节 (原创)参考使用表

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。