2009年1月30日星期五

IE7中ClearType自动关闭的问题

我的系统是Windows XP,装上了微软雅黑并打开ClearType。前些日子更新了IE7之后,很快我就发现,有很多页面(如百度空间)上的雅黑中文显示不正常,发虚,很模糊,而英文却又全是锯齿,总之没法看。

拜了Google大神,都说是IE7默认打开了ClearType导致中文发虚,可我这里的问题明明是ClearType被关了才会这样。小白太多,把Google都淹了,于是只好靠自己。在百度空间上随便找一个页面保存下来,一点一点找,总算是确定了问题所在:“FILTER: none”和“ZOOM: 1”。

有了关键字才好Google。IEBlog上有一篇《Notes on the interaction of ClearType with DXTransforms in IE7》,说是启用了filter就会强制关闭ClearType。IE 透明度失效和 zoom:1 有關?还提及,会出问题的还并不仅仅是ZOOM。

问题找到了,但在IE7内部似乎没办法解决。不过还是有一个曲线救国的法子,那就是用GDI++。GDI++是一个日本人开发的字体渲染工具,借助他可以把Linux下的FreeType2搬到Windows里边用。既然渲染引擎都被换掉,ClearType关不关也就无所谓了。

GDI++日文WIKI上找到并下载gdi0850.zipgdi0869.7z,解到同一个目录,然后用这样的命令启动IE:"gdi++.exe" "C:\Program Files\Internet Explorer\iexplore.exe"

下图中左边的窗口是ClearType被强制关闭的效果,右边是使用GDI++后的效果:

GDI++早已停止开发,但因为其是开源软件,所以有很多修改版,有点乱。有兴趣的话就去拜Google大神吧,这东西会很是需要一番折腾。

用了一段时间IE7,感觉也没有找到值得升级的理由。IE7不比IE6快,增加的功能我也不需要,问题还比IE6多。至于说标准,时至今日IE6还有20%以上市场占有率,有人敢无视?未来会有IE6被淘汰的一天,但显然不是现在。

没有评论 :