查看文章
 
【GDI++】单独放出GDI++氦版使用说明(5月3日更新安装程序)
2008-03-25 16:13
关于GDI++我在这里就不多说了,想了解的可以去看这里:http://hi.baidu.com/fonlan/blog/item/ca7144dc90bec1a5cc11666b.html

        氦版相对于原来的Freetype版有了巨大的变化,总结一下我们实际看得到的变化就是资源占用更小、兼容性提升相当大,但相对的,他的渲染效果相比 Freetype稍微差点,但差距多少这与各个人不同的硬件和系统环境有关,不能一概而论,例如在我的电脑上氦版和Freetype版的差距就不大。
        氦版的配置文件结构和Freetype版是不同的,不能混用,但程序的加载方式还是一样的,有兴趣的就去看《完美的GDI++字体渲染》一文吧。氦版的Gamma值被固定在相当于旧版本中 2.0 的数值,配置文件中,对渲染效果影响最大的参数只有两个,那就是InterpolationSaturation这两个参数,Interpolation这个参数直接决定了字体渲染时三原色各自所占比例的多少,Saturation决定了字体颜色的深浅,实际效果如何还需各位自己调节后看看效果才能领会。FreeType版的GDI++即使在排除列表里加入了某个程序但在运行那个程序时依然会加载gdi++.dll,而氦版多了一个[UnloadDLL]字段,顾名思义,就是在这个字段下定义的程序是不会加载gdi++.dll的,这对兼容性的提升也相当大,UnloadDLL字段下的程序可以直接用程序名,如QQ.exe,也可以用绝对路径,如C:\\ProgramFiles\\Tencent\\QQ.exe,需要注意的是使用绝对路径时单斜杠都要改为双斜杠。
       如果在Vista下使用GDI++的话还需要注意的一点是Vista默认是不会加载AppInit_DLLs中的值的,这就是很多使用Vista的网友发现在Vista下无法使用注册表加载GDI++的原因。当然,解决起来也很简单,只要把HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows路径下的LoadApplnist_DLLs的值改为1即可。如此,在Vista下使用GDI++时完整的注册表文件应该如下所示:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows]
"AppInit_DLLs"="C:\\WINDOWS\\system32\\GDI++\\gdi++.dll"
"LoadApplnist_DLLs"=1

这里给出我的配置文件:

[General]

; 配置文件的名称
Name=fonlan

; 配置文件的图标(只有在使用gditray进行多配置切换时才有用)
Icon=..\gditray.exe,-203

; 自动挂钩子进程
; [0:Disable] 1:Enable

HookChildProcesses=1


[Rasterize]

; 字体微调
; 0:NoHinting [1:Normal] 2:AutoHinting 3:Light+AutoHinting

HintingMode=3

; 抗锯齿方式,
将此值设的过大的时候可能反而会变得五彩、看起来更费劲,GammaCorrection=1时无效。
; 0:Disable [1:Grayscale] 2:SubPixel(RGB) 3:SubPixel(BGR)
AntiAliasMode=2

; 常规体调整(加粗或减细)
; 可调范围-32~+32

NormalWeight=0

; 粗体字的调整(加粗或减细)
; 可调范围-16~+16

BoldWeight=0

; 斜体字的倾斜角度微调
; 可调范围-16~+16

ItalicSlant=0

; 字体颜色深浅
; 可调范围-32~+32

Saturation=10

[Misc]

; 交付 gdi++ 处理的最大尺寸(单位为像素)
; 可调范围0~2147483647

MaxHeight=72

; Gamma 开关
; [0:Disable] 1:Enable

GammaCorrection=0

; α修正值,三个参数顺序为R,G,B,分别代表三原色所占比重。0为关闭,但是渲染速度反而会更慢。
; 每个参数的可调范围0~16
; Interpolation=6,5,8 (R=6, G=5, B=8 )
; Interpolation=4 (R=4, G=4, B=4 )
; Interpolation=0 (off)
Interpolation=3,2,4

; 竖向书写开关,建议关闭。
; [0:Disable] 1:Enable

VerticalText=0

; 模块优先度列表
; [0:Deny] 1:Allow 2:Allow->Deny

ModuleListOrder=0

[FreeType]

; 液晶显示器的优化配置
; [0:None] 1:Default 2:Light 16:Legacy

LcdFilter=1

