101 123456
发新话题
打印

让你电脑字体完美无缺--freetype版gdi++设置文件详解 (70599)

本主题由 wrtn 于 2007-11-6 18:01 设置高亮

让你电脑字体完美无缺--freetype版gdi++设置文件详解 (70599)

首先声明:转载此文章已经征得作者70599的同意!
以下是原文!

【写在前面的】

我半年前就开始使用gdi++了,这是一个日本人开发的免费开源软件官方版本在2006年8月29
日公布了最后一个稳定版后就停止了更新。(官网:http://drwatson.nobody.jp/gdi++/)官方版本的gdi++只能对字体进行256(8位)阶段的灰度渲染,虽然windows在标准清晰模式下用的也是8位灰阶渲染,但是明显gdi++要强过它好多(当然这也是见仁见智,这里仅代表个人观点)。(这里,图里面的iTunes。是官方gdi++的效果图)
・后来又有一些日本的有志者,他们免费地开发了freetype版的gdi++,可以说这才是gdi++真正的飞跃。用linux的朋友对freetype一定很熟悉,它能对字体进行RGB(24位)渲染,虽然windows的cleartype也是24位,但是效果和freetype版gdi++比起来说它惨不忍睹真的一点也不过分。
开发者非常勤奋,这个软件在半年间更新了好几十个版本(当然都是比较小的更新),现在一些明显的问题已经基本被修整完毕,最近一直没有什么更新。所有打算使用这个软件的朋友都应该感谢他/她们!

【RGB渲染与灰阶渲染的区别】

为了让大家直观地了解RGB渲染与灰阶渲染的区别,这里用三幅图片作对比说明:
引用yfengp朋友的Mac桌面秀(原图点这里查看),图片里面的字体是华康丽黑。图片全部放大到1000%(十倍)。



:(结果自然一目了然。

[ 本帖最后由 天一生水 于 2007-11-9 12:58 编辑 ]
附件: 您所在的用户组无法下载或查看附件
本帖最近评分记录
  • wrtn 威望 +1 谢谢分享 2007-11-6 18:00
  • wrtn 天下币 +30 谢谢分享 2007-11-6 18:00

TOP

【gdi++.ini详解与心得】

切入正题,这次使用最新版来作说明。
先到这里下载(没有与开发者沟通过,就不给出直接下载了,请点开链接下载):http://free.flop.jp/gdi++/
下载里面的gdi0717.zip(gdi++主程序)和gdi0730.zip(最新版本freetype.dll),解压到一个文件夹里,记住文件夹的位置(后面要用到)。

启动方法:
1.把程序或者快捷方式拖拽到gdi++.exe里;
2.通过修改注册表的方法使全系统应用gdi++(后面详解)。

gdi++有着非常非常灵活的设置,通过编辑gdi++.ini你几乎可以用它得到任何你想要的(字体)效果:p(同时也有可能伴随着各种问题[han])。
下面打开gdi++.ini,里面有很多可以设置的地方,详解如下:
它的格式有点特别,每一项可以设置的数字显示在该项目名称的上面。
句首加#的行将被注释掉,不会起作用。


_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

; GDI++の設定ファイル
; 保存時の文字コードはANSI(ShiftJIS)かUnicode(BOMつきUTF-16LE)で。
; Unicodeの方が読み込みが速いかも。

[General]
; 0:Disable 1:Enable
HookChildProcesses=1
【应用到子进程】

——比如你用启动方法1启动了一个winrar,双击里面的一个文本文档,那么下一步被打开的“记事本”程序也会使用gdi++渲染。
・0:禁用;
・1:启用。


; 0:Normal 1:NoHinting 2:AutoHinting
HintingMode=1
【字体微调】

——对字体进行细微调整,以实现比较锐利、不模糊的效果。windows的cleartype就是用的这类技术,弊端是会使字体变形、笔画粘在一起。

下面会有两种情况,

——情况一,当FontLoader=0(在下面)时:
・0:使用字体内部的微调,字体内部没有微调的话就和选1时的效果一样;
・1:不使用微调;
・2:用freetype对字体进行微调。
(注:1.下面的选了4或5的时候,就算是某个没有内部微调的字体,在此项设定为0时也还是会被应用微调;2.有内部微调的英文字体在下面的AntiAliasMode选择4或5时,推荐将此项设为0。)
——情况二,当FontLoader=1(在下面)时:
・0和2完全一样,其他同情况一。


; -1:Disable 0:Normal 1:Light 2:LCD(RGB) 3:LCD(GBR) 4:Light-LCD(RGB) 5:Light-LCD(GBR)
AntiAliasMode=2
【抗锯齿模式】
・-1:禁用;
・0:普通的灰阶渲染;
・1:Light模式,由freetype的Reference来渲染;
・2、3:RGB/GBR24位色渲染,转为液晶优化(电浆显示器也能用),2和3的区别在于红绿蓝的排列不同;
・4、5:就是Light模式下的RGB/GBR24位色渲染,最近版本才加入的新功能,推荐使用!4和5的区别在于红绿蓝的排列不同。


; 0-∞
MaxHeight=150
【让freetype处理的最大的字体尺寸,单位是像素,0的话就是全尺寸。】

; 0:Disable 1:Enable
UseMapping=0
【只有在FontLoader=0(在下面)时此项设置才有效。建议选0,选1会占用大量内存,也没看出有什么好处。】

; 0:Disable 1:Enable
FontLink=0
【字体链接】

——当FontLoader=0(在下面)时:
・0:什么都不做;
・1:使用注册表里的字体链接设置;
——当FontLoader=1(在下面)时:
・会保持启用的状态,但是所有字体链接的处理会交由WIN32API完成。

・小贴士:字体链接:估计很多朋友都很熟悉了,windows里处理字体的一种技术。拿注册表里的默认设置举个例子,打开注册表的“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink”会发现英文字体Tahoma里链接了一些字体,里面有一些是非英文字体,结果就是系统在调用Tahoma时,遇到Tahoma里没有的字符时就会到被链接的字体里去找。

; 0:Disable 1:ini Only 2:ini+Registry
FontSubstitutes=0
【字体替代】

——当FontLoader=0(在下面)时:
・0:什么都不做;
・1:使用该设置文件最下面的设置;
・2:该设置文件最下面的设置和注册表里的设置一起启用。
——当FontLoader=1(在下面)时:
・会保持启用的状态,但是所有字体替代的处理会交由WIN32API完成


; 0:GDI32 1:FreeType
WidthMode=0
【字体排列】

——字宽设置。
・0:交还给gdi32.dll处理,有可能出现字体行距过小或者过大的不整齐的现象;
・1:使用由freetype计算出来的宽度来排列字体,虽然会更美观一些,但是某些程序下可能出现混乱。


; 0:FreeType 1:WIN32
FontLoader=0
【字体的载入方法(注意是载入方法,不是渲染方法)】

——上面反复提到的一个设置。
・0:用freetype载入字体;
・1:用windows的绘图核心载入字体。
*很多freetype的设置需要此项选0才能生效。


; 0:New 1:Old 2:Original FreeType Algorithm
BolderMode=0
【粗体字的渲染方法】

——对象字体是没有单独粗体字文件的字体,有单独粗体字文件的字体(如微软雅黑)此项设置不会生效。
・0:使用gdi0440以后版本的渲染方式;
・1:使用gdi0424以前版本的渲染方式;
・2:使用gdi0347以前版本的渲染方式,也就是freetype本身的粗体渲染。


; -1 = disabled 0 = use "GammaValue" 1 = sRGB 2 = alternative
GammaMode=1
【Gamma模式开关】
・-1:关闭;
・0:使用设置的Gamma值(GammaValue);
・1:使用sRGB的Gamma值;
・2:不明


; sRGB ≒ 2.2 CT-Default = 1.4
GammaValue=1.0
【Gamma值】

——只有上面GammaMode=0的时候此项设置才有效。设置的数值可以精确到小数点后面一位。
*注:windows的cleartype的Gamma值是1.4。


RenderWeight=1.0
【字体轮廓】

——数字越大字体就越粗越黑(当字体为黑色时,其他颜色时表现出来的是颜色越深)。
・设置的数值可以精确到小数点后面两位。


Contrast=1.0
【对比度】

——数字越大越锐利,数字越小越发虚。
・设置的数值可以精确到小数点后面一位。


; 0-12
TextTuning=0
TextTuningR=-1
TextTuningG=-1
TextTuningB=-1
【文字边界设置】

——-1时无效(0也是有效的)。
TextTuning是RGB三色全局设置,TextTuningR、TextTuningG、TextTuningB是单独设置RGB三色。
数字越大越强调背景(类似文字边界被侵蚀的感觉),强调背景会有中字体锐利的感觉。
适当降低对比度,提高TextTuning,可以使文字周围的颜色看起来”淡一点“(比如在某些设置下,明明是黑色的字体,看起来却像是”五彩“的)。
再加上RenderWeight,把这三个设置的微妙平衡调节好的话,能得到不输给Mac的效果。


; -32:+32
NormalWeight=0
; -16:+16
BoldWeight=0
【字体粗细的单独调整】

——可以单独设置常规(NormalWeight)、粗体(BoldWeight)状态下的粗细。
・数字越大越粗,负数也有效,可以使字体更细。


; -16:+16
ItalicSlant=0
【字形为斜体时的倾斜加角】

——可以设置字形为斜体时的倾斜加角。正数为右倾,负数为左倾。
・数字越大加角幅度越大。
 此项设置仅对没有单独斜体字形的字体有效。


; 0:None 1:Default 2:Light 16:Legacy
LcdFilter=2
【液晶显示器的优化配置】

——不同显示器效果也不一样,需要自己调试。
*只有freetype.dll是2.3.0以后的版本此项设置才生效。


LoadOnDemand=0
CacheMaxFaces=16
CacheMaxSizes=16
CacheMaxBytes=5242880
;CacheMaxBytes=10485760
【字体缓存、内存的设置】

——同样的设置在不同的机器上效果完全不同,所以没有什么“最合理的设置”。
适当设置的话能减少内存占用(当然再怎么少也少不过不用gdi++),并提高gdi++引擎的稳定性。
较低配置的机器请不要把LoadOnDemand设为1,有死机的危险。


#ForceChangeFont=メイリオ
#ForceChangeFont="M+2P+IPAG circle Regular"
#ForceChangeFont=id-懐映体
#ForceChangeFont="SH G30-P"
#ForceChangeFont="SH G30-M"
#ForceChangeFont="ヒラギノ角ゴ6等幅-AquaKana"
#ForceChangeFont="ヒラギノ明朝 Pro W3"
#ForceChangeFont=S2GPうにフォント
#ForceChangeFont="S2G らぶ W4x1"
#ForceChangeFont="S2G らぶ"
【强制使用某一个字体】

——无视所有其他字体,全系统的字体都会被这里设置的字体代替。
・句首加#的行将被注释掉,不会起作用。


[Individual]
;書式: フォント=Hinting,AAMode,NormalWeight,BoldWeight,ItalicSlant,Kerning
メイリオ=0,
SH G30-AA=,,-16,-4
S2G らぶ=,,+32,+4
S2G らぶ W4x1=,,+12,+4
【单独设置某字体】

——格式如上,用逗号隔开,逗号间什么都不写的话就用上面设置好的数值。


[Exclude]
#Marlett
#MS Pゴシック
【除外的字体】

——这里设置的字体不使用gdi++渲染。
・句首加#的行将被注释掉,不会起作用。


[ExcludeModule]
fontview.exe
【除外的程序】

——这里设置的程序不使用gdi++渲染。
・句首加#的行将被注释掉,不会起作用。


[FontSubstitutes]
; 書式1: フォント=代替フォント
; 書式2: フォント,CHARSET=代替フォント,CHARSET
#Arial,0=Times New Roman,0
#MS 明朝=MS ゴシック
【字体替代】

——系统在调用“=”前面的字体时会忽视“=”前面的字体,而去直接调用“=”后面的字体。
・逗号后面的数字是字符编码。

*附:字符编码:
ANSI 0
DEFAULT_CHARSET 1
Symbol 2
MAC 77
日文 128
Hangul 129
JOHAB_CHARSET 130 ※可能是韩文
简体中文 134
繁体中文 136
希腊文 161
土耳其文 162
越南文 163
西不来文 177
阿拉伯文 178
波罗的海地区 186
俄文 204
泰文 222
东欧 238
OEM/DOS 255

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

【编辑注册表使系统全局应用gdi++】

最后说一下使用注册表实现系统全局适用gdi++的方法。
复制下面的内容,按你的实际情况重新编辑一下,保存为.reg文件双击导入,重启系统。
编辑的时候注意得使用双斜杠“\\”

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
代码:
Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows]"AppInit_DLLs"="C:\\...路径自己改...\\gdi++.dll"
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

用注册表导入的方法应用gdi++的话,某些朋友可能会遇到explorer.exe频繁报错的情况,现在还没有确切的解决方案。请尝试把gdi++保存在尽量靠近系统核心区域的的地方,我把gdi++放在C:\WINDOWS\system32里从来没报过错(当然可能不仅仅是因为我把它C:\WINDOWS\system32里所以运行稳定),机器之间的“个体差异”还是有的,再说的深了,可能还有RPWT的影响(玩笑)。调整上面的缓存设置也应该能改善,但是在下能力有限,不知道该怎么调制。实在没办法的话就这能放弃了...

【关于安全软件报警】

gdi++会把原本由gdi32.dll(windows绘图核心)执行的字体渲染工作截取到自己下面,进行渲染。并且程序在应用gdi++的时候,gdi++会采用注入进程的方式启动。对于上述两个动作,一般安全软件都会报警。但是这都是我们用户自己启动的,咱们也都知道会产生什么结果,所以不必担心,把gdi++添加到信任区域吧。我用卡巴斯基的,一开始业报警,添加信任就OK了。


PS:此文章不要随意转载 !谢谢合作。

TOP

此贴必火:dtbq013
西39 ←  BLOG

TOP

只是希望越来越多的会员能体会到字体在美化中的的重要性。

TOP

现在重视的人还不多,相信以后会越来越多的人喜欢上这个东东的!
桌面天下-有你有我有他

TOP

此贴绝对牛  支持

TOP

这个可是好东西````用了才知道``

TOP


狂顶

TOP

不了解。。先下了再瞧瞧:dtbq009
离开世界的时候记得带走自己的影子

TOP

我靠。。。这不仅是牛啊
而且我看了之后。一头雾水~`
受教了。。慢慢学先

TOP

My GOD.有点看不懂呢

TOP

我想要这个东西,我电脑里没有

TOP

我在下载的页面里没有找到lz说的那两个文件……怎么回事??

TOP

完全看不懂啊
我得努力学习了
真的好bc哦
什么都不会~
心伤~~

TOP

有点看不懂啊,很受伤

TOP

是不是太复杂了点啊,希望有简单点的办法

TOP

看不懂不用了
太复杂 了

TOP

下载收藏了

TOP

看不懂啊
让我弹着让我唱着 一个生命的过客 一个孤独的影子 一首生命的悲歌 一个岁月的休止符......

TOP

太复杂了点吧

太复杂了吧 软件设置还可以 将这么多怎么看啊 头都大了

TOP

 101 123456
发新话题