ClearType通俗解释

 

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

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

  • SingleBitPerPixel
  • SingleBitPerPixelGridFit
  • AntiAlias
  • AntiAliasGridFit
  • ClearTypeGridFit

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

https://files.cnblogs.com/guogangj/DrawTextDemo.zip

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

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

其中的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的详细内容请参考我以前的博文:

http://www.cppblog.com/guogangj/archive/2010/06/03/117096.html

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

posted @   guogangj  阅读(1155)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示