パスワードを忘れた? アカウント作成
757357 submission
GUI

APIフックでWindowsでも綺麗なフォントレンダリングを実現する「gdi++.dll」

タレコミ by Meth610
Meth610 曰く、
すでに窓の杜などでも記事になっているが、gdi32.dllのTextOutやExtTextOutなどの関数をフックして、対象となるアプリケーションで高品位なフォントレンダリングを行う「gdi++.dll」が公開された。現在、作者のページからソースコードと共にダウンロードできる。

このdllは、2ch「WindowsのフォントスレッドVer.16」において、Windowsにおけるフォントレンダリングの汚さに業を煮やしたユーザーがオープンソース形態で開発を始めたもの。 当初は対象アプリケーションのバイナリを直接書き換えて読み込むdllを変更する方法を取っていたが、2006/09/20のバージョンでは同梱のgdi++.exeによりAPIを直接フックする方式に変更され、手軽に効果を試すことができるようになった。使用するフォントにもよるが、Webブラウザやエディタなどに使用すると見違えるように美しいレンダリングが得られる。ただ、現在のところこのdllは開発版であり、表示やその他の動作に不具合が出るアプリケーションも少なくない。

そのほかの特徴としては、
  • フォントのヒント情報を(ほぼ)無視して描画することになるため、Windows Vista標準搭載である「メイリオ」などのClearType用フォントには向かない。
  • 標準のgdi32.dllによる描画に比べ、処理が重い。
  • 設定ファイルにより、描画の濃さや精度、処理から除外するフォントなどを指定できる。
  • Windows XP SP2のgdi32.dllを元にしているため、他バージョンのOSでは動作しない可能性がある(未確認)。


Windows Vistaでもフォント関連のレンダリングエンジン自体は改良されていないらしいので、タレコミ人はこのdllにかなり期待しております。オープンソースということなので、/.jの諸兄も開発に参加してみてはいかがでしょうか(それとも皆さん硬派にビットマップフォント?)。
typodupeerror

皆さんもソースを読むときに、行と行の間を読むような気持ちで見てほしい -- あるハッカー

読み込み中...