Java生成png文件字体不清晰_java 文本图片字体模糊优化处理
昨天發(fā)現(xiàn)雖然圖片生成字體夠清楚了,但是會(huì)出現(xiàn)少量鋸齒,所以調(diào)整了下,代碼如下:
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
-- 以下為舊的
今天遇到一個(gè)很糾結(jié)的問題,就是用java 生成的圖片字體很是模糊,一開始以為是字體的問題,換了很多字體,例如蘋方,思源黑體,這些平時(shí)用到的開源字體,無論咋處理,都沒效果。
后面老大看了下,覺得是我的畫布又問題,于是添加了一個(gè)參數(shù),實(shí)例如下:
g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB);
然后就ok了,具體代碼如下
/**
* 計(jì)算文本高度
*
* @param content 文本內(nèi)容
* @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;
// 添加對(duì)文字的換行處理
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();
// 設(shè)置文本圖片信息
contentImgInfo.setFontHeight(fontHeight);
contentImgInfo.setContentImgHeight(imgHeight);
contentImgInfo.setLineNum(lineNum);
} catch (Exception e) {
}
return contentImgInfo;
}
java通過freemarker導(dǎo)出包含富文本圖片的word文檔
廢話不多說,進(jìn)入正題! 本文重點(diǎn)在于:對(duì)富文本圖片的導(dǎo)出(基礎(chǔ)的freemarker+word模板導(dǎo)出這里不做詳細(xì)解說哈) 參考文章:http://www.cnblogs.com/liaofeifig ...
web前端圖片加載優(yōu)化,從圖片模糊到清晰的實(shí)現(xiàn)過程
在網(wǎng)頁圖片顯示的時(shí)候,會(huì)發(fā)現(xiàn)許多網(wǎng)站采用了先模糊,然后在慢慢清晰的過程,這樣的加載用戶體驗(yàn)是比較好的,那么如何實(shí)現(xiàn)吶? 默認(rèn)加載2張圖片,一張縮略圖,一張?jiān)瓐D,當(dāng)打開網(wǎng)頁的時(shí)候默認(rèn)只顯示縮略圖,然后我 ...
Manjaro安裝配置美化字體模糊發(fā)虛解決記錄
Manjaro安裝記錄 前言: ? 記錄自己Manjaro18安裝的一些坑,避免下次滿互聯(lián)網(wǎng)找解決方法.在此之前試過Manjaro.Ubuntu.Fedora.linux Mint系統(tǒng)的pac.yum ...
css3新增邊框、陰影、邊框、背景、文本、字體
css3和css有什么區(qū)別?簡(jiǎn)單來講css3是css(層疊樣式表)技術(shù)的升級(jí)版本,css3新特征有很多,例如圓角效果.圖形化邊界.塊陰影與文字陰影.使用RGBA實(shí)現(xiàn)透明效果.漸變效果.使用@Font- ...
Win10 字體模糊解決(DPI縮放禁用),設(shè)置默認(rèn)輸入法英文
電腦壞了 , 換了新電腦, 但是新電腦,死活不能裝win7, 裝都不能裝!!!郁悶了 好多地方字體模糊了,百般設(shè)置都不好看, 后來遠(yuǎn)程桌面到win2008server, 發(fā)現(xiàn),在遠(yuǎn)程桌面里面居然很清晰 ...
Qt在Linux環(huán)境下應(yīng)用程序字體模糊的解決方法(先改成使用默認(rèn)字體,然后使用qtconfig配置)
這兩天一直在用Qt實(shí)現(xiàn)一個(gè)跨平臺(tái)的軟件.軟件之前在Windows上編寫的,后來放到里Ubuntu 10.10下編譯.程序運(yùn)行時(shí)遇到一個(gè)很棘手的問題,界面文本非常模糊.后來在網(wǎng)上查閱了好幾天的資料,經(jīng)歷 ...
HTML學(xué)習(xí)筆記 CSS文本及字體及連接及列表(a標(biāo)簽使用及縮進(jìn)) 案例 第七節(jié) (原創(chuàng))參考使用表
總結(jié)
以上是生活随笔為你收集整理的Java生成png文件字体不清晰_java 文本图片字体模糊优化处理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 你知道最真实的大数据故事吗?13 个大数
- 下一篇: Java编程思想学习(一) 一切都是对象