会员登录
java.awt.Graphics2D抗锯齿(字体平滑)处理
来源:互联网 作者:未知 时间:2009-07-11 02:06:21 点击:112012 评论:6
本文地址:http://pslib.com/index.php?mod=skill&action=detail&id=43895 [复制]

由于项目要在图片中动态加入文字,没想到字体有毛边,找了N多文章没找到解决方法,最后用英文关键字在google上找到了,唉,为什么大家对这些都不关心呢?
Java 2D - smooth text fonts
http://forums.sun.com/thread.jspa?threadID=739493
 

其实就是多加一个方法而已
Graphics2D g = image.createGraphics();
//让字体变平滑
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

 

 后来又找到了一个中文说明:

http://www.zeali.net/entry/494
Windows下的 ClearType 能使字体看上去更平滑,但似乎对于 java 小程序里面的文字没有作用。不过可以用 Java 2D API 提供的文本处理功能进行美化。Java 2D API 的文本功能包括:
• 使用抗锯齿处理和微调(hinting)以达到更好的输出质量
• 可以使用系统安装的所有字体
• 可以将对图形对象的操作(旋转、缩放、着色、剪切等等)应用到文本上。
• 支持向字符串添加内嵌属性(如字体、尺寸、深浅,甚至图像)
• 支持双向文本(启用从右到左的字符顺序,就象您在阿拉伯语和希伯来语中可能遇到的一样)
• 第一光标和第二光标能够浏览同时包含从右到左和从左到右字符顺序的文本。
• 先进的字体度量功能,超过旧的 java.awt.FontMetrics 类中的相应功能
• 排版功能可以实现单词换行和调整多行文本
这个 API 的核心是由 java.awt.Graphics2D 类提供的,该类是 java.awt.Graphics 的一个子类。API 的其它部分由 java.awt 层次结构中的其它包提供,包括 java.awt.color 、 java.awt.font 和 java.awt.geom 。对 Graphics2D 使用 setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); 以达到边缘平滑的效果。
 

 

 

最新评论
共有 6 位网友发表了评论