桌面天下2周年T恤设计大赛

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

PaRen 2007-11-5 20:18

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

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

[b]【写在前面的】

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

[size=3][b]【RGB渲染与灰阶渲染的区别】[/b][/size]

为了让大家直观地了解RGB渲染与灰阶渲染的区别,这里用三幅图片作对比说明:
引用yfengp朋友的Mac桌面秀([url=http://yfengp.deviantart.com/art/letting-you-know-53028988/][color=#0000ff]原图点这里查看[/color][/url]),图片里面的字体是华康丽黑。图片全部放大到1000%(十倍)。
[attach]68752[/attach]


:(结果自然一目了然。

PaRen 2007-11-5 20:19

[b]【gdi++.ini详解与心得】

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

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

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

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

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

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

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

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

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

下面会有两种情况,

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

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

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

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

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

——当FontLoader=0(在下面)时: [indent]・0:什么都不做;
・1:使用注册表里的字体链接设置;[/indent]——当FontLoader=1(在下面)时: [indent]・会保持启用的状态,但是所有字体链接的处理会交由WIN32API完成。[/indent]
[indent]・小贴士:字体链接:估计很多朋友都很熟悉了,windows里处理字体的一种技术。拿注册表里的默认设置举个例子,打开注册表的“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink”会发现英文字体Tahoma里链接了一些字体,里面有一些是非英文字体,结果就是系统在调用Tahoma时,遇到Tahoma里没有的字符时就会到被链接的字体里去找。[/indent]
; 0:Disable 1:ini Only 2:ini+Registry
FontSubstitutes=0
【字体替代】

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

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

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

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

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

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

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

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

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

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

RenderWeight=1.0
【字体轮廓】

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

Contrast=1.0
【对比度】

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

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

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

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

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

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

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

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

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

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

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

#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 らぶ"
【强制使用某一个字体】

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

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

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

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

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

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

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

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

——系统在调用“=”前面的字体时会忽视“=”前面的字体,而去直接调用“=”后面的字体。 [indent]・逗号后面的数字是字符编码。[/indent]
[indent]*附:字符编码:
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[/indent]
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

[b][size=3]【编辑注册表使系统全局应用gdi++】[/size][/b]

最后说一下使用注册表实现系统全局适用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的影响(玩笑)。调整上面的缓存设置也应该能改善,但是在下能力有限,不知道该怎么调制。实在没办法的话就这能放弃了...

[size=3][b]【关于安全软件报警】[/b][/size]

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


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

SeMo 2007-11-5 20:25

此贴必火:dtbq013

PaRen 2007-11-5 20:27

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

2007-11-6 21:57

现在重视的人还不多,相信以后会越来越多的人喜欢上这个东东的!

dukuan003 2007-11-7 12:12

此贴绝对牛  支持

天一生水 2007-11-9 12:53

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

yoyosang 2007-11-9 15:03


狂顶

parkour 2007-11-9 18:05

不了解。。先下了再瞧瞧:dtbq009

kd725 2007-11-9 20:08

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

愿在天涯 2007-11-15 21:43

My GOD.有点看不懂呢

weirjack 2007-11-16 23:16

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

圣詹姆斯公园 2007-11-17 14:01

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

rainyprincess 2007-11-17 18:25

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

deropig 2007-11-18 21:34

有点看不懂啊,很受伤

lovemeosan 2007-11-19 11:16

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

我是你的谁 2007-11-21 18:50

看不懂不用了
太复杂 了

y241742711 2007-11-21 23:35

下载收藏了

暗淡的月 2007-11-21 23:44

看不懂啊:dtbq033

weer2 2007-11-25 17:51

太复杂了点吧

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

weer2 2007-11-25 17:52

哈哈  看懂的没有几个

°月修罗 2007-11-25 17:55

好麻烦……
 

nitendods 2007-11-28 21:51

这个是在极限上转载的吧,已经在极限那里看过了,不过还是支持一下

xiaomaibu 2007-11-29 21:02

太乱了,叫人怎么看啊。

xiaomaibu 2007-11-29 21:14

这完全是个图标软件嘛,我按照你说的把软件给下好了,打开一看不知道怎么用,都是跟图标有关的操作,设置写了一大版有鸟用。

xiaomaibu 2007-11-29 21:15

很关心这个问题啊,麻烦管事的出来一下。

welkinet 2007-11-29 21:24

机耕

机耕机耕机耕机耕

zmx1979 2007-12-2 10:19

学习一次:dtbq010

xx9466 2007-12-2 11:53

:dtbq019 我才发现原来我没文化

showhand108 2007-12-2 16:00

哈哈  这个是好东西啊    支持

cn2002cn 2007-12-6 16:10

暈  裏靣根夲莈絠那嗰坿件ㄋ

氣萢 2007-12-9 00:44

不开玩笑  好复杂啊  这可要花我点时间研究研究

小苑 2007-12-10 16:00

[quote]原帖由 [i]kd725[/i] 于 2007-11-9 20:08 发表 [url=http://www.desktx.com/bbs/redirect.php?goto=findpost&pid=221439&ptid=29932][img]http://www.desktx.com/bbs/images/common/back.gif[/img][/url]
我靠。。。这不仅是牛啊
而且我看了之后。一头雾水~`
受教了。。慢慢学先 [/quote]



有同感!!!!

sharmycoco 2007-12-12 16:02

:dtbq033 :dtbq033 :dtbq033 没看都晕了。。。。。。。

semine 2007-12-12 16:03

此帖我已见过不知几遍了,^_^

luluring 2007-12-14 12:59

这个~也忒TM复杂了八?

佩服楼主先  下了试试说!

lsslff 2007-12-15 23:21

天~~天~~天~~~:bq011 :bq011
这么复杂啊

暮云春树 2007-12-18 00:00

满高深的,要看清楚啊,:bq015

●′韓唄唄丶 2007-12-19 14:30

貌似狠复杂

没耐心看了...用雅黑.

qq262629032 2007-12-21 20:33

呵呵。谢谢坏坏分享出来。已经用上了很不错。晚上我写个心得什么的。让我们菜鸟都可以自己DIY了。
页: [1] 2 3 4
查看完整版本: 让你电脑字体完美无缺--freetype版gdi++设置文件详解 (70599)