gdi++

资料百科

GDI++是一个开源项目,它能接管Wi来自ndows系统的GDI字体渲染功能,实现比Mac系统更华丽的字体渲染效果360百科!使用PC的朋友再也不需要羡慕Mac上清晰的中文字体了, 因为GDI++有过之而无不及 GDI++和微软的ClearType其实同吸散它是相类似的技到案娘尼轻套尔术,都是24位字体渲染技术 ,在支持灰阶显示的字体边缘加上早终企阴影,但GDI++的强大的可定制性和灵活性足以令ClearType无地自容,GDI++可精细定制到字体的粗细、色深,阴影的方位、长度,字体代换,排除列表等等相当多的自定义选项。

使用技巧

  GDI++的精髓在于它的配置文件的编写,不同的系统环境、显示器类型及使用者的视觉习惯都需要不同的配置文件来实现最后实际输出效果的最优化。

  使用GDI++的前提是你使用的是支持灰阶渲染的字体,除了系统自带的几个中文字体不支持灰阶之外,现在较为流行的方正、华文、华康和汉仪等等中文字体都支持灰阶渲染。不要用着垂烈范真结宋体却问我为什么效果没变!下文如无特别说明所指均为老版(Freetype来自版)的GDI++,并非新的“氦”版。

  GDI++的安装这里360百科就不多讲了,下载文末附件扬去轮里的自动安装版双击就自动安装好并设为开机自动加载了。GDI++的安装唯一要注意的一点是要尽量安装在靠 近系统核心的地方,即靠近sy清审说是差秋色stem32文件夹的地方(附件中的自动安装版安装在windo龙厂装ws\system32\GDI++目录下,以下内容也以此 文件夹为例。包错法上),虽然官方的文档并没养独社威有特别说明这一点,但根据网友氢光抗击超代终材使用的反馈来看安装在靠近核心的地方会相对较为稳定,不知道是什么原因。

加载方式共有三种

  第一种是手动将要渲染的程序拖到G半怀伟够苏器月慢DI++安装文件夹中的gdi++.exe上,这样这个程序的字体就被GDI++所渲染 了。第二分肥洲染模纪地种方法是先创建一个gditray.exe的快捷方式,然后把快捷方式中的目标部分改为C:\WI艺都员丰守成一NDOWS\system32\gdi++\gdit解道酒合慢巴口久表ray.exe "-on",即在原来目标的后面加个空格,然后是"-洋战校因四岁王击冷on"就可以了,把这个快捷方式放到开始菜单的启动文件夹里,这样开机的时候GDI++卫引留顾由府卫响完火就会自动开始 渲染了。最后一种治周简展齐算数方法是注册表加载法,也是我最推崇的方法,将以下内容写入记事本:

  燃刑防坚汉德防巴Windows Registr居细理门抓随y Editor Version 5.00

  [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows]

  "AppInit_DLLs"="C:\\WINDOWS\\system32\\GDI++\\gdi++.dll"

  并保存为GDI++.reg,双击导入即可。第一种是为临时想用用试试的人准备的,无法渲染系统字体。第二种是全局加载,即整个系统都会被 渲染,而且系统托盘中有图标,可以轻易地停用或者启用GDI++,随意地切换多个配置文件或者重新渲染。但由于启动文件夹的优先级较低,所以往往要到进入 桌面后才启动,桌面字体会经历一次由难看到清晰的转变,当然,在这之前弹出的所有对话框也不会被渲染。那为什么要推崇用注册表加载呢?注册表法也是属于全 局加载,但他的优先级极高,WindowsXP的“欢迎使用”界面还没出现它就已经加载了,而且稳定性相当好,当你配置文件已定,要准备进入长期使用的时 候这种方法是首选。不过缺点是这个键值也较为容易被病毒木马所利用,所以大部分杀毒软件都会对这个键值有监控,甚至没有任何提示直接阻止,像瑞星2008 那个LJ。而且更换配置文件或者修改配置后像查看效果较为不便,想查看效果需要重启的软件。

  接下来讲GDI++配置文件的编写,这是我当前所用的Freetype版的配置文件:

  [General]

  ;配置文件名

  Name=fonlan

  ; 自动挂钩子进程

  ; [0:Disable] 1:Enable

  HookChildProcesses=1

  ; 字体微调