; 检查 FreeType 的版本,
不是所有版本的 FreeType 都和本程序兼容,所以此项设定最好别碰
; [0:Check] 1:Skip
SkipVersionCheck=1


[Cache]
; 缓存
MaxFamilies=8
MaxStyles=12
MaxBytes=8388608

[Individual]
; 单独设置的字体,=1则表示使用字体内集成的微调功能。
; 格式: FontName=Hinting,AAMode,NormalWeight,BoldWeight,ItalicSlant,Saturation

Tahoma=1
MingLiU=1
PMingLiU=1
MeiryoKe_Gothic=1
MeiryoKe_PGothic=1
MeiryoKe_UIGothic=1
宋体 = ,,12,3
新宋体 = ,,12,3

[FontLink]
; 字体链接
; 格式: FontName=Name1,Name2,Name3, ... (Max:16)


[FontOverride]
; 强制字体替换
; 格式: FontName=Name
; MS Sans Serif = Tahoma


[Exclude]
; 除外的字体(不用氦渲染的字体)
Marlett
FIXEDSYS

[AllowModule]
; 许可模块列表,是一个优先加载的列表,就算被下面
DenyModule这个参数中的定义给拒绝了,但是只要在这个许可模块列表中依然会加载GDI++。

[DenyModule]
; 拒绝模块列表,含有此模块的程序不使用氦版GDI++渲染。

[UnloadDLL]
; 不想载入的进程,这个可是真正的不载入gdi++.dll哦,而不是freetype版那种载入但无效哦!
imejpmgr.exe
msdev.exe
devenv.exe
winlogon.exe
fontview.exe
SREngPS.EXE
cstrike.exe
CppIDE.exe
nvcplui.exe
nvsvc32.exe
xdict.exe
services.exe
csrss.exe
lsass.exe
svchost.exe
wmiprvse.exe
Safari.exe
spoolsv.exe
ctfmon.exe
3DMark06.exe
scardsvr.exe
conime.exe


后记:很多朋友使用了自动安装版的GDI++后都不知道如何手工卸载,其实很简单:首先确定你是用什么方法加载GDI++的,如果是注册表加载(自动安装版 GDI++默认使用的就是这种方式),就先运行注册表编辑器,清空HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows NT\CurrentVersion\Windows项下AppInit_DLLs的相关键值(这个键一般是不会有其他的项的,但如果你装有WB之类的软件的话这里还会有一个wbsys.dll的值,注意不要把这个值也删掉,只要删掉和GDI++相关的那部分路径就可以了),如果是快捷方式加载就先删除开始菜单中启动栏里的GDI++的快捷方式,然后重启系统,重启后删除C:\Windows\System32\GDI++目录和System32文件夹下的detoured.dll、freetype.dll、gdi++.dll三个文件即可。

5月3日更新自动安装版程序,更智能化:

·强行安装在system32\GDI++目录下,安装结束后提示重启。

·安装时可选择使用注册表全局加载还是使用GDI Tray加载。

·使用注册表加载时自动判断操作系统是否为Vista,如果是Vista则将LoadAppInist_DLLs设为1。

·使用GDI Tray加载时在开始菜单建立启动GDI++的快捷方式,使得手动退出GDI++后依然可以快速地重新启动GDI++。

·自动判断操作系统是否为Windows2000,如果是则打上相应的注册表补丁。

·从添加删除程序中可以彻底卸载GDI++(需要重启)。

注意:

1、安装前请尽量彻底卸载已安装过的GDI++,以避免出现各种问题。

2、安装时如选择的是使用注册表加载则请关闭杀毒软件或者其他安全防护软件后再运行本安装程序,否则对AppInist_DLLs的写入可能会被拦截而无法正常加载。

3、此安装程序如果在安装了WB的电脑上安装,当选择使用注册表加载时会出现安装完成后WB失效的情况,请手动定位到注册表的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows路径下,在右侧的AppInit_DLLs的值C:\WINDOWS\system32\GDI++ \gdi++.dll后加上“,wbsys.dll”(不包括引号)即可。卸载时也同样会造成这个问题,如法炮制加入“wbsys.dll”即可(注意此 时就一项的话逗号都不用了)



类别:gdi++||添加到搜藏 |分享到i贴吧|浏览(38684)|评论 (0)
 
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
     

   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu