
相信每個玩桌面的人或多或少都有聽過這一個名詞.
但是真的了解或者是使用過它的人並不多.
簡單來說GDI++就是XP系統下的CLEARTYPE(桌面右鍵內容-外觀-效果)
至於為什麼不使用XP內建宣染呢?看下圖即可明白
RGB渲染(GDI++)與灰階渲染(XP)的區別 BY 70599

os:其實版主本身也不是電腦相關科系出身,只不過是對於桌面美化有著一股興趣,所以我希望能透過許多高手的經驗及教學整理讓大家了解罷了!
進入正題
以下文章轉載於對岸極限論壇會員70599,ptt網友windwofswold,delphinus.
一:前言
70599給大家的建議:
大家在用gdi++的時候有一個前提一定要明白,這是一個免費的尚在開發中的軟件,有很多原因不明的、不完善的地方,嚴重的可能導致不可逆轉的系統崩潰。作者沒有能力也沒有可能做徹底、完美的測試/調試。使用者完全是自己負責的前提下使用這個軟件,出現任何問題作者都沒有義務為你解決。接受不了的最好盡快放棄gdi++。
我半年前就開始使用gdi++了,這是一個日本人開發的免費開源軟件,官方版本在2006年8月29日公佈了最後一個穩定版後就停止了更新。(官網:http://drwatson.nobody.jp/gdi++/)官方版本的gdi++只能對字體進行256(8位)階段的灰度渲染,雖然windows在標準清晰模式下用的也是8位灰階渲染,但是明顯gdi++要強過它好多(當然這也是見仁見智,這裡僅代表個人觀點)。(這裡,圖裡面的iTunes。是官方gdi++的效果圖)
・後來又有一些日本的有志者,他們免費地開發了freetype版的gdi++,可以說這才是gdi++真正的飛躍。用linux的朋友對 freetype一定很熟悉,它能對字體進行RGB(24位)渲染,雖然windows的cleartype也是24位,但是效果和freetype版 gdi++比起來說它慘不忍睹真的一點也不過分。
開發者非常勤奮,這個軟件在半年間更新了好幾十個版本(當然都是比較小的更新),現在一些明顯的問題已經基本被修整完畢,最近一直沒有什麼更新。所有打算使用這個軟件的朋友都應該感謝他/她們!
二:設置
delphinus提供的GDI++配置下載
下載後解壓縮至C:中(最好是在C:\GDI++)
裡頭我們會動到的只有.ini檔(也是最重要的設置檔)及gdi++.dll檔
首先在INI資料夾中分別有0,1,2.ini三個設定檔
在這邊70599先為大家說明ini檔中所有參數所代表之意思
-----------------------------------------------------------------------------
[General]
; 0:Disable 1:Enable
HookChildProcesses=1
【應用到子進程】
——比如你用啟動方法1啟動了一個winrar,雙擊裡面的一個文本文檔,那麼下一步被打開的「記事本」程序也會使用gdi++渲染。
・0:禁用;
・1:啟用。
; 0:Normal 1:NoHinting 2:AutoHinting
HintingMode=1
【字體微調】
——對字體進行細微調整,以實現比較銳利、不模糊的效果。windows的cleartype就是用的這類技術,弊端是會使字體變形、筆畫粘在一起。
下面會有兩種情況,
——情況一,當FontLoader=0(在下面)時:
; -1:Disable 0:Normal 1:Light 2:LCD(RGB) 3:LCD(GBR) 4:Light-LCD(RGB) 5:Light-LCD(GBR)
AntiAliasMode=2
【抗鋸齒模式】
; 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時的效果一樣;
・1:不使用微調;
・2:用freetype對字體進行微調。
(註:1.下面的選了4或5的時候,就算是某個沒有內部微調的字體,在此項設定為0時也還是會被應用微調;2.有內部微調的英文字體在下面的AntiAliasMode選擇4或5時,推薦將此項設為0。)
——情況二,當FontLoader=1(在下面)時:
・0和2完全一樣,其他同情況一。
・-1:禁用;
・0:普通的灰階渲染;
・1:Light模式,由freetype的Reference來渲染;
・2、3:RGB/GBR24位色渲染,轉為液晶優化(電漿顯示器也能用),2和3的區別在於紅綠藍的排列不同;
・4、5:就是Light模式下的RGB/GBR24位色渲染,最近版本才加入的新功能,推薦使用!4和5的區別在於紅綠藍的排列不同。
・0:什麼都不做;
・1:使用註冊表裡的字體鏈接設置;
——當FontLoader=1(在下面)時:
・會保持啟用的狀態,但是所有字體鏈接的處理會交由WIN32API完成。
・小貼士:字體鏈接:估計很多朋友都很熟悉了,windows里處理字體的一種技術。拿註冊表裡的默認設置舉個例子,打開註冊表的「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink」會發現英文字體Tahoma里鏈接了一些字體,裡面有一些是非英文字體,結果就是系統在調用Tahoma時,遇到Tahoma里沒有的字符時就會到被鏈接的字體里去找。
; 0:Disable 1:ini Only 2:ini+Registry
FontSubstitutes=0
【字體替代】
——當FontLoader=0(在下面)時:
; 0:GDI32 1:FreeType
WidthMode=0
【字體排列】
——字寬設置。
; 0:FreeType 1:WIN32
FontLoader=0
【字體的載入方法(注意是載入方法,不是渲染方法)】
——上面反覆提到的一個設置。
; 0:New 1:Old 2:Original FreeType Algorithm
BolderMode=0
【粗體字的渲染方法】
——對象字體是沒有單獨粗體字文件的字體,有單獨粗體字文件的字體(如微軟雅黑)此項設置不會生效。
; -1 = disabled 0 = use "GammaValue" 1 = sRGB 2 = alternative
GammaMode=1
【Gamma模式開關】
; sRGB ≒ 2.2 CT-Default = 1.4
GammaValue=1.0
【Gamma值】
——只有上面GammaMode=0的時候此項設置才有效。設置的數值可以精確到小數點後面一位。
RenderWeight=1.0
【字體輪廓】
——數字越大字體就越粗越黑(當字體為黑色時,其他顏色時表現出來的是顏色越深)。
Contrast=1.0
【對比度】
——數字越大越銳利,數字越小越發虛。
; 0-12
TextTuning=0
TextTuningR=-1
TextTuningG=-1
TextTuningB=-1
【文字邊界設置】
——-1時無效(0也是有效的)。
; -32:+32
NormalWeight=0
; -16:+16
BoldWeight=0
【字體粗細的單獨調整】
——可以單獨設置常規(NormalWeight)、粗體(BoldWeight)狀態下的粗細。
; -16:+16
ItalicSlant=0
【字形為斜體時的傾斜加角】
——可以設置字形為斜體時的傾斜加角。正數為右傾,負數為左傾。
; 0:None 1:Default 2:Light 16:Legacy
LcdFilter=2
【液晶顯示器的優化配置】
——不同顯示器效果也不一樣,需要自己調試。
LoadOnDemand=0
CacheMaxFaces=16
CacheMaxSizes=16
CacheMaxBytes=5242880
;CacheMaxBytes=10485760
【字體緩存、內存的設置】
——同樣的設置在不同的機器上效果完全不同,所以沒有什麼「最合理的設置」。
適當設置的話能減少內存佔用(當然再怎麼少也少不過不用gdi++),並提高gdi++引擎的穩定性。
#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 ゴシック
【字體替代】
——系統在調用「=」前面的字體時會忽視「=」前面的字體,而去直接調用「=」後面的字體。
-----------------------------------------------------------------------------
以上或許大家有看沒有董,但是沒關係貼心的delphinus已經幫大家設置好
0,1,2.ini分別代表字體 粗,中,細三種版本了!
接著把時間交給windwofswold來教大家如何設定吧!
在Windows Registry裡面的Font SubStitues裡面
我有設定 細明體、新細明體、PMingLiu 替代成 iLiHei-Trebuchet
然後在FontLink/SystemLink裡面有在前面插入iLiHei-Trebuchet.otf,iLiHei-Trebuchet
然後我拿delphinus大大分享的2.ini(細)改成自己想要的
[General]
Name=細
Icon=..\gditrayicon.icl,3
HookChildProcesses=1
HintingMode=1
AntiAliasMode=4
;上面那行改了會有差 每台顯示器都不一樣
MaxHeight=150
FontLoader=0
FontSubstitutes=2
;我交給GDI++來處理字形取代,WIN32API我不知道為什麼會把我的系統的字黏在一起
GammaMode=0
GammaValue=1.8
;我去查Apple電腦預設的Grammar值來套用(求心安?)
RenderWeight=1.8
Contrast=1.2
TextTuning=0
TextTuning=0
TextTuningR=0
TextTuningG=0
TextTuningB=1
;真正在調整有差別的是上面6行,數值要一直去嘗試...我調了一個多小時
NormalWeight=6
BoldWeight=0
ItalicSlant=0
LcdFilter=2
LoadOnDemand=1
CacheMaxFaces=16
CacheMaxSizes=16
CacheMaxBytes=4194304
ForceChangeFont=iLiHei-Trebuchet
FontLink=1
[Individual]
標楷體=0,0
;有的時候標楷體會拿來印報告 所以...
[Exclude]
細明體
新細明體
華康少女文字W3
華康少女文字W5
華康少女文字W7
;上面的要設定才會看起來正常 少女體我拿來打B(羞)
[ExcludeModule]
fontview.exe
gditray.exe
fterm.exe
mplayer.exe
mplayerc.exe
utorrent.exe
gom.exe
;msnmsgr.exe
Rainlendar.exe
kmplayer.exe
MsgPlusLive.dll
AcroRd32.exe
[FontSubstitutes]
; 書式1: ????=代替????
; 書式2: ????,CHARSET=代替????,CHARSET
標楷體=iLiHei-Trebuchet
新細明體=iLiHei-Trebuchet
細明體=iLiHei-Trebuchet
細明體 & 新細明體 (TrueType)=iLiHei-Trebuchet
標楷體 (TrueType)=iLiHei-Trebuchet
PMingLiU=iLiHei-Trebuchet
Tahoma=iLiHei-Trebuchet
Verdana=iLiHei-Trebuchet
System=iLiHei-Trebuchet
MingLiU=iLiHei
;這邊發狂似的取代字體 XD
然後我還用StyleBuilder把自己用的布景主題裡面字形都換成iLihei-Trebuchet
然後就到處都漂漂亮亮啦XD
三:GDI++啟動設定
要開機啟動GDI++的方法有兩種
1:在C:\Documents and Settings\Administrator\「開始」功能表\程式集\啟動 放入
gditray.exe的捷徑便會在開機時啟動
2:登錄編輯程式中編輯以下項目
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows]
"AppInit_DLLs"="C:\\...路逕自己改...\\gdi++.dll"
四:後記
不知道大家看完之後有沒有感到頭昏眼花呢?
其實gdi++設置可以說難,但是了解後也可以說不難.
真的喜歡的人花點時間研究一下,所得到的代價是值得的!
最後還是再一次感謝70599,windwofswold,delphinus



