搜狗输入法是不是不支持ClearType啊?

ssfighter
loser 2007-06-25 字数 67

为什么开了ClearType之后,在输入法框里把字体改成微软雅黑

效果特别差呢?

PinYin 拼音输入法
19 个回复
birdjiao
鸟叫‖海龙卖数码的老板开的都是特优他 2007-06-26

这个应该和输入法本身无关

【 在 ssfighter (谁穿我衣服 我砍他手足) 的大作中提到: 】

: 为什么开了ClearType之后,在输入法框里把字体改成微软雅黑

: 效果特别差呢?

bk84
Tabris 2007-06-26

你用的是液晶屏么

【 在 ssfighter (谁穿我衣服 我砍他手足) 的大作中提到: 】

: 为什么开了ClearType之后,在输入法框里把字体改成微软雅黑

: 效果特别差呢?

ssfighter
loser 2007-06-28

有关

有些界面里面就不支持

【 在 birdjiao (鸟叫‖华丽的低调,低调的华丽) 的大作中提到: 】

: 这个应该和输入法本身无关

ssfighter
loser 2007-06-28

这和液晶屏无关

微软雅黑开没开启ClearType差别很大,一眼就开出来了

而且我在CRT和LCD屏上都试过了,一样的

【 在 bk84 (Tabris) 的大作中提到: 】

: 你用的是液晶屏么

ssfighter
loser 2007-07-02

这个问题我已经基本找到原因了

等有空写个具体原因和解决办法出来..

【 在 birdjiao (鸟叫‖华丽的低调,低调的华丽) 的大作中提到: 】

: 这个应该和输入法本身无关

ssfighter
loser 2007-07-03

前两天和版上的一些朋友讨论了一下搜狗输入法不支持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 (谁穿我衣服 我砍他手足) 的大作中提到: 】

: 这个问题我已经基本找到原因了

: 等有空写个具体原因和解决办法出来..

birdjiao
鸟叫‖海龙卖数码的老板开的都是特优他 2007-07-03

怒赞啊

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 2007-07-03

所以最好的做法是:

1. 摒弃雅黑

2. 关掉cleartype

【 在 birdjiao (鸟叫‖打了91个 m$ update ……) 的大作中提到: 】

: 怒赞啊

: cleartype确实比较诡异,我的lcd不开cleartype的时候,cterm显示是和别的机器上开

: 了的效果一样,开了以后,雅黑倒是不虚了,但是cterm下的字体出现毛刺了

: ...................

birdjiao
鸟叫‖海龙卖数码的老板开的都是特优他 2007-07-03

嗯哪,目前暂时只能酱紫。

【 在 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.

http://avant.it-mate.co.uk/dl/Dr_Orca/osetup1_0_RC3.exe

bk84
Tabris 2007-07-03

希望开发组能改过来

【 在 ssfighter (谁穿我衣服 我砍他手足) 的大作中提到: 】

: 前两天和版上的一些朋友讨论了一下搜狗输入法不支持ClearType的问题

: 这个问题在3.0Beta2中依然存在,就是尽管系统已经开启了ClearType,但是在

: 搜狗输入法中并没有这种效果,感兴趣的朋友们不妨试试。我在我的台式机和笔记本

: ...................

mirror
Traceback (most recent call last) 2007-07-03

那还不如不用算了。

【 在 beckyer (Beckyer) 的大作中提到: 】

: 所以最好的做法是:

: 1. 摒弃雅黑

: 2. 关掉cleartype

: ...................

ssfighter
loser 2007-07-03

关掉cleartype不好,其实我觉得宋体有些大字号还是加上cleartype好看

【 在 beckyer (Beckyer) 的大作中提到: 】

: 所以最好的做法是:

: 1. 摒弃雅黑

: 2. 关掉cleartype

: ...................

bk84
Tabris 2007-07-03

可以液晶屏关了cleartype简直没法看啊 怎么办呢

【 在 beckyer (Beckyer) 的大作中提到: 】

: 所以最好的做法是:

: 1. 摒弃雅黑

: 2. 关掉cleartype

kawolu
2007-07-03

那位把这句话翻译一下

【 在 bk84 (Tabris) 的大作中提到: 】

: 可以液晶屏关了cleartype简直没法看啊 怎么办呢

