約 2,363,446 件
https://w.atwiki.jp/gdiplusplus/pages/2.html
メニュー TOP gdi++.dll(FreeType)使い方 バイナリ 更新履歴 表示サンプル FreeType.dll FAQ Tips gdi++.dll(GetGlyphOutline) gdi++.dll(本家) gdi++.dll(Helium版) 改テンプレ案兼簡易インストガイド Manager アイコン 要望・バグトラック 視認性テスト comment Link 専用アップローダ
https://w.atwiki.jp/gdiplus2/pages/22.html
1. 使い方 2. バイナリ 3. 更新履歴 4. FAQ Q. Managerが使えないよ A. 次の事を確認しましょう gdippManagerは最新か 2ch.gdi++.freetype.manifest が置いてあるか gdi++.ini で、UseManager=1 の前の # は消してあるか freetype.dll を正しい場所に置いてあるか XPの場合 freetype.dll を gdi++.dll と同じフォルダにコピー 2kの場合 freetype.dll をPATHの通ったフォルダ(system32とか)にコピー Q. 「DLLの利用に失敗しました。このDLLを一覧から除外します。」って出るんだけど A. 「Q. Manager が使えないよ」参照 Q. Explorerとかでしばらく有効にならない A. FreeType版は標準ではCreateFont系が呼ばれるまでAA処理を準備しないため。 PCの性能が有り余っているなら LoadOnDemand=1 にしてみるとか。 Q. 起動時から「有効」にしたい A. パラメータに -on をつけましょう たとえばショートカットのプロパティのリンク先に "C \Program Files\gdi++\gdippManager.exe" -on ※パスと-onの間は半角空白
https://w.atwiki.jp/gdiplus2/pages/27.html
gdi++.dll 使い方 バイナリ readme SS 履歴
https://w.atwiki.jp/gdiplusplus/pages/15.html
1. 使い方 2. バイナリ 3. 更新履歴 4. FAQ 更新履歴 注 このページの情報は古い可能性があります。最新版の情報などは2chスレを各自追いましょう。 また、こちらも参照してみて下さい。 ※特に明記してないのは693@3pxによる変更・修正 ■gdi0392 gdi0387からの変更点 David Turner氏の指摘を受けたので、パス操作関数を自前の物に置き換えてみる。 どう見ても手抜き関数です。本当に(ry 配列クラスもまずそうなので素直にATL使うことにした。 gdi++.exeのエラーメッセージをリソース化してみる。 多分英語版Windowsとか使ってるといい加減な英語メッセージが出るはず。 マニュアル見てたらFT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTHなるフラグハッケソ。 DynafontやSH G30で幅が変だったのをgdi++側でどうにか出来た。 ■gdi0387 gdi0369からの変更点 2ヶ月記念でも何も無い。 Operaで描画できないので、MM_TEXT以外を弾くようにしていたのをやめた。 gdi++.exeの動作をよりExplorerに近づけた。 標準AAより薄いという話題が続いてるので***Weightの上限・下限を倍にした。 ■gdi0369 ExcludeModuleでもとりあえずgdi++.dllはロードしておくように。 Manager使ってるとなぜかExplorerでメモ帳が起動しないことがあったので修正。 ■gdi0367 gdi0347からの変更点 太字の描画を変えてみた。 ↑をするのにFreeTypeのソースを一部含んでるからライセンスをFTLにした。 ■gdi0347 gdi0333からの変更点 HookChildProcessesのバグ修正。 - 「メモリが "written" になることはできませんでした。」とか出るやつ。 - ANSIアプリで適用されないみたいなのでCreateProcessAもフックした。 - ついでにManager使ってると自動でHookChildProcesses=0にしてたのをやめた。 gdi++.exeの動作を改善。 Wordとかコントロールパネルとかの特殊なショートカットが動くようになった。 縦書きグリフ読めるかなあ? (gdi0344、555氏) ※FreeTypeに手を加える必要があるため、付属のgdi++.dllでは対応していない。 対応させるには別ファイルの下のほうに書いてある手順でgdi++をビルドする。 ■gdi0333 gdi0324からの変更点 NormalWeightに対応してみた。 Individualセクションとかの総文字数が256を超えていると読めなかったバグ修正。 Individualで指定した数値の範囲溢れチェックしていなかったバグ修正。 XPのメモ帳でメイリオとか指定すると異様に重いというメモ帳のバグを回避。 マニュアル分割。 ■gdi0327 gdi0310からの変更点 (by 555) ◆0x0D/0x20I氏のアイコンをちょいとexeにつけてみる。 どうもsetlocaleしてないといまいちかもしれないのでなんとなく。 ■gdi0324 gdi0310からの変更点 1ヶ月記念で全部入りセット HookChildProcessesで2階層以降の子プロセスに適用されなくなっていたのを修正。ただし仕様上、間にCUIアプリなどが入るとうまくいかない可能性あり。 マッピングモードがMM_TEXT以外を弾くように。 ANSI版APIで、文字数が少ないときはバッファをスタックから確保するようにした。JaneDoeとかのANSIアプリでオーバーヘッドが小さくなった。 ボールドの描画をWindowsっぽくした。 自前キャッシュに食わせる方が(FreeTypeのキャッシュより)速い事が分かったのでFT_LOAD_RENDERでFTC_ImageCache_Lookupを呼び出さないようにした。 ついでに自前キャッシュもCacheMax~に対応してみた。 初期設定でメモリを馬鹿食いしないようにした。 オプション設定を追加・復活+隠しオプションを明文化 gdippInfoツールを追加 その他細かいバグ潰し ■gdi0310 gdi0305からの変更点 グリフ番号の見つからなかった文字だけをWindowsの標準レンダラに投げるように。副作用で、Tahomaとかで多少見やすくなったりIEでのズレが無くなったり。 文字幅計算で無駄な処理を減らした ■gdi0305 gdi0301からの変更点 BoldやItalic用のフォントを使用するようにした (gdi0270、555氏) ■gdi0301 gdi0298からの変更点 LcdFilterオプション追加 補助キャッシュのバグ修正(2重delete+GC作動していなかった) ■gdi0298 gdi0289からの変更点 HookChildProcessesでBATを開けるようにした(エラー処理省いただけ) Memory Mappingを復活させた リソースのコメントにFreeTypeのcredit入れといた Individualのパラメータ省略がバグっていたのを修正 ■gdi0289 gdi0268からの変更点 補助キャッシュの無駄を無くしてさらに高速化 GetFontData周りの無駄を減らして消費メモリ量減少 オプション設定追加 堕落。(gdi0286、555氏) ■gdi0268 gdi0257からの変更点 ソース書き換えまくって安定性が落ちたので注意 HDBENCH升搭載 補助キャッシュを搭載したので多少高速化が期待できるはず GetFontDataに渡すバッファをMemory Mappingに変えた Managerで使うとやたらと不安定なので一時的に使えなくした ■gdi0257 gdi0235からの変更点 上下ズレに終止符をうった (555氏) SetTextCharacterExtraを正しく扱うようにした ForceChangeFontで多少見やすくなった 灰色文字描画の処理方法を変えたのでメニューとかで文字が潰れなくなった AntiAliasMode=-1でAAを無効化できるようにした ■gdi0235 gdi0228からの変更点 Individualで個別設定可。 readmeの統合(・∀・)カンリョウ!! ■gdi0228 gdi0224からの変更点 メイリオ on WinXPの化け直し "EnableKerningの廃止"をgdi0206以降のreadmeに書いていなかった JaneDoeの書き込みダイアログで選択文字列にAAが効かなかったバグ修正 Manifest削除ツール追加 991@3px氏の要望に応えてみる readmeの統合中 ■gdi0224 gdi0216からの変更点 GetTextMetricsのフック関数でFreeTypeGetTextMetricsの呼び出しに失敗したときの処理を変更(FreeTypeGetTextMetricsで失敗してもFALSEを返さない)。 化ける問題で、37@4px氏の発言に基づきXPでもTextOut系のフック関数でオリジナルを呼ばないようにしてみた。(ちなみに37@4px=693だったりする) ■gdi0216 gdi0209からの変更点 豪速化オプション搭載(使用は要注意) XPで全く動作しない致命的バグ修正 MS-IMEで欠けるバグが再発してたのを修正 ■gdi0209 gdi0206からの変更点 AntiAliasMode=3が効いていなかったバグ修正 Gdipp~系のAPIを一時的に削除 GetCharWidthW、GetCharWidth32Wもフックした FT_Bitmap bufferがNULLの場合はとりあえずTextOutに投げといた FreeType周りのソースを整理して弄りやすくした ■gdi0206 gdi0181からの変更点 "最初に読む.txt"のファイル名変更 iniファイルの[General]、ForceChangeFontにフォント名が書かれている場合、強制的にそのフォントを使うようになる。(gdi0186) manifest入れた( 891氏) FT_Library_SetLcdFilterを呼ぶようにしたCVSのFreeType 2.2.2で画質が向上する。(※) MS-IMEで欠けるバグの修正( 876氏) 欧文フォントでずれるバグを多分潰した ※バイナリは上げるつもりないのでCVSから自分で取ってきてコンパイルする。 ■gdi0181 gdi0177からの変更点 下線と取消線の描画位置を修正 サブピクセルレンダリングを修正 FontListをsettings.cpp/hに移動したりいろいろ改造 DrawHorizontalLineをしょーもない最適化(バグってるかも) ■gdi0177 gdi0172からの変更点 (by 555) カーニングを設定で切り替えられるように。 文字サイズ指定部分を弄ったので変になってるかもしれない。 ■gdi0172 gdi0170との違い&変更点 取り消し線の描画位置を修正 MulDiv使ったりしてintキャスト時の丸め処理を四捨五入にした 何となくKerningをオフに戻してみた render_mode変数を初期化しとくようにした ■gdi0170 gdi0168からの変更点 (by 555) 太字、斜体。 ■gdi00168 gdi0164からの変更 (by 555) Kerning。変になるかもしれないので消すかもしれない。 下線、取消線を適当に(下線が出るかもしれない)。 ベースラインを上記サイトの更新に伴って修正(下欠けが減るかもしれない) 文字サイズ指定を変更(負の高さとかがまともになるかもしれない)。 ■gdi0164 gdi0156からの変更点 GetTextMetricsもフックして色々弄った 759@3pxを追加 ■gdi0156 gdi0152からの変更点 ズレ欠け+色化け修正 ボールドやイタリックでもAAがかかるようにしたでもボールドやイタリックにはならないww ■gdi0152 gdi0145との違い gdi0143に神(555氏)が書いたfreetypeソース(gdi0145)をマージ HintingModeとかのオプション設定を[General]に書いても動作する UseFreeTypeの廃止→今までどおりExcludeに除外フォントを書く ExcludeModuleが使える(未確認) 一応Firefoxでも文字が出る ■gdi0145 gdi0143からの変更点 DllMainで参照カウンタ上げてなかったバグ修正 gdi++.exeでコマンドライン引数が正しく渡せなかったバグ修正 ■gdi0143 gdi0133をコンパイルしたもの
https://w.atwiki.jp/gdiplus2/pages/15.html
1. 使い方 2. バイナリ 3. 更新履歴 4. FAQ gdi++.dll(FreeType版) バイナリ 上に行くほど最新 ※ gdi++.dll(FreeType版) の動作には、別途freetype.dllが必要です。 (☆印が付いているものは更新履歴に変更点がのってます) gdi0850 IdeographicVariationSequences(異体字)対応テスト版 (中略) gdi0789 実験版(ソース整理・機能削減。再up・転載は控えて) gdi0787 メモリーリーク・バッファオーバーラン修正 (中略) gdi0577 (中略) gdi0424 (gdi0392の再うp) gdi0401 (斜体の右が欠けることがあったのを強引に修正) gdi0392 (パス操作関数を自前の物に置き換え他)☆ gdi0387 (2ヶ月記念でも何も無い。)☆ gdi0369 (Manager使用時の動作改善。)☆ gdi0367 (bold変更。)☆ gdi0347 (HookChildProcessesのバグ修正 gdi++.exeの動作を改善)☆ gdi0333 (NormalWeightに対応)☆ gdi0327 (ナニカ gdi0310修正)☆ gdi0324 (1ヶ月記念で全部入りセット)☆ gdi0310 (IEのズレ修正とか(多分))☆ gdi0305 (gdi0303を少しだけ修正)☆ gdi0301☆ gdi0300 (最新CVSに合わせて修正) gdi0298☆ gdi0289☆ gdi0280 (gdi0276のソース付き) gdi0268 (高速化+安定性低下)☆ gdi0260 (gdi0257を3倍近く高速化) gdi0257 (gdi0238で修正)☆ gdi0238 (ズレが何さ。) gdi0235 (gdi0228に機能追加)☆ gdi0228 (gdi0224ベースで色々修正)☆ gdi0224 (gdi0216mod3)☆ gdi0216 (gdi0209修正+機能追加)☆ gdi0209☆ gdi0206 (gdi0181+...)☆ gdi0181 (gdi0177の修正)☆ gdi0177 (gdi0172+カーニングオプションと文字サイズの何)☆ gdi0172 (gdi0170ベース+何か)☆ gdi0170 (gdi0168修正版)☆ gdi0164 (gdi0156の修正版)☆ gdi0156 (gdi0152の修正版)☆ gdi0152 (gdi0143 + FreeType = gdi0149 の修正版)☆ gdi0143 (up0133をコンパイルした物)☆
https://w.atwiki.jp/gdiplus2/pages/17.html
1. 使い方 2. バイナリ 3. 更新履歴 4. FAQ 使い方 オプションgdi++.iniの例 オプション解説HookChildProcesses HintingMode AntiAliasMode ForceChangeFont TextTuning、TextTuningR、TextTuningG、TextTuningB NormalWeight BoldWeight ItalicSlant EnableKerning MaxHeight Individual Exclude ExcludeModule UseInclude IncludeModule オプション解説(マニア向け)LoadOnDemand UseMapping UseManager LcdFilter Shadow CacheMaxFaces、CacheMaxSizes、CacheMaxBytes その他 縦書き? 使い方 gdi++.dll(FreeType版)のアーカイブを入手し、適当なローカルフォルダに解凍。 freetype.dllを入手し、freetype.dllをXPの場合 gdi++.dllと同じフォルダ2kの場合 PATHの通ったフォルダ(system32とか)にコピー。 下のオプションを参考にgdi++.iniを編集して、gdi++.dllの動作を設定。 gdi++.exeに対象exeをドロップして起動。 期待した結果が得られない場合、gdi++.iniの当該箇所を編集し直す。たぶん結構な試行錯誤が必要。 オプション gdi++.iniの例 FreeTypeの設定は[General]に書いても動作する。 先頭が ; とか # とか // とか REM とか ' の行はコメント扱い。 [General] HookChildProcesses=1 [FreeType] HintingMode=2 AntiAliasMode=2 ForceChangeFont= TextTuning=0 TextTuningR=0 TextTuningG=0 TextTuningB=0 NormalWeight=0 BoldWeight=0 ItalicSlant=0 EnableKerning=0 MaxHeight=0 LoadOnDemand=0 UseMapping=0 UseManager=0 UseInclude=0 #LcdFilter=0 #Shadow=1,1,4 CacheMaxFaces=0 CacheMaxSizes=0 CacheMaxBytes=0 [Individual] メイリオ=0 MS Pゴシック=,0,, Arial=,,,,,1 MingLiU=0 PMingLiU=0 DF行書体=0 DF特太ゴシック体=0 DF平成ゴシック=0 DF平成ゴシック体W5=0 DF平成明朝体W3=0 DF平成明朝体W7=0 DHP行書体=0 DHP特太ゴシック体=0 DHP平成ゴシックW5=0 DHP平成明朝体W3=0 DHP平成明朝体W7=0 [Exclude] Marlett Tahoma [ExcludeModule] fontview.exe [IncludeModule] オプション解説 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 標準のウェイトを相対値で指定(-32~+32)。BoldWeightより変化幅が小さい。 BoldWeight 太字のウェイトを相対値で指定(-16~+16)。マイナスにすると細くなる。 ItalicSlant 斜体の傾斜を相対値で指定(-16~+16)。 EnableKerning 0だと文字詰めなし 1だと文字詰めあり ※ONにするとIEとかでずれるので注意 MaxHeight FreeTypeで処理させる最大のフォントサイズ。(ピクセル単位) 0で全てのサイズ。初期値は0。 Individual フォント別に個別設定する。 書式 フォント=Hinting,AAMode,NormalWeight,BoldWeight,ItalicSlant,Kerning 例のように省略可能。その場合は[FreeType]で設定した共通設定が使われる。 Exclude 除外フォント。本家と違って上限は無し。 ExcludeModule 除外モジュールリスト。本家と違って上限は無し。 UseInclude 0の場合(もしくは未定義の場合)は[ExcludeModule]が有効。(従来と同じ) 1の場合[IncludeModule]が有効。 Managerによる自動適用は使いたいが、実際に適用するのは特定のアプリに限定 したいという場合に1を指定してIncludeModuleの方を使う。 IncludeModule 対象モジュールリスト。ExcludeModuleの逆で適用したいモジュールを定義する。 オプション解説(マニア向け) 以下はマニア向けオプションなので使用は自己責任で。 LoadOnDemand フォントを読み込むのをCreateFont系から要求時(TextOut系など)にする。 FAQにあるManager使用時の問題が解決されるかもしれない。 ※ハングアップする可能性があるので低スペックマシンでは絶対にONにしない事。 UseMapping フォント読み取りにMemory Mappingを使う。 UseManager Managerが使用可能になる。(標準では使用できない) LcdFilter FT_Library_SetLcdFilterに渡すパラメータ。 0 None、1 Default、2 Light、16 Legacy LegacyにするとLibXftと同じアルゴリズムらしい。 ※2.3.0以降で使用する事。 Shadow 影をつける。 書式 Shadow=x,y,t (x 0, y 0, t 0, パラメータ省略は不可) オフセット(x,y)に100/t (%)の透過率で描画 CacheMaxFaces、CacheMaxSizes、CacheMaxBytes FTC_Manager_Newに渡すパラメータ。詳細はFreeTypeのマニュアル参照 ※パラメータチェックしてないので大きな値を設定すると暴走する可能性あり その他 mfdel.exeを使ってManifestを削除すると、XPでも2kと同じ動作にできる。もちろんgdi++.dllを上書きする度にmfdel.exeを使う必要がある。 gdippInfo.exeを使うと質問用のテンプレを生成できる。ただしFreeTypeの情報は自分で埋める。(特にCVSとか) gdippEST.exeを使うと設定が簡単に変更できる。 VC6又はDDKを使ってCVSのFreeTypeを簡単にビルドできるセットがgdi0231にある。VC8以降を使う場合はgdi0236の.makをコピーする。 さらに、バッチファイルを実行するだけで全自動でビルドできるセットもある。ビルドに必要なcvsやpatchが予め入っているのでVC持ってるならお勧め。VC6用 gdi0258.zip (オリジナル)VC2003用 gdi0265.zipVC2005EE用 gdi0411.zip※これは「やり方分かってるけど面倒な人向け」の物なので、BATの中身を見て何をやるか理解した上で実行すること。 十分なCPU、1GB超のメモリを積んでいるPC向け豪速化設定の例(自己責任)※gdi++.dllがメモリを食い潰すのでManager使うならこんな設定にはしない事。 その1 UseMapping=1 CacheMaxFaces=16 CacheMaxSizes=16 CacheMaxBytes=16777216 その2 UseMapping=1 CacheMaxFaces=8 CacheMaxSizes=8 CacheMaxBytes=1048576 縦書き? FreeTypeのソースコードを取ってくる。 freetype.dswまたはfreetype.slnをVCで読み込んで "Win32 Release Multithreaded"を選択する。 otvalid\otvalid.cを追加する。 base\ftlcdfil.cを追加する。 ftmodule.hにFT_USE_MODULE(otv_module_class)を追記する。 プロジェクトの設定(プロパティ)で 使用するランタイムライブラリを"マルチスレッド(DLL)"にする。 出力ファイル名をfreetypeMT.libにする。 ビルド。 freetypeMT.libをgdi++.dllのsrcフォルダにコピーする。 nmake ftstatic=1と打ってgdi++.dllをビルドする。 出来たgdi++.dllでgdi0344相当の縦書きが使えるようになるはず。 VC6でしか試してないので他はシラネ。
https://w.atwiki.jp/gdiplus2/pages/2.html
メニュー TOP gdi++.dll(本家)使い方 バイナリ readme 表示サンプル 更新履歴 gdi++.dll(FreeType)使い方 バイナリFreeType.dll 表示サンプル 更新履歴 Tips FAQ gdi++.dll(Helium版) gdi++.dll(GetGlyphOutline)バイナリ 更新履歴 Manager アイコン 要望・バグトラック 視認性テスト comment Link 専用アップローダ
https://w.atwiki.jp/gdiplus2/pages/18.html
1. 使い方 2. バイナリ 3. 更新履歴 4. FAQ F A Q Q. 全てのプロセスにgdi++.dllを適用させたいんだけど。 A. gdippin.exe や gdippManager を使うか、regeditでHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLsにGDI++.dllをフルパスで指定してやる。 面倒な方法だが管理者権限が無い場合でも使える方法としてgdi++.iniのHookChildProcesses=1にした上で、GDI++をexplorerに適用させるというやりかたもある。 Q. 「DLLの利用に失敗しました。このDLLを一覧から除外します。」と表示されて、gdippManager が使えないよ。 A. freetype.dllを正しい場所に置いてあるか確認しましょう。 freetype.dllをgdi++.dllと同じフォルダにコピー Q. 環境によってはManager使用時にExplorerとかでしばらく有効にならない A. FreeType版は標準ではCreateFont系が呼ばれるまでフォントを読み込まないため。 PCの性能が有り余っているならLoadOnDemand=1にしてみるとか。 Q. Tahomaとかで有効にならない A. FontLinkテスト版を使うと有効になるかも。 http //free.flop.jp/gdi++/src/gdi0572.zip http //free.flop.jp/gdi++/src/gdi0574.zip Q. 灰色文字でAAが効かない所がある A. 以下参照 174 名前:名無し~3.EXE 投稿日:2007/04/10(火) 09 07 24 ID +F2hGwMZ これで全てうまくいくかは不明だが msstylesをreseditで開いてiniファイルを見てみると [SysMetrics]セクションに Btnface = 231 231 231 といったところがあると思うので最初の数字を変更する たとえば上の場合だと Btnface = 230 231 231 通常は-1すればOKのようだ Q. WordとかIEのプレビューとかで消費メモリ量が500MBとかになる A. なぜか高さ1000pxのフォントを渡してくるのでMaxHeight=300とか書いて回避。 Q. 縦書きに対応していない A. FreeTypeが対応していない。以下FreeTypeのマニュアルより引用。 FT_LOAD_VERTICAL_LAYOUT Load the glyph for vertical text layout. Don't use it as it is problematic currently.
https://w.atwiki.jp/gdiplus2/pages/12.html
重要 gdi++シリーズの開発はすべて終了しました。 今後このwikiの情報は更新されません。 現在はInkStoneの開発に移行していますのでそちらをご覧ください。 関連サイト The InkStone Project gdi++.dll(本家) ◆0x0D/0x20I氏(本家版+アイコンの作者。) gdi++.dll - windows(wiki) gdi++専用アップローダ gdi++うpろだEX(テスト版やiniうp、SS晒しとか) 業メモとか考えた事とか(via blog I/F) FreeType ProjectPortions of this software are copyright (c) 2005-2006The FreeType Project (www.freetype.org). All rights reserved. higambana氏 gdi++.dll@wiki に関するhtmlページまとめ(過去ログの一部が読めます) 2ch関係スレッド 【美しく】gdi++.dll スレッド【鮮やかに】 【美しく】gdi++.dll スレッド 2pt【鮮やかに】 gdi++.dll 3px gdi++.dll 4px gdi++.dll quality=5 gdi++.dll 6px gdi++.dll 7px gdi++.dll 8px gdi++.dll 8px(実質9px) gdi++.dll 9px(実質10px) gdi++.dll 11px gdi++.dll 11px(実質12px) gdi++.dll 13px gdi++.dll 14px gdi++.dll 15px gdi++.dll 16px gdi++.dll 17px 【叩き】gdi++.dll 18px【歓迎】 gdi++.dll 19px gdi++.dll 20px 【開発】gdi++.dll 21px【終了】(クソスレ) 【開発】gdi++.dll 21px【終了】(クソスレ) gdi++.dll 21px gdi++.dll 21px(実質22px)(クソスレ) gdi++.dll 23px gdi++の設定を晒すスレ gdi++.dll 質問スレ 1px 過去ログ7zip(1px-11px) html dat 紹介記事 窓の杜 - 【NEWS】指定したアプリ上であらゆるフォントの描画をなめらかにする「gdi++.dll」 どんなツールでもフォントをキレイにして実行する「gdi++.dll」 にゅーあきばどっとこむ スラッシュドット ジャパン | Windowsで綺麗なフォントレンダリングを実現する「gdi++.dll」 平林 純@「hirax.net」の科学と技術と男と女/Tech総研:「綺麗なフォントレンダリング」と「想定ユーザ」
https://w.atwiki.jp/gdiplus2/pages/16.html
1. 使い方 2. バイナリ 3. 更新履歴 4. FAQ 更新履歴 ※特に明記してないのは693@3pxによる変更・修正 ■gdi0392 gdi0387からの変更点 David Turner氏の指摘を受けたので、パス操作関数を自前の物に置き換えてみる。 どう見ても手抜き関数です。本当に(ry 配列クラスもまずそうなので素直にATL使うことにした。 gdi++.exeのエラーメッセージをリソース化してみる。 多分英語版Windowsとか使ってるといい加減な英語メッセージが出るはず。 マニュアル見てたらFT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTHなるフラグハッケソ。 DynafontやSH G30で幅が変だったのをgdi++側でどうにか出来た。 ■gdi0387 gdi0369からの変更点 2ヶ月記念でも何も無い。 Operaで描画できないので、MM_TEXT以外を弾くようにしていたのをやめた。 gdi++.exeの動作をよりExplorerに近づけた。 標準AAより薄いという話題が続いてるので***Weightの上限・下限を倍にした。 ■gdi0369 ExcludeModuleでもとりあえずgdi++.dllはロードしておくように。 Manager使ってるとなぜかExplorerでメモ帳が起動しないことがあったので修正。 ■gdi0367 gdi0347からの変更点 太字の描画を変えてみた。 ↑をするのにFreeTypeのソースを一部含んでるからライセンスをFTLにした。 ■gdi0347 gdi0333からの変更点 HookChildProcessesのバグ修正。 - 「メモリが "written" になることはできませんでした。」とか出るやつ。 - ANSIアプリで適用されないみたいなのでCreateProcessAもフックした。 - ついでにManager使ってると自動でHookChildProcesses=0にしてたのをやめた。 gdi++.exeの動作を改善。 Wordとかコントロールパネルとかの特殊なショートカットが動くようになった。 縦書きグリフ読めるかなあ? (gdi0344、555氏) ※FreeTypeに手を加える必要があるため、付属のgdi++.dllでは対応していない。 対応させるには別ファイルの下のほうに書いてある手順でgdi++をビルドする。 ■gdi0333 gdi0324からの変更点 NormalWeightに対応してみた。 Individualセクションとかの総文字数が256を超えていると読めなかったバグ修正。 Individualで指定した数値の範囲溢れチェックしていなかったバグ修正。 XPのメモ帳でメイリオとか指定すると異様に重いというメモ帳のバグを回避。 マニュアル分割。 ■gdi0327 gdi0310からの変更点 (by 555) ◆0x0D/0x20I氏のアイコンをちょいとexeにつけてみる。 どうもsetlocaleしてないといまいちかもしれないのでなんとなく。 ■gdi0324 gdi0310からの変更点 1ヶ月記念で全部入りセット HookChildProcessesで2階層以降の子プロセスに適用されなくなっていたのを修正。ただし仕様上、間にCUIアプリなどが入るとうまくいかない可能性あり。 マッピングモードがMM_TEXT以外を弾くように。 ANSI版APIで、文字数が少ないときはバッファをスタックから確保するようにした。JaneDoeとかのANSIアプリでオーバーヘッドが小さくなった。 ボールドの描画をWindowsっぽくした。 自前キャッシュに食わせる方が(FreeTypeのキャッシュより)速い事が分かったのでFT_LOAD_RENDERでFTC_ImageCache_Lookupを呼び出さないようにした。 ついでに自前キャッシュもCacheMax~に対応してみた。 初期設定でメモリを馬鹿食いしないようにした。 オプション設定を追加・復活+隠しオプションを明文化 gdippInfoツールを追加 その他細かいバグ潰し ■gdi0310 gdi0305からの変更点 グリフ番号の見つからなかった文字だけをWindowsの標準レンダラに投げるように。副作用で、Tahomaとかで多少見やすくなったりIEでのズレが無くなったり。 文字幅計算で無駄な処理を減らした ■gdi0305 gdi0301からの変更点 BoldやItalic用のフォントを使用するようにした (gdi0270、555氏) ■gdi0301 gdi0298からの変更点 LcdFilterオプション追加 補助キャッシュのバグ修正(2重delete+GC作動していなかった) ■gdi0298 gdi0289からの変更点 HookChildProcessesでBATを開けるようにした(エラー処理省いただけ) Memory Mappingを復活させた リソースのコメントにFreeTypeのcredit入れといた Individualのパラメータ省略がバグっていたのを修正 ■gdi0289 gdi0268からの変更点 補助キャッシュの無駄を無くしてさらに高速化 GetFontData周りの無駄を減らして消費メモリ量減少 オプション設定追加 堕落。(gdi0286、555氏) ■gdi0268 gdi0257からの変更点 ソース書き換えまくって安定性が落ちたので注意 HDBENCH升搭載 補助キャッシュを搭載したので多少高速化が期待できるはず GetFontDataに渡すバッファをMemory Mappingに変えた Managerで使うとやたらと不安定なので一時的に使えなくした ■gdi0257 gdi0235からの変更点 上下ズレに終止符をうった (555氏) SetTextCharacterExtraを正しく扱うようにした ForceChangeFontで多少見やすくなった 灰色文字描画の処理方法を変えたのでメニューとかで文字が潰れなくなった AntiAliasMode=-1でAAを無効化できるようにした ■gdi0235 gdi0228からの変更点 Individualで個別設定可。 readmeの統合(・∀・)カンリョウ!! ■gdi0228 gdi0224からの変更点 メイリオ on WinXPの化け直し "EnableKerningの廃止"をgdi0206以降のreadmeに書いていなかった JaneDoeの書き込みダイアログで選択文字列にAAが効かなかったバグ修正 Manifest削除ツール追加 991@3px氏の要望に応えてみる readmeの統合中 ■gdi0224 gdi0216からの変更点 GetTextMetricsのフック関数でFreeTypeGetTextMetricsの呼び出しに失敗したときの処理を変更(FreeTypeGetTextMetricsで失敗してもFALSEを返さない)。 化ける問題で、37@4px氏の発言に基づきXPでもTextOut系のフック関数でオリジナルを呼ばないようにしてみた。(ちなみに37@4px=693だったりする) ■gdi0216 gdi0209からの変更点 豪速化オプション搭載(使用は要注意) XPで全く動作しない致命的バグ修正 MS-IMEで欠けるバグが再発してたのを修正 ■gdi0209 gdi0206からの変更点 AntiAliasMode=3が効いていなかったバグ修正 Gdipp~系のAPIを一時的に削除 GetCharWidthW、GetCharWidth32Wもフックした FT_Bitmap bufferがNULLの場合はとりあえずTextOutに投げといた FreeType周りのソースを整理して弄りやすくした ■gdi0206 gdi0181からの変更点 "最初に読む.txt"のファイル名変更 iniファイルの[General]、ForceChangeFontにフォント名が書かれている場合、強制的にそのフォントを使うようになる。(gdi0186) manifest入れた( 891氏) FT_Library_SetLcdFilterを呼ぶようにしたCVSのFreeType 2.2.2で画質が向上する。(※) MS-IMEで欠けるバグの修正( 876氏) 欧文フォントでずれるバグを多分潰した ※バイナリは上げるつもりないのでCVSから自分で取ってきてコンパイルする。 ■gdi0181 gdi0177からの変更点 下線と取消線の描画位置を修正 サブピクセルレンダリングを修正 FontListをsettings.cpp/hに移動したりいろいろ改造 DrawHorizontalLineをしょーもない最適化(バグってるかも) ■gdi0177 gdi0172からの変更点 (by 555) カーニングを設定で切り替えられるように。 文字サイズ指定部分を弄ったので変になってるかもしれない。 ■gdi0172 gdi0170との違い&変更点 取り消し線の描画位置を修正 MulDiv使ったりしてintキャスト時の丸め処理を四捨五入にした 何となくKerningをオフに戻してみた render_mode変数を初期化しとくようにした ■gdi0170 gdi0168からの変更点 (by 555) 太字、斜体。 ■gdi00168 gdi0164からの変更 (by 555) Kerning。変になるかもしれないので消すかもしれない。 下線、取消線を適当に(下線が出るかもしれない)。 ベースラインを上記サイトの更新に伴って修正(下欠けが減るかもしれない) 文字サイズ指定を変更(負の高さとかがまともになるかもしれない)。 ■gdi0164 gdi0156からの変更点 GetTextMetricsもフックして色々弄った 759@3pxを追加 ■gdi0156 gdi0152からの変更点 ズレ欠け+色化け修正 ボールドやイタリックでもAAがかかるようにしたでもボールドやイタリックにはならないww ■gdi0152 gdi0145との違い gdi0143に神(555氏)が書いたfreetypeソース(gdi0145)をマージ HintingModeとかのオプション設定を[General]に書いても動作する UseFreeTypeの廃止→今までどおりExcludeに除外フォントを書く ExcludeModuleが使える(未確認) 一応Firefoxでも文字が出る ■gdi0145 gdi0143からの変更点 DllMainで参照カウンタ上げてなかったバグ修正 gdi++.exeでコマンドライン引数が正しく渡せなかったバグ修正 ■gdi0143 gdi0133をコンパイルしたもの