「Tips & FAQ」の編集履歴(バックアップ)一覧に戻る
Tips & FAQ」を以下のとおり復元します。
#contents

*使い方

**FreeType版
+[[うpろだ>http://free.flop.jp/gdi++/]]からfreetype.dllをDLする(※)
+XPの場合: freetype.dllをgdi++.dllと同じフォルダにコピー&BR()2kの場合: freetype.dllをPATHの通ったフォルダ(system32とか)にコピー
+gdi++.exeに対象exeをドロップして起動
※06/11/15 8:00現在 gdi0299にFreeType 2.2.1のDLLが置いてある。


・mfdel.exeを使ってManifestを削除すると、XPでも2kと同じ動作にできる。
 もちろんgdi++.dllを上書きする度にmfdel.exeを使う必要がある。

・VC6又はDDKを使ってCVSのFreeTypeを簡単にビルドできるセットがgdi0231にある。
 VC8以降を使う場合はgdi0236の.makをコピーする。

・さらに、バッチファイルを実行するだけで全自動でビルドできるセットもある。
 ビルドに必要なcvsやpatchが予め入っているのでVC持ってるならお勧め。
 VC6用:      gdi0258.zip (オリジナル)
 VC2003用:   gdi0265.zip
 VC2005EE用: gdi0295.zip
※これは「やり方分かってるけど面倒な人向け」の物なので、BATの中身を見て
 何をやるか理解した上で実行すること。

・十分なCPU、十分なメモリを積んでいるPC向け豪速化設定の例(自己責任)
 UseMapping=1
 CacheMaxFaces=16
 CacheMaxSizes=4096
 CacheMaxBytes=16777216

----

*FAQ

Q. 全てのプロセスにgdi++.dllを適用させたいんだけど。
A. gdippin.exe または gdippManager を使いましょう。


Q. 「DLLの利用に失敗しました。このDLLを一覧から除外します。」と表示されて、gdippManager が使えないよ。
A. gdi++.ini の [General] セクションに UseManager=1 を加えてみましょう。
  freetype.dllを正しい場所に置いてあるか確認しましょう。
  XPの場合: freetype.dllをgdi++.dllと同じフォルダにコピー
  2kの場合: freetype.dllをPATHの通ったフォルダ(system32とか)にコピー


Q. 一部のDynafontやSH G30で描画が変
A. FreeTypeのバグ。まだ直ってない。
  http://na.yuki.st/lily/programming/freetype2_imifu.html


Q. LCDで黄色や水色が目立つ
A. FreeType2.2.2ではサブピクセルレンダリングが改善される予定。


Q. M+2VM+IPAG circleで"0"のボールドが正しく描画されない
A. FreeTypeのバグ。FreeType2.2.2では直っている。


Q. 環境によってはManager使用時にExplorerとかでなかなか有効にならない
A. FreeType版はCreateFont系が呼ばれるまでAA処理を準備しないため。
  メニューやダイアログでも出すとそのうち有効になる。


Q. Tahomaとかで有効にならない
A. フォントリンク。そんなOS依存しまくり機能にFreeTypeは対応していない。


Q. 灰色文字でAAが効かない所がある
A. そういう物。標準AAやClearTypeでも効いてないのでキニシナイ


Q. AntiAliasMode=1のときダイアログが詰まる
A. 以下FreeTypeのソースより引用。
 In `light' hinting mode we disable horizontal hinting completely.
 We also do it if the face is italic.

----

*簡単な各ファイルの説明

**gdi++.dll
>gdi++.dll は、Windows のシステムファイルの一つ、 gdi32.dll の動作を横取りし、文字描画を担当する API をオーバーライドすることで、フォントの表示品質を改善します。APIが呼ばれると、一度バックバッファに最大4倍のフォントサイズで文字を描画し、それを縮小してから画面に転送します。 Mac OS(Classic) 用の有名なシェアウェアに、SmoothType がありますが、すなわちそれと似たような働きをします。[[本家>http://drwatson.nobody.jp/gdi++/]]より抜粋
**gdi.exe
-gdi++.exe&BR()仕掛けたい実行ファイルをgdi++.exeにドラッグ&ドロップすると、フックされた状態で起動します。Windows標準のコントロールのフォント描画にも影響が及びます。
-gdi.exe(トレイ格納型)&BR()トレイアイコンを右クリックから「DLLディレクトリを開く・INIを開く・有効/無効の切り替え」ダブルクリックで「有効/無効を切り替え」が可能。&BR()有効にすると実行中の全プロセスに効果が及ぶので注意が必要。適用したくないものは[ExcludeModule]に設定する。&BR()up0060でEXE, DLLのバージョン情報も表示できるように。&BR()up0061(gdipp.exe)ではGUIから設定も可能に。&BR()up0097(gdippManager.exe)はup0060とup0061を併せたもの。

**gdi++.ini
-設定ファイル"gdi++.ini"を同じディレクトリに置くことで、レンダリングの設定ができます。&BR()(なくても動きます)
>[General]
>Quality=1
>Weight=0
>Enhance=0
>UseSubPixel=0
>SubPixelDirection=0
>MaxHeight=0
>ForceAntialiasedQuality=0
>[Exclude]
>FixedSys
>Marlett
>メイリオ
>[Individual]
>Tahoma=3
>[ExcludeModule]
>iexplore.exe
>firefox.exe

-Quality&BR()フォントの品質を調節します。&BR()0:何もしない 1:2倍キレイ(デフォルト) 2:3倍キレイ 3:4倍キレイ
-Weight&BR()フォントの濃さを調節します。(n + 1)回重ねて描画します。
-Enhance&BR()水平・垂直の輪郭線を強調します。&BR()0:強調しない(デフォルト) 1:少し強調 2:ふつうに強調 3:強く強調 4:激しく強調
-UseSubPixel&BR()簡易サブピクセルレンダリング(ClearTypeもどき)を有効にします。&BR()0:つかわない(デフォルト) 1:つかう
-SubPixelDirection&BR()サブピクセルレンダリングを使うときの、サブピクセルの並び順を指定します。ほとんどの液晶モニタは左からRGBの順にサブピクセルが並んでいますが、たまにBGRの順で並んでいるモニタもあるようです。&BR()0:RGB(デフォルト) 1:BGR
-MaxHeight&BR()スムージングを掛ける最大のフォントサイズを「ピクセル単位で」指定します。&BR()0:すべてのサイズ(デフォルト)
-ForceAntialiasedQuality&BR()WindowsのClearTypeを無視するかどうかを指定します。無視すれば描画が高速になります。&BR()0:標準の品質(デフォルト) 1:ClearTypeを無視
-[Exclude]セクション&BR()標準のレンダラで描画したいフォントを一行に一書体ずつ記入します。フォント名がリストに合致すれば、gdi++.dll は標準のレンダラに描画を丸投げします。ビットマップフォントや、ClearType系のフォントにどうぞ。
-[Individual]セクション&BR()指定したフォント毎にWeightを設定できます。
-[ExcludeModule]セクション&BR()gdi++.dllを適用させたくない実行ファイルを指定できます。このセクションに記述された実行ファイルにはgdi++.dllが適用されません。

**gdi++.ini (FreeType版)

INIの例。FreeTypeの設定は[General]に書いても動作する。

>[General]
>HookChildProcesses=1
>[FreeType]
>HintingMode=2
>AntiAliasMode=2
>ForceChangeFont=
>TextTuning=0
>TextTuningR=0
>TextTuningG=0
>TextTuningB=0
>NormalWeight=0
>BoldWeight=0
>ItalicSlant=0
>UseMapping=0
>UseManager=0
>#LcdFilter=0
>CacheMaxFaces=0
>CacheMaxSizes=0
>CacheMaxBytes=0
>[Individual]
>メイリオ=0,2
>Meiryo=0,
>MS Pゴシック=,0,,-5
>[Exclude]
>Marlett
>[ExcludeModule]
>fontview.exe

・HookChildProcesses
 子プロセスにも自動でgdi++を適用

・HintingMode
 ヒンティングの設定。
 0だとバイトコードインタプリタを使用します
  (フォントに含まれるヒンティングそのもの)。
 1だとヒンティングをしません。
 2はFreeTypeのオートヒンティングを使用します。
※FreeTypeライブラリのバイトコードインタプリタがOFFになっている場合は
 0と2が同等になります。
※一部のフォントではバイトコードインタプリタによるヒンティングを行わないと
 字形が崩れます(例:DF平成ゴシック)。

・AntiAliasMode
 -1でアンチエイリアスを無効化。
 0なら普通のアンチエイリアス(256階調)をかけます。
 1はLightモードです。FreeTypeのReferenceによるとMac OS Xっぽい描画に
 なるらしい。
 2、3は液晶用。並びが違います。
※1を指定したときはHintingModeは2(オートヒンティング)にしてください。
 Lightモード(1)はノーマルモード(0)と比べて字形の変化が少なくなります。

・ForceChangeFont
 強制的にそのフォントを使うようになる
 ダイアログが見づらくなるが一時的に特定のフォントで確認したい時に使用する

・TextTuning、TextTuningR、TextTuningG、TextTuningB
 文字の締まりを良くするようなもの。
 -1を指定すると無効化できる。(注: 0でも有効になっている)
 0-12までの値を指定できます。
 TextTuningはAntiAliasModeが0か1の時に使用します。
 TextTuningR・TextTuningG・TextTuningBはAntiAliasModeが2か3の時に使用します。
※文字と背景の境界を調節し、背景側を文字側に侵食させる(背景を強く出す)ような
 形になっています。より大きな値を指定すると文字がより締まってみえますが
 アンチエイリアスの効果も落ちるので注意してください。

・NormalWeight
 未対応。現時点で設定しても何も変わらない。

・BoldWeight
 太字のウェイトを相対値で指定(-16~16)。マイナスにすると細くなる。

・ItalicSlant
 斜体の傾斜を相対値で指定(-16~16)。

・UseMapping
 フォント読み取りにMemory Mappingを使う。

・LcdFilter
 FT_Library_SetLcdFilterに渡すパラメータ。
 0:None、1:Default、2:Light、16:Legacy
 ※CVSの最新ビルド(06/11/14現在)以外では使用しない事。

・CacheMaxFaces、CacheMaxSizes、CacheMaxBytes
 FTC_Manager_Newに渡すパラメータ。詳細はFreeTypeのマニュアル参照
 ※パラメータチェックしてないので大きな値を設定すると暴走する可能性あり

・Individual
 フォント別に個別設定する。
 書式: フォント=HintingMode,AntiAliasMode,NormalWeight,BoldWeight,ItalicSlant
 例のように省略可能。その場合は[FreeType]で設定した共通設定が使われる。

・Exclude
 除外フォント。本家と違って上限は無し。

・ExcludeModule
 除外モジュールリスト。本家と違って上限は無し。
----

*各ビルドまとめ

**gdi++.dll

■uporg529021 2006/09/26 23:37:27 http://www.uploda.org/uporg529021.lzh.html
└[[gdi++20060927-enhance (フィルタ修正版) 2006/09/27 12:42:30>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_9fb60577]]
 └[[gdi++20060928-enhance (バグ修正) 2006/09/28 07:18:19>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_8af57783]]
  └[[gdi++20060929-enhance (104-106の修正) 2006/09/29 00:45:24>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_3aef0309]]

■[[stable version (gdi++20060923) 2006/09/23>http://drwatson.nobody.jp/gdi++/download.html]]
└[[up0093 (ソースをシェイプアップ?20060923版相当に戻してみた) 2006/10/01 02:57:42>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_4a4979ae]]
 └[[up0116 (up0093のバグ修正+Pico氏(up0112)の縮小アルゴリズムを組み込み) 2006/10/06 01:46:58>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_f7305d63]]
  └[[up0118 (up0116のバグ修正+おまけ改) 2006/10/06 10:06:38>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_67607c3e]]

■[[stable version (gdi++20060927) 2006/09/27 12:00:00>http://drwatson.nobody.jp/gdi++/download.html]]
├[[up0004 (sse2/pentium4用に最適化したもの) 2006/09/27 15:17:51>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_b6e0cc0b]]
│└[[up0009 (PentiumM(Banias or later) 2006/09/27 16:21:34>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_15297680]]
│ └[[up0011 (デバッグビルド) 2006/09/27 16:36:02>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_2a06e8bf]]
│
├[[up0012 (フォントごとにウェイト指定) 2006/09/27 16:44:08>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_e8f9fdc9]]
│└[[up0017 (up0004lzh+individualセクション有効化) 2006/09/27 18:48:09>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_855eefb6]]
│ └[[up0018 (0017+version+allgdi) 2006/09/27 19:26:38>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_f1f88559]]
│
├[[up0019 (20060927版+バージョンリソース付きdll+730のallgdi++) 2006/09/27 20:37:08>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_113a8c78]]
│
├[[up0021 (最適化ビルド+いろいろ) 2006/09/27 23:30:01>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_52376fed]]
│└[[up0025 (up0021+953+951+最適化) 2006/09/28 02:13:32>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_9d2b556f]]
│ └[[up0049 (up0025+194+ソース分割) 2006/09/29 01:51:55>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_56ed9262]]
│  └[[up0052 (up0049 修正版) 2006/09/29 03:46:30>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_808808fb]]
│   └up0056 (up0052 改変(ソースのみ)) 2006/09/29 12:43:45
│
├[[up0023 (キャッシュ周りをマルチスレッド化) ExcludeModuleなし 2006/09/27 23:46:43>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_1ab57a62]]
│└[[up0027 (944 をベースにソースを整理してみた。) 2006/09/28 02:31:14>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_6a960edf]]
│
├[[up0075 (20060927+allgdi+ExcludeModule+TLS) 2006/09/30 01:01:43>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_1318136e]] 
│└[[up0076 (up0075のズレるバグ修正) 2006/09/30 12:26:32>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_f7dff1cc]]
│ └[[up0079 (20060927+allgdi+ExcludeModule+TLS その2) 2006/09/30 15:39:26>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_295e47d6]]
│  └[[up0105 (1bit+アルファブレンド(注:要SSE2、きわめて未完成)) 2006/10/04 11:55:16>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_8e665e1a]]
│   └[[up0109 (up105のSSE無し版) 2006/10/05 00:19:13>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_e95643db]]
│
├[[up0107 (up0104-エンハンスフィルタの改良版-のバグ修正) 2006/10/04 12:40:27>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_bf24c483]]
│└[[up0112 (MMX対応など) 2006/10/05 07:43:09>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_0ae8837c]]
│
└[[up0139 (FreeType2 MS Pゴシック 16ピクセルのみ) 2006/06/10/23 20:11:47>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_e06cd752]]

元のビルドがわからないもの
■[[up0038 (エンハンサの修正 SSE2 & Normal) 2006/09/28 22:16:08>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_e89f987b]]
■[[up0016 (ICC9.1にてPGO付きビルドSSE2/Pentium4向け) 2006/09/26 23:37:27>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_9a6af920]]

**gdi++.dll FreeType版

■[[gdi0143 (up0133をコンパイルした物) 06/10/27(Fri),01:06:51>http://www18.atwiki.jp/gdiplus2/pages/14.html#id_fbbd6348]]
-[[gdi0152 (gdi0143 + FreeType = gdi0149 の修正版) & gdi0151 (FreeType DLL版)06/10/28(Sat),11:31:50>http://www18.atwiki.jp/gdiplus2/pages/14.html#id_2df49ff2]]
-[[gdi0156 (gdi0152の修正版)06/10/28(Sat),17:39:45>http://www18.atwiki.jp/gdiplus2/pages/14.html#id_0ce8a525]]
-[[gdi0164 (gdi0156の修正版)06/10/28(Sat),17:39:45>http://www18.atwiki.jp/gdiplus2/pages/14.html#id_0654244e]]
-gdi0170 (gdi0168修正版)06/10/29(Sun),13:19:49
-[[gdi0172 (gdi0170ベース+何か)06/10/29(Sun),14:12:49>http://www18.atwiki.jp/gdiplus2/pages/14.html#id_898da420]]
--[[gdi0173 (manifest付きgdi0172)06/10/29(Sun),21:25:04>http://www18.atwiki.jp/gdiplus2/pages/14.html#id_0359e6eb]]
-gdi0177 (gdi0172+カーニングオプションと文字サイズの何)06/10/29(Sun),22:28:35
-[[gdi0181 (gdi0177の修正)06/10/30(Mon),03:53:58>http://www18.atwiki.jp/gdiplus2/pages/14.html#id_2b045573]]
-[[gdi0206 (gdi0181+...)06/11/01(Wed),06:53:30>http://www18.atwiki.jp/gdiplus2/pages/14.html#id_33cc8b51]]
-[[gdi0216 (gdi0209修正+機能追加)06/11/01(Wed),23:13:25>http://www18.atwiki.jp/gdiplus2/pages/14.html#id_43401276]]
-[[gdi0224 (gdi0216mod3)06/11/02(Thu),20:10:09>http://www18.atwiki.jp/gdiplus2/pages/14.html#id_1c0ee20d]]
-[[gdi0228 (gdi0224ベースで色々修正)06/11/03(Fri),01:12:35>http://www18.atwiki.jp/gdiplus2/pages/14.html#id_7f7f07cb]]
-[[gdi0235 (gdi0228に機能追加)06/11/03(Fri),19:01:18>http://www18.atwiki.jp/gdiplus2/pages/14.html#id_fdef8fd2]]
-[[gdi0238 (ズレが何さ。)06/11/03(Fri),20:22:33>http://www18.atwiki.jp/gdiplus2/pages/14.html#id_ab81b7e4]]
-gdi0257 (gdi0238で修正)06/11/05(Sun),02:01:13
-gdi0260 (gdi0257を3倍近く高速化)06/11/05(Sun),03:08:33
-[[gdi0268 (高速化+安定性低下)06/11/05(Sun),22:31:34>http://free.flop.jp/gdi++/src/gdi0268.zip]]
-[[gdi0280 (gdi0276のソース付き)06/11/07(Tue),21:15:29>http://free.flop.jp/gdi++/src/gdi0280.zip]]
-[[gdi0300 (最新CVSに合わせて修正)06/11/14(Tue),20:03:49>http://free.flop.jp/gdi++/src/gdi0300.zip]]
-[[gdi0305 (gdi0303を少しだけ修正)06/11/18(Sat),11:30:01>http://free.flop.jp/gdi++/src/gdi0305.zip]]
-[[gdi0310 (IEのズレ修正とか(多分))06/11/20(Mon),00:09:22>http://free.flop.jp/gdi++/src/gdi0310.zip]]

**gdippManager
■[[gdi0029 (トレイ格納タイプのgdi.exe) 2006/09/28 02:43:34>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_e1fffb0d]]
-[[ver.0929 (gdi0061) 06/09/29(Fri),17:44:56>http://free.flop.jp/gdi++/src/gdi0061.zip]]
-[[ver.1001 (gdi0097) 06/10/01(Sun),16:45:48>http://free.flop.jp/gdi++/src/gdi0097.zip]]
-[[ver.1002 (gdi0102) 06/10/02(Mon),21:58:40>http://free.flop.jp/gdi++/src/gdi0102.zip]]
-[[ver.1005 (gdi0110) 06/10/05(Thu),02:27:36>http://free.flop.jp/gdi++/src/gdi0110.zip]]
-[[ver.1028 (gdi0147) 06/10/28(Sat),02:10:02>http://free.flop.jp/gdi++/src/gdi0147.zip]]
-[[ver.1029 (gdi0176) 06/10/29(Sun),22:24:18>http://free.flop.jp/gdi++/src/gdi0176.zip]]
-[[ver.1105 (gdi0261) 06/11/05(Sun),03:56:22>http://free.flop.jp/gdi++/src/gdi0261.zip]]
-[[ver.1120 (gdi0312) 06/11/20(Mon),03:09:10>http://free.flop.jp/gdi++/src/gdi0312.zip]]

**その他
■[[up0088 (サー(ry ) 2006/10/01 00:37:59>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_e48fad9a]]

■[[up0116のおまけ (up0093のバグ修正+Pico氏(up0112)の縮小アルゴリズムを組み込み) 2006/10/06 01:46:58>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_f7305d63]]
 └[[up0118 (up0116のバグ修正+おまけ改) 2006/10/06 10:06:38>http://www18.atwiki.jp/gdiplus2/pages/4.html#id_67607c3e]]

■[[gdippin2 (gdi++.dll のローダ・アンローダ)06/11/12(Sun),11:55:25>http://free.flop.jp/gdi++/src/gdi0297.zip]]

----

*gdi++.ini推奨設定

**[Exclude]セクション
メイリオ
Meiryo
Marlett
System
FixedSys
Modern
MS Sans Serif
MS Serif
Roman
Small Fonts
Script
Courier

Terminalも?

----

**[ExcludeModule]セクション
fontview.exe

復元してよろしいですか?

目安箱バナー