利用GDI++ 来渲染系统字体

Windows7默认的雅黑给人的感觉那叫一个恶心,字体发虚。不知道为啥Windows的字体就是没Linux舒服,最近跟吐槽君同学讨论下了解到一个新的东西叫GDI++。或许大家还不知道什么是GDI++ 那我在这里就跟大家说下。

   GDI++是一个开源项目,它能接管Windows系统的GDI字体渲染功能,实现比Mac系统更华丽的字体渲染效果!使用PC的朋友再也不需要羡慕Mac上清晰的中文字体了,  因为GDI++是有过之而无不及

 

              GDI++和微软的ClearType其实是相类似的技术,都是24位字体渲染技术 ,在支持灰阶显示的字体边缘加上阴影,但GDI++的强大的可定制性和灵活性足以令ClearType无地自容,GDI++可精细定制到字体的粗细、色深,阴影的方位、长度,字体代换,排除列表等等相当多的自定义选项。

 

–以上转自百度百科

 

使用GDI++有好处也有害处,好处自然就是字体看着舒服点。害处就是字体错位以及其他各种毛病,所以说用之前最好备份下系统。

以下是GDI++的渲染效果

 

还不错把?那下面就是没开GDI++的效果

很恶心吧,不知道M$杂搞的 这么恶心的东西都能做出来。

或许很多人还不知道Linux是啥样的 那我就放出一张图。。

Ubuntu默认的字体

说了那么多到底如何开启以及使用GDI++捏?

首先市面上GDI++有2个版本 一个是氦版(FT)当然现在改名成了MacType 我用的就是他,还有一个是稳定版那个叫啥名字突然忘记了,吐槽君用的就是那个。。因为我半天没调试出来 所以放弃了他。

MacType下载地址 :  官方博客下载 (安装图片里面也有了 我下面就不发了)

装好后默认的这个LCD配置表就不错了。

 

配置表方面这里有一份吐槽君的。

 

[GdiTray]

;启动GDITray时GDI++自动生效

AutoEnable=1

 

;启用气球消息提示

NotifyBalloon=1

 

;启动多配置文件切换

MultiINISelector=1

 

;在GDITray图标上右键菜单中显示图标

CoolMenu=1

 

;启用双击GDITray图标[启用/禁用]渲染

ToggleDoubleClick=1

 

;GDITray图标索引号

IconIndex=0

 

;刷新渲染间隔

RedrawDelay=50

 

[General]

; 配置文件的名称

Name=fonlan

 

; 自动挂钩子进程

; [0:Disable] 1:Enable

HookChildProcesses=1

 

[Rasterize]

; 字体微调

; 0:NoHinting [1:Normal] 2:AutoHinting 3:Light+AutoHinting

HintingMode=3

 

; 抗锯齿方式。

; 0:Disable [1:Grayscale] 2:SubPixel(RGB) 3:SubPixel(BGR)

AntiAliasMode=2

 

; 常规体调整(加粗或减细)

; 可调范围-32~+32

NormalWeight=0

 

; 粗体字的调整(加粗或减细)

; 可调范围-16~+16

BoldWeight=-2

 

; 斜体字的倾斜角度微调

; 可调范围-16~+16

ItalicSlant=0

 

; 字体颜色深浅

; 可调范围-32~+32

Saturation=5

 

[Misc]

 

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

; 可调范围0~2147483647

MaxHeight=72

 

; Gamma 开关

; [0:Disable] 1:Enable

GammaCorrection=0

 

; α修正值,三个参数顺序为R,G,B,分别代表三原色所占比重。0为关闭,但是渲染速度反而会更慢,将此值设的过大的时候可能反而会变得五彩、看起来更费劲,GammaCorrection=1时无效。

; 每个参数的可调范围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

 

; 竖向书写开关,建议关闭。

; [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=2

 

; 检查 FreeType 的版本,不是所有版本的 FreeType 都和本程序兼容,所以此项设定最好别碰。

; [0:Check] 1:Skip

SkipVersionCheck=1

 

[Cache]

; 缓存

MaxFamilies=16

MaxStyles=32

MaxBytes=10485760

 

[Individual]

; 单独设置的字体,=1则表示使用字体内集成的微调功能。

; 格式: FontName=Hinting,AAMode,NormalWeight,BoldWeight,ItalicSlant,Saturation

Tahoma=1

MingLiU=1

PMingLiU=1

MeiryoKe_Gothic=1

MeiryoKe_PGothic=1

MeiryoKe_UIGothic=1

微软雅黑 = 3

Lucida Grande = 1

MS Shell Dlg = 1

MS Shell Dlg 2 = 1

Segoe UI = 2,,0,0,0

 

[FontLink]

; 字体链接

; 格式: FontName=Name1,Name2,Name3, … (Max:16)

MS Shell Dlg = SimSun, PMingLiU, MS UI Gothic, Batang, Gulim

MS Shell Dlg 2 = SimSun, PMingLiU, MS UI Gothic, Batang, Gulim

Segoe UI = Tahoma, SimSun, PMingLiU, MS UI Gothic, Batang, Gulim

Tahoma = SimSun, PMingLiU, MS UI Gothic, Batang, Gulim

Lucida Sans Unicode = SimSun, PMingLiU, MS UI Gothic, Batang, Gulim

Microsoft Sans Serif = SimSun, PMingLiU, MS UI Gothic, Batang, Gulim

Lucida Grande = SimSun, MS UI Gothic, STHeiti, STXihei, Gulim, PMingLiU

 

[Exclude]

; 除外的字体(不用氦渲染的字体)

Marlett

FIXEDSYS

 

[AllowModule]

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

 

[DenyModule]

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

gditray.exe

 

[UnloadDLL]

; 不想载入的进程,这个可是真正的不载入gdi++.dll哦,而不是freetype版那种载入但无效哦!

imejpmgr.exe

msdev.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

ppsap.exe

TXPlatform.exe

peer.exe

QQShell.exe

dwm.exe

jusched.exe

taskeng.exe

GoogleUpdate.exe

userNetSchedule.exe

lsm.exe

wininit.exe

peer.exe

googleupdate.exe

avp.exe

dllhost.exe

wmdc.exe

unsecapp.exe

peeradapter.exe

RtHDVCpl.exe

PinyinUp.exe

jxc_xie.exe

left4dead2.exe

他用的不是MACTYPE 估计不能用于这个吧。。

另外忘说了。默认的宋体会被GDI++渲染的很恶心,建议大家替换下,用雅园啊什么的不错,只不过我发现一个问题 字会错位或者CMD中文显示有问题(当然复制出来没问题,雅园似乎没这个问题。)

 

这里只能忍受了。。。

不知道这个能不能解决,最后别忘记把字体调大点,

最后附上一个用于替换宋体的软件以及字体包。

点击这里下载

注意:这个操作有风险,建议先备份好你的宋体 新宋体 simsun.ttc

发布者

Zmsky

http://xloli.net/?page_id=11

《利用GDI++ 来渲染系统字体》上有9条评论

发表评论