精華區beta Wallpaper 關於我們 聯絡資訊
[前言] 大家好久不見A_A..研究GDI++有一小段時間.. 在這邊把自己的心得打出來一起共同分享 或許我的方法不是最好 也希望一起研究討論(禁止轟炸) [GDI++介紹] BY 70599 一:什麼是GDI++?有什麼功能? 日本人開發的免費軟體,官方版本在2006年8月29日公佈了最後一個穩定版後就停止了更新。 官網:http://drwatson.nobody.jp/gdi++/ 官方版本的gdi++只能對字體進行256(8位)階段的灰度渲染, 後來有一些日本人繼續開發出freetype版的gdi++,它能對字體進行RGB(24位)渲染。 雖然windows的cleartype也是24位,但是真的不能比ˊˋ。 二:GDI++詳解心得 這邊我們就以freetype版來做解說(雖然現在又出了更新版氫版,但我還是用這版本沒 有什麼大問題),先到這裡下載http://free.flop.jp/gdi++/oldsrc/, 下載裡面的gdi0717.zip。解壓到一個資料夾裡面,記住資料夾的位置(後面要用到)。 啟動方法: 1.把應用程式或者快捷方式拖曳到gdi++.exe中。(單純測試用) 2.通過修改登錄檔的方法使全系統應用gdi++。 3.將gditray.exe設成開機啟動。(建議) 三:GDI++.ini中的數值解說(不想研究的人可以跳過這部分,或者直接用別人設定好的) 在GDI++資料夾中,最重要也是唯一要設定的就是GDI++.ini(直接用記事本開啟)。 以下對freetype版各數值做一些說明,句首加#的數值會被註釋掉,不會起作用。 ============================================================================ ; 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完成。 ; 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 ============================================================================= 以上解說感謝對岸網友70599研究分享(要轉載請告知) 頭痛了嗎?不要懷疑 剛開始是這樣的XD.. 三:個人設定心得 相信很多網友看到上面這麼一大串,心都冷了一半了吧。 沒關西,前人種樹我門來乘涼。 這邊我只要簡單三步驟,就幾乎能搞定GDI++(視個人電腦顯示卡,螢幕而定) 1:先下載我設定好的GDI++(取自版上前輩分享再加以修改研究版)。 http://www.badongo.com/file/8589555 2:修改登錄檔 (local_machine\software\microsoft\windows NT\CurrentVersion\Font SubStitues) 在這字串中加入下列三個數值 新細明體=ILIHI 細明體=ILIHI PMingLiu=ILIHI (local_machine\software\microsoft\windows NT\CurrentVersion\GRE_Initialize) 這邊將"GUIFont.Facename=新細明體"改成如下 GUIFont.Facename=ILIHI 3:設定開機啟動GDI++ 把GDI++中的gditray.exe放到"啟動"中即可 最後還是得要說明一些問題 1:卡巴確定會"管"GDI++,我的做法是開機卡巴跳出警告後選擇"套用到全部->略過" 2:許多網友都會去Exclude,去ExcludeModule,其實這些是都不必的,我這邊只用 FontSubstitutes。(如我所設定的ini) 3:個人的螢幕顯示器都不同,所以效果還需要微調,之前WINDWOFSWOLD大已經有分享過 如何微調。請版友搜尋一下他的文章吧。 4:如果有使用VS佈景(使用SFC),WB佈景(使用SS),來編輯把所有字體改成ILIHI,會更好 。當然大小也能改變。 以上是個人這幾個月研究出來的心得,如果有任何更方便的方法可以一起討論分享^^ ps:差點忘記沒圖沒真相=_=補上幾張圖吧.. http://7.blog.xuite.net/7/5/4/2/16863244/blog_773843/txt/16506739/0.jpg
火狐網頁 http://7.blog.xuite.net/7/5/4/2/16863244/blog_773843/txt/16506739/1.jpg
一些視窗 http://7.blog.xuite.net/7/5/4/2/16863244/blog_773843/txt/16506739/2.jpg
PCMAN 最後最後恭喜阿民勝投!!阿民向前行!阿民一定贏!!(因為我下注很大阿T-T) -- http://blog.xuite.net/a12040409/meilin 桌面翻玩秀 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.162.242.180
wwf:推一下 這個程式真的每試每失敗 不過主要是我沒空仔細研究 04/02 16:13
※ 編輯: A876556 來自: 218.162.242.180 (04/02 16:24)
A876556:圖會模糊是因為圖檔的關西,實際很清晰低XD 04/02 16:25
kfc1231:太強了 推一個 04/02 17:00