搜狗输入法是不是不支持ClearType啊?
为什么开了ClearType之后,在输入法框里把字体改成微软雅黑
效果特别差呢?
前两天和版上的一些朋友讨论了一下搜狗输入法不支持ClearType的问题
这个问题在3.0Beta2中依然存在,就是尽管系统已经开启了ClearType,但是在
搜狗输入法中并没有这种效果,感兴趣的朋友们不妨试试。我在我的台式机和笔记本
上都试过了,都有这个问题。
经过研究发现是搜狗拼音在绘制输入框时调用的CreateFontIndirectW函数时
将lfQuality项设置成了ANTIALIASED_QUALITY(在3.0Beta2中),在3.0Beta1中
这个值是NONANTIALIASED_QUALITY,造成字体不支持ClearType的效果。
解决的办法是将这两项设置成5或者是0即可。
对3.0Beta2来说,将0x22E46和0x22EBC处改成0或者5均可(建议改成0,
即DEFAULT_QUALITY)
更详细的分析和对比可以看我的博客上的这篇文章:
http://ssfighter.blog.com.cn/archives/2007/2345980.shtml
【 在 ssfighter (谁穿我衣服 我砍他手足) 的大作中提到: 】
: 这个问题我已经基本找到原因了
: 等有空写个具体原因和解决办法出来..
怒赞啊
cleartype确实比较诡异,我的lcd不开cleartype的时候,cterm显示是和别的机器上开
了的效果一样,开了以后,雅黑倒是不虚了,但是cterm下的字体出现毛刺了
也许你的办法可以借鉴一下
【 在 ssfighter (谁穿我衣服 我砍他手足) 的大作中提到: 】
: 标 题: 让搜狗输入法支持ClearType
: 发信站: 水木社区 (Tue Jul 3 02:16:30 2007), 站内
: 前两天和版上的一些朋友讨论了一下搜狗输入法不支持ClearType的问题
: 这个问题在3.0Beta2中依然存在,就是尽管系统已经开启了ClearType,但是在
: 搜狗输入法中并没有这种效果,感兴趣的朋友们不妨试试。我在我的台式机和笔记本
: 上都试过了,都有这个问题。
: 经过研究发现是搜狗拼音在绘制输入框时调用的CreateFontIndirectW函数时
: 将lfQuality项设置成了ANTIALIASED_QUALITY(在3.0Beta2中),在3.0Beta1中
: 这个值是NONANTIALIASED_QUALITY,造成字体不支持ClearType的效果。
: 解决的办法是将这两项设置成5或者是0即可。
: 对3.0Beta2来说,将0x22E46和0x22EBC处改成0或者5均可(建议改成0,
: 即DEFAULT_QUALITY)
: 更详细的分析和对比可以看我的博客上的这篇文章:
: http://ssfighter.blog.com.cn/archives/2007/2345980.shtml
: 【 在 ssfighter (谁穿我衣服 我砍他手足) 的大作中提到: 】
: : 这个问题我已经基本找到原因了
: : 等有空写个具体原因和解决办法出来..
: --
: 听说Blog点击量和我的回帖量成正比,我来做个实验好了
: http://ssfighter.blog.com.cn/
: 欢迎访问我的Blog——且行且远
嗯哪,目前暂时只能酱紫。
【 在 beckyer (Beckyer) 的大作中提到: 】
: 标 题: Re: 让搜狗输入法支持ClearType
: 发信站: 水木社区 (Tue Jul 3 08:31:55 2007), 站内
: 所以最好的做法是:
: 1. 摒弃雅黑
: 2. 关掉cleartype
: 【 在 birdjiao (鸟叫‖打了91个 m$ update ……) 的大作中提到: 】
: : 怒赞啊
: : cleartype确实比较诡异,我的lcd不开cleartype的时候,cterm显示是和别的机器上开
: : 了的效果一样,开了以后,雅黑倒是不虚了,但是cterm下的字体出现毛刺了
: : ...................
: --
: Orca: A small, full featured and fast Gecko based browser.
哈哈,不知道用什么输入法打出来的。
【 在 kawolu (渚) 的大作中提到: 】
是
在一次表演赛中无名小辈的职业选手池永勋对战超级美女徐池受ToSsGirL,也许是很少上电视,加上和女性选手比赛,他格外紧张.而解说员突然发现一个奇怪的画面:本应该是[-_-]的耳麦却让池永勋戴成]-_-[,解说员最后忍不住捧腹大笑,成为了星际爱好者津津乐道的一次广播事件。
【 在 tangly (leafly') 的大作中提到: 】
: 标 题: Re: 让搜狗输入法支持ClearType
: 发信站: 水木社区 (Tue Jul 3 19:23:38 2007), 站内
: 那位把这句话翻译一下
: 【 在 bk84 (Tabris) 的大作中提到: 】
: : 可以液晶屏关了cleartype简直没法看啊 怎么办呢
: --
3.0Beta1中使用NONANTIALIASED_QUALITY是因为使用透明色的情况下,透明背景上的平滑字体会有黑边.后来很多人反映使用大字体边缘锯齿很明显,于是在3.0Beta2中改为ANTIALIASED_QUALITY.
前两版中都想做到一种不依赖于环境的显示,即在不同的系统和设置下都有同样的效果,而DEFAULT_QUALITY依赖于当前的桌面设置,CLEARTYPE_QUALITY只有XP及以上才支持,因此都没这样设.由于同样的原因被否决的想法还有半透明图片的使用.现在看来可以放开这个限制,在不同的环境下使用不同的显示方式,以达到更好的效果.
【 在 ssfighter (谁穿我衣服 我砍他手足) 的大作中提到: 】
: 前两天和版上的一些朋友讨论了一下搜狗输入法不支持ClearType的问题
: 这个问题在3.0Beta2中依然存在,就是尽管系统已经开启了ClearType,但是在
: 搜狗输入法中并没有这种效果,感兴趣的朋友们不妨试试。我在我的台式机和笔记本
: ...................
zan
【 在 escrow (escrow) 的大作中提到: 】
: 3.0Beta1中使用NONANTIALIASED_QUALITY是因为使用透明色的情况下,透明背景上的平滑字体会有黑边.后来很多人反映使用大字体边缘锯齿很明显,于是在3.0Beta2中改为ANTIALIASED_QUALITY.
: 前两版中都想做到一种不依赖于环境的显示,即在不同的系统和设置下都有同样的效果,而DEFAULT_QUALITY依赖于当前的桌面设置,CLEARTYPE_QUALITY只有XP及以上才支持,因此都没这样设.由于同样的原因被否决的想法还有半透明图片的使用.现在看来可以放开这个限制,在不同的环境�
我对字体的设置也不是很了解,请问什么是透明色啊?
我个人也不建议设置成CLEARTYPE_QUALITY,而建议设成DEFAULT_QUALITY,这样
和桌面的设置保持一致,我不太理解半透明图片的意思,您能解释一下吗?
【 在 escrow (escrow) 的大作中提到: 】
: 3.0Beta1中使用NONANTIALIASED_QUALITY是因为使用透明色的情况下,透明背景上的平滑字体会有黑边.后来很多人反映使用大字体边缘锯齿很明显,于是在3.0Beta2中改为ANTIALIASED_QUALITY.
: 前两版中都想做到一种不依赖于环境的显示,即在不同的系统和设置下都有同样的效果,而DEFAULT_QUALITY依赖于当前的桌面设置,CLEARTYPE_QUALITY只有XP及以上才支持,因此都没这样设.由于同样的原因被否决的想法还有半透明图片的使用.现在看来可以放开这个限制,在不同的环境�
透明色和半透明图片是和皮肤相关的两件事
透明色是对于一个窗口指定的一个颜色,窗口上所有这种颜色的点都被认为是不存在的,在屏幕上看不到这些点,对其点击也会点到下面的窗口上.
半透明图片是如png之类的图片,其每个像素都有一个透明度的属性,显示的时候会和窗口下面的颜色进行混合,混合的比例由透明度指定,255为完全不透明,即完全按照图片上的颜色显示,0为完全透明,即安全按下面的颜色显示,此时也无法点击到.
3.0开始搜狗输入法加入了皮肤功能,使用皮肤的写作窗口和状态栏是一种设置了WS_EX_LAYERED属性的特殊窗口,这种窗口支持透明色和半透明度.有两种方式实现这种支持,一种是调用SetLayeredWindowAttributes,这种方式比较简单,只需要指定一个透明色和一个透明度,所有是透明色的地方都被认为是透明的,窗口上其他的点都具有一样的透明度,3.0beta1就是这样做的,目前看来效果还行.另一种是调用UpdateLayeredWindow,这种方法比较麻烦,需要自己在一个临时DC上绘制一个带透明度的图片,然后交给操作系统,由操作系统帮助我们显示,此时不会收到WM_PAINT消息,这样做的好处就是可以支持png图片,可以实现每点上的透明度,3.0beta2是这样做的,因此可以支持png图片,从bug反馈来看,目前存在一些问题还需解决,如由于透明色处理实际上是我们自己做的,在16位色的DC下有可能识别不正确,导致有些3.0beta1的皮肤透明色不生效.
虽然内部绘图方式已经支持png图片,但是由于png图片的读取等操作使用了windows的gdiplus.dll中的函数,而只有xp以上和装了某些软件的2K才有gdiplus.dll,因此这种方式不能兼容所有的环境,被否掉了,不允许出现在皮肤编辑器中.QQ的方案是在其安装目录下自己带一个gdiplus.dll,这样在任何环境下都能使用gdiplus的函数了,而且不受gdiplus.dll的版本限制,但作为一个输入法,我们没法做到这样,这样有可能会影响到应用程序的正常显示.紫光v6似乎也是用的gdiplus.dll,但其在有些win2K中无法显示界面.我们目前的做法是判断如果有gdiplus.dll就使用,没有就用以前的方式读取图片,但这样做带png图片的皮肤就无法显示了.
【 在 ssfighter (谁穿我衣服 我砍他手足) 的大作中提到: 】
: 我对字体的设置也不是很了解,请问什么是透明色啊?
: 我个人也不建议设置成CLEARTYPE_QUALITY,而建议设成DEFAULT_QUALITY,这样
: 和桌面的设置保持一致,我不太理解半透明图片的意思,您能解释一下吗?
: ...................