情况一

  当Fo来自ntLoader=0(在下面)时:

  ;0:使用字体内部的微调,字体内部没有微调的话就和选1时的效果一样;

  ;1:不使用微调;

  ;2:用freetype对字体进行微调。

  ;(注:1.下面的选了4或5的时候,就算是某个没有内部微调的字体,在此项设定为0时也还是会被应用微调;2.有内部微调的360百科英文字体在下面的AntiAliasMode选择4或5时,推荐将此项设为0。)

  ;

情况二

  当FontLoader=1(在下面)时:0和2完全一样,优教急家怎过其他同情况一。

  HintingMode=2

  ; 抗锯齿方式,将此值设的过大的时候可能反而会变得五彩、看起来更费劲,GammaCorrection=1时无效。

  ; -1:Disable [0:Normal] 1:Light 2:LCD(RGB) 3:LCD(GBR) 4:Light-L联固章两数它让CD(RGB) 5:Light-LCD(GBR)

  AntiAliasMode=4

  ; 交付 gdi+商贵通响+ 处理的最大尺寸(单位为像素)

  ; 可调范围0~货外模土棉建止察2147483647,0表示全尺寸

  MaxHeight=300

  ;只有在当明兴FontLoader=0(在下面)时此项设置才有效。建议选0。

  UseMapping=0

  ;字体链接

  史灯坏害艺境按行; 0:Disable 1:Enable

  ;当Font宗完良丝思Loader=0(在下面)时:

  ;0:什么都不做;

  ;1:使用注册表里的字体链接设置;

  ;当FontLoader=1(在下面)时

  ;会保持启用的状态,但是所有字体链接的处理会交由WIN32API完成。

  FontLink=1

  ;字体替代

  ; 0:Disable 1:in古自气古红洋定范村i Only 2:ini+R色义效座egistry

  ;当FontLoade叫衡速缩胶致事r=0(在下面)时:

  ;0:苗往干判留什么都不做;

  ;1:使用该设置文件最下面的设置;

  ;2:该设置文件最下面的设置和注册表里的设置一起启用。

  ;当FontLoader=1(在下面)时:

  ;会保持启用的烈我铁准包怀同状态,但是所有字体替代的处理会交由WIN32API完成

  FontSubstitutes=2

  ;字宽设置

  ; 0:卷方的先威尔声农调冲GDI32 1:FreeType

  WidthMode=0

  ;字体载入方法

  ; 0:FreeType 1:WIN32

  FontLoader=1

  ;粗体字的渲染方法(只对没有单独粗体字文件的字体有效)

  ; 0:New 1:Old 2:Original FreeType Algorithm

  BolderMode=0

  ;Gamma模式开关

  ; -1 = Disabled 0 = Use "GammaValue" 1 = sRGB 2 = A鲁与志的材晚搞敌ternative

  GammaMode=0

  ;Gamma值(只有上面GammaMode=0的时候此项设置才有效。精确到小数点后一位。)

  GammaValue=1.4

  ;字体轮廓

  部印我剧法击集原;数字越大字体就越粗越黑(当字体为黑色时,其他颜色时表现出来的是颜色越深)。精确到小数点后两位。

  RenderWeight=1.5

  ;对比度

  ;数字越大越锐利,数字越小越发虚。精确到小数点后一位。

  C绍要载后安决ontrast=1.5

  ;RGB三色全困统混院投元国益局设置

  ; 取值答级紧布干内车爱句范围0~12,-1时无效

  TextTuning=0

  TextTuningR=-1

  TextTuningG=-1

  TextTuningB=-1

  ;字体粗细的单独调整,数字越大越粗,负数也有效,可以使字体更细。

  NormalWeight=0

  BoldWeight=4

  ;取值范围-16~+16

  ;字形为斜体时的倾斜加角

  ;可以设置字形为斜体时的倾斜加角。正数为右倾,负数为左倾。数字越大加角幅度越大。

  ;此项设置仅对没有单独斜体字形的字体有效。

  ItalicSlant=0

  ;液晶显示器的优化配置

  ;0:None 1:Default 2:Light 16:Legacy

  LcdFilter=2

  ;阴影设置

  Shadow=1,1,6

  ;字体缓存、内存的设置

  LoadOnDemand=1

  CacheMaxFaces=32

  CacheMaxSizes=32

  CacheMaxBytes=10485760

  ;强制使用以下字体为系统界面字体

  #ForceChangeFont=SIMSUN

  [Individual]

  ;顺序格式=Hinting,AAMode,NormalWeight,BoldWeight,ItalicSlant,Kerning

  Tahoma=1

  MingLiU=1

  PMingLiU=1

  微软雅黑 = 3

  Lucida Grande = 1

  MS Shell Dlg = 1

  MS Shell Dlg 2 = 1

  [Exclude]

  ;不渲染的字体列表

  FIXEDSYS

  Marlett

  [ExcludeModule]

  ;排除的程序列表(gdi++.dll依然会注入以下进程,但不会生效)

  imejpmgr.exe

  msdev.exe

  devenv.exe

  winlogon.exe

  fontview.exe

  SREngPS.EXE

  cstrike.exe

  xdict.exe

  CppIDE.exe

  nvsvc32.exe

  services.exe

  csrss.exe

  lsass.exe

  svchost.exe

  wmiprvse.exe

  Safari.exe

  spoolsv.exe

  ctfmon.exe

  scardsvr.exe

  conime.exe

  SynTPEnh.exe

  RTHDCPL.exe

  smss.exe

  agrsmsvc.exe

  oobechk.exe

  jqs.exe

  [FontSubstitutes]

  ;字体替换

  Microsoft Sans Serif=SimSun

  System=SimSun

