zoukankan      html  css  js  c++  java
  • 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在你的显示器上显示效果很糟糕:

  • 相关阅读:
    jsonp跨域+ashx(示例)
    小菜学习Winform(六)剪切板和拖放复制
    小菜学习Winform(五)窗体间传递数据
    小菜学习Winform(四)MDI窗体(附示例)
    小菜学习设计模式(四)—原型(Prototype)模式
    docker常用命令
    confluence知识管理、团队协作软件
    摩拜单车模式优于OFO双向通信才能被认可
    爬虫解决网页重定向问题
    linux 7z 命令编译安装,mac安装p7zip
  • 原文地址:https://www.cnblogs.com/guogangj/p/2373489.html
Copyright © 2011-2022 走看看