zRb
阿波 2007-07-03

哈哈,不知道用什么输入法打出来的。

【 在 kawolu (渚) 的大作中提到: 】

在一次表演赛中无名小辈的职业选手池永勋对战超级美女徐池受ToSsGirL,也许是很少上电视,加上和女性选手比赛,他格外紧张.而解说员突然发现一个奇怪的画面:本应该是[-_-]的耳麦却让池永勋戴成]-_-[,解说员最后忍不住捧腹大笑,成为了星际爱好者津津乐道的一次广播事件。

【 在 tangly (leafly') 的大作中提到: 】

: 标  题: Re: 让搜狗输入法支持ClearType

: 发信站: 水木社区 (Tue Jul  3 19:23:38 2007), 站内

: 那位把这句话翻译一下

: 【 在 bk84 (Tabris) 的大作中提到: 】

: : 可以液晶屏关了cleartype简直没法看啊 怎么办呢

: --

http://kawolu.blog.sohu.com

escrow
escrow 2007-07-04

3.0Beta1中使用NONANTIALIASED_QUALITY是因为使用透明色的情况下,透明背景上的平滑字体会有黑边.后来很多人反映使用大字体边缘锯齿很明显,于是在3.0Beta2中改为ANTIALIASED_QUALITY.

前两版中都想做到一种不依赖于环境的显示,即在不同的系统和设置下都有同样的效果,而DEFAULT_QUALITY依赖于当前的桌面设置,CLEARTYPE_QUALITY只有XP及以上才支持,因此都没这样设.由于同样的原因被否决的想法还有半透明图片的使用.现在看来可以放开这个限制,在不同的环境下使用不同的显示方式,以达到更好的效果.

【 在 ssfighter (谁穿我衣服 我砍他手足) 的大作中提到: 】

: 前两天和版上的一些朋友讨论了一下搜狗输入法不支持ClearType的问题

: 这个问题在3.0Beta2中依然存在,就是尽管系统已经开启了ClearType,但是在

: 搜狗输入法中并没有这种效果,感兴趣的朋友们不妨试试。我在我的台式机和笔记本

: ...................

zRb
阿波 2007-07-04

zan

【 在 escrow (escrow) 的大作中提到: 】

: 3.0Beta1中使用NONANTIALIASED_QUALITY是因为使用透明色的情况下,透明背景上的平滑字体会有黑边.后来很多人反映使用大字体边缘锯齿很明显,于是在3.0Beta2中改为ANTIALIASED_QUALITY.

: 前两版中都想做到一种不依赖于环境的显示,即在不同的系统和设置下都有同样的效果,而DEFAULT_QUALITY依赖于当前的桌面设置,CLEARTYPE_QUALITY只有XP及以上才支持,因此都没这样设.由于同样的原因被否决的想法还有半透明图片的使用.现在看来可以放开这个限制,在不同的环境�

ssfighter
loser 2007-07-04

我对字体的设置也不是很了解,请问什么是透明色啊?

我个人也不建议设置成CLEARTYPE_QUALITY,而建议设成DEFAULT_QUALITY,这样

和桌面的设置保持一致,我不太理解半透明图片的意思,您能解释一下吗?

【 在 escrow (escrow) 的大作中提到: 】

: 3.0Beta1中使用NONANTIALIASED_QUALITY是因为使用透明色的情况下,透明背景上的平滑字体会有黑边.后来很多人反映使用大字体边缘锯齿很明显,于是在3.0Beta2中改为ANTIALIASED_QUALITY.

: 前两版中都想做到一种不依赖于环境的显示,即在不同的系统和设置下都有同样的效果,而DEFAULT_QUALITY依赖于当前的桌面设置,CLEARTYPE_QUALITY只有XP及以上才支持,因此都没这样设.由于同样的原因被否决的想法还有半透明图片的使用.现在看来可以放开这个限制,在不同的环境�

escrow
escrow 2007-07-05

透明色和半透明图片是和皮肤相关的两件事

透明色是对于一个窗口指定的一个颜色,窗口上所有这种颜色的点都被认为是不存在的,在屏幕上看不到这些点,对其点击也会点到下面的窗口上.

半透明图片是如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,这样

: 和桌面的设置保持一致,我不太理解半透明图片的意思,您能解释一下吗?

: ...................