java cleartype_ClearType通俗解释

在解决了IE9字体模糊的问题后,我又继续研究了一下Windows的字体渲染方式,还动手编写了一个程序,这里做一个总结。

Windows的字体渲染类型有五种:

SingleBitPerPixel

SingleBitPerPixelGridFit

AntiAlias

AntiAliasGridFit

ClearTypeGridFit

它们之间的差别如何呢?我写了个程序,大家可以通过这个链接下载到,运行一下就看到效果了。

“+”和“-”可调整字体大小,右键呼出菜单可以改变字体名称和字体颜色,显示效果如下:

bce39998885d5f793293695b82127e9a.png

当然了,这张图是我用放大镜放大后的结果,这样更加明显一些嘛。

其中的System Default在我的系统中其实是“Single Bit Per Pixel Grid Fit”,大家可以看到是一样的显示效果,黑色的字体也就用黑色来显示(RGB(0,0,0)),而不会插值,当然了,“Single Bit Per Pixel”这种方式也是不会插值的,这两者的不同之处在于Grid Fit是经过网格校正的,所以显示出来的字体更加工整,大家可以看看“宋体”字,在12点大小的显示效果是最棒的。

Anti Alias也就是抗锯齿了,实际渲染出来的结果会被插值,黑色的字体可能会被插入灰色的像素;Anti Alias Grid Fit是Anti Alias的加强版,经过网格校正,显示效果更好。

而Clear Type跟上面的插值就不一样了,大家可以看到黑色的字可能会被插入浅蓝色,土黄色等像素。

需要声明一下的是我个人相当反对“插值”,因为这样会让字体显示变得模糊,不锐利,这对我的眼睛来说简直是折磨……所以到目前为止,我都是想尽一切办法把这种模糊的字体去掉的,但这个很难,因为很多软件在渲染字体的时候都直接指定了如ClearType这种插值渲染模式,而不是使用系统默认,所以你即便关掉了全局的ClearType效果,还是会看到大量“模糊”的字体。

但有些人却认为ClearType在自己的显示器上显示得很好,这是为什么呢?

经过初步分析,我认为:一般来说,显示器DPI越高,Clear Type的显示效果越好。这里暂时就不岔开了,关于DPI的详细内容请参考我以前的博文:

我这里给出一张图,png的,以100%的方式显示这张图,如果你看到第二根柱子里的颜色是很均匀的灰度渐变色,那么估计ClearType能够在你的显示器上有很不错的效果;反之,如果你看到的是很明显的蓝红黄三种渐变色,那么估计ClearType在你的显示器上显示效果很糟糕:

bd43a18b394ee768006499ed6cd3b7e9.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值