前几天在CB上流行了雅黑换宋体
现在再来教大家一个使自己的字体变得更加漂亮的软件 GDI++
原籍:日本
特点:提升字体渲染的水平,使字体显示的效果上一个台阶
小提示:这是一个免费的开源的软件,有可能出现一些不明不白的问题,如和千千5.1版冲突等,如果接受不了我还是劝大家不要使用。当然,在我力所能及的情况下,会帮大家解决一些使用GDI++过程中出现的问题
点击下载GDI++效果图:(点击查看大图)
为了使大家方便,我将GDI++的0787稳定版做了一个稳压包,里面包含了gditray和gdimanager程序(都是调用GDI++来进行渲染的工具 )和一些我收集的INI配置,请不要更改解压路径以免无法正常使用gdi++
下载后安装,不出问题的话右下角应该出现GDI Manager 的图标,双击此图标便可启用GDI++对字体进行渲染(当然你也可以使用gditray来进行渲染,看个人爱好而定)
当然,不同的显示卡和显卡得到的效果是不同的,各位请根据下面的详解自行更改您的GDI++.INI为适合您自己电脑的配置,如果和我一样使用A卡并使用LCD显示器的可以不用调整INI了
附1:修改GDI++的配置
打开C:WINDOWSsystem32gdi0787gdi++.ini进行修改
其中在C:WINDOWSsystem32gdi0787ini文件夹下面有我收集的一些GDI的配置文件,大家可以参考
附2:GDI++配置文件详解(感谢极限的70599大大提供此详解)
注意:句首加#的将不会产生作用
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
; 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_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionFontLinkSystemLink”会发现英文字体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++の設定ファイル
; 保存時の文字コードは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_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionFontLinkSystemLink”会发现英文字体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
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
如果不想每次都要手工打开gdimanager进行渲染
可进行如下操作将GDI++设置为注册表全局渲染
新建一个注册表文件,内容如下
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows]
"AppInit_DLLs"="C:\Windows\system32\gdi0787gdi++.dll"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows]
"AppInit_DLLs"="C:\Windows\system32\gdi0787gdi++.dll"
保存后导入注册表即可
如果在使用过程中出现问题请移步到http://www.iileffel.cn/article.asp?id=198留言,我将力所能及的帮大家解决使用过程中遇到的问题
(^_^,当作为小站打个广告吧,大大们就莫批我了,不容易啊)