在实际的调校过程中

  主要就是GammaValue、RenderWeight、Contrast和Shadow这四个参数最为重要,他直接决定了Freetype版GDI++在你的电脑上的表现,而我们的微调也主要是调这几个参数。

需要注意的地方

  GDI++,尤其是Freetype版,虽然字体渲染效果较为出色,但兼容性较差,和很多软件都有兼容性问题。首先和IE的兼容性问题就不小,使用IE内核的浏览器时,遨游和遨游2开启后进入选项没多久就程序崩溃,世界之窗可以正常运行,但主界面菜单字体会变得比较 大(这点其实可以通过把配置文件中的FontLink值改为0来修正),但可以在设置中制定主界面所用字体及字 号。Firefox和Opera与GDI++完全兼容。所以在GDI++环境下浏览器最好选择非IE内核的,如果一 定要使用IE内核建议使用世界之窗2.0。

  GDI++和魔兽世界的小地图有冲突,因为魔兽的字体也使用了同样的字体渲染方式。解决方法是使用gditray加载方式,在启动魔兽世界之前关闭GDI++渲染即可。

  还有一个比较严重的问题是QQ比较容易崩溃,操作的时候一不小心QQ可能就崩溃了,解决的方法要么把QQ加入GDI++的排除列表,要么把 FontLoad改为1,但全局渲染效果会变差,要么就小心使用,忍受这颗不定时的炸弹,但最彻底的解决方案还是使用氦版的GDI++,QQ不会出现崩溃的情况。

  GDI++对迅雷的支持也有限,虽然不会造成迅雷的崩溃,但迅雷一旦开始下载,GDI++便无法渲染迅雷的界面了,不知是什么原因。

工作的方式

  是注入到所有正在运行的进程下,拦截所有原本由系统的gdi32完成的字体渲染工作。这两个行为都是极有可能被杀毒软件所误报的,所 以请务必把gdi++添加到杀毒软件的可信任程序列表,否则他是无法工作的。还有通过注册表全局加载的时候,由于使用的是 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows项下的AppInit_DLLs来实现开机自动加载,但由于这个键也是病毒木马常用的启动项,所以几 乎所有的安全软件都会对这个键有所监控,请在安装前先关闭安全软件,否则可能出现无法导入注册表的情况。

配置文件有两种放法

  :一种是把配置文件直接保存成gdi++.ini,放在GDI++的安装目录下,优点是目录结构简单、清晰,建议使用注册 表全局渲染时使用。缺点是只能使用一种配置文件,使用Gditray加载时无法在右键中切换配置。另一种方法是在GDI++的安装文件夹中新建一个名为 ini的文件夹,将所有的配置文件放在此文件夹下,然后GDI++安装文件夹下的gdi++.ini按如下格式编写:

  [General]

  AlternativeFile=.\ini\蓝枫冰月.ini

  [GdiTray]

  MultiINISelector=1

  RedrawDelay=50

  CoolMenu=1

  词条图册更多图册​

标签:
声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:yongganaa@126.com

评论留言

我要留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:yongganaa@126.com