パスワードを忘れた? アカウント作成
13467 story

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

ストーリー by GetSet
メイリオの滑らかさがXPでも欲しい人へ 部門より

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の諸兄も開発に参加してみてはいかがでしょうか(それとも皆さん硬派にビットマップフォント?)。"
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2006年09月23日 10時03分 (#1024587)
    窓の杜の記事を見てみたけど、こういうレンダリングって、
    文字がぼやけて見えるので好きじゃないって人も多そう。

    おそらく、(液晶じゃなく)CRTを使っているとか、非常に解像度が
    高くて画面を見たときに個々のピクセルが意識されないなんて
    場合には、有効なんでしょうね。

    • by Anonymous Coward on 2006年09月23日 10時24分 (#1024608)
      どっちかというと、低解像度な状況で人間の錯覚を利用して擬似的に解像度を上げて、文字の視認性をよくするための技術なので、携帯電話やPDAなどで比べてみると低解像度な環境では、文字の読み易さは段違いですよ。

      逆に高解像度で各文字のピクセルを稼げる環境では、ぼんやりするというデメリットのほうが大きくなるだけかもしれません。
      親コメント
    • by Anonymous Coward on 2006年09月23日 11時03分 (#1024646)
      同様の表示を自作のソフトに入れてみたことがあります。
      ユーザからものすごい不評を食らって、すぐにはずしました。

      このほうがいいと言ってくれた人はいませんでした……
      親コメント
    • >窓の杜の記事を見てみたけど、こういうレンダリングって、
      >文字がぼやけて見えるので好きじゃないって人も多そう。

      実際に、今はともかく昔のMicrosoftの中の人も、そう考えていたからこそああいう描画エンジンになっているのじゃないかと思います。
      確証とはならないのですが、私がそう思う根拠は、(英語記事で申し訳ない)1991~1994年までExcelのProject Managerをしていた人 [wikipedia.org]が書いているBlogに、Three Wrong Ideas From Computer Science [joelonsoftware.com]という題名でAnti-aliased textはwrongだって書いているからです。
      曰く「アンチエイリアスをかけた文字列を見ると、ぼやけて見える。(If you try to read a paragraph of antialiased text, it just looks blurry.)」だそうで。

      ただフォローもしていて、ヘッドラインやロゴにおいては、アンチエイリアスは素晴らしいテクニックだ(anti-aliasing is still a great technique for two things: headlines and logos, where the overall appearance is more important than the sustained readability;)とも言ってますが。

      MSにとっては大分前の人だし、Windowsのチームでもなかったわけで、同じ考えでWindowsもああなっているかは分かりませんが…元中の人ですから、同じ考えを持っている人も少なくないのじゃないかと推測しますが、どうでしょう。

      # ちなみにコレの日本語訳もあるのですが、一部 [joelonsoftware.com]を除くと書籍のみ [ohmsha.co.jp]なのです…。
      親コメント
  • 12年ぐらい前、Windowsが普及する前はいかにシャギーのない
    (ぎざぎざしてない)フォントを作るためにすごくがんばってました。
    私はn88basicでアウトラインフォントできないか研究してました。
    あと、まぐろペイントとかでいかに流麗な文字をつくるとかがはやって
    ましたから、知っている人はなつかしいかも。

    6年前ぐらいから、アウトラインであることがwindowsの出現でアタリマエに
    なってしまった感があって、どういうわけかドット風フォント(ビットマップフォント)が
    サイバーでかっこよい!ということで、そっちを作る人がふえてきました。
    意図してかくかくしてぎざぎざした味をだしていたわけです。

    今、またシャギーをなくそう!としているのを見ると、一回転してもどってきたな、って
    いう不思議な感覚にとらわれます。

    自分もフォント作りをやってて、せっかく表示されるならきれいなほうがいいし、
    もうすこしこのあたりの環境が豊富になってほしいんだけど、
    英語圏の人間がwindows開発のメインである以上、画面上に
    「薔薇」とかそんな複雑な文字つぶれるつぶれないをキニシナイ人々には
    ことさらわかってもらえないのかもしれないですね。
    --
    ( ´・ω・`)いままでとこれからを比べる生活
    ぱんかれ
    • 私も使ってみましたが、やはり違和感を感じる一人です。
      書道に例えるなら、墨をつけすぎた筆で細かい字を書いて
      滲んでしまった状態、とでも言いましょうか。
      (あるいはエアブラシで文字を描いたような)
      墨(黒色)と和紙(白色)の境界がとても曖昧で
      細かい白色部分がなおいっそう潰れて見えます。
      さらに|や─のような直線ですらクッキリと見えないので、
      なおさら読みづらい印象を与えます。
      直線は直線としてハッキリと、止め、はね、払いに係る
      曲線だけがアンチエイリアスになれば、
      もう少し可読性も向上するのではないでしょうか。
      --
      And now for something completely different...
      親コメント
      • by sillywalk (15002) on 2006年09月24日 0時11分 (#1025109) ホームページ 日記
        自己レスです。
        Readme.txtの説明にあったgdi++.ini内パラメータのうち
        Quality 3:4倍キレイ
        UseSubPixel 1:つかう
        にすると|と━はかなりはっきり見えるようになりました。
        これなら可読性も高く良い感じです。

        # 表示速度はかなり落ちますが…
        --
        And now for something completely different...
        親コメント
  • APIフック方法 (スコア:3, 参考になる)

    by xsd (25734) on 2006年09月23日 12時37分 (#1024711) 日記
    今はバイナリをドラッグ&ドロップされたときにAPIをフックしているみたいですが、レジストリのAppInit_Dllsキーを用いたDll Injection [google.co.jp]を行うとシームレスに(プログラムを起動するだけで)フックできるかもしれません。
    • by Tsann (15931) on 2006年09月23日 13時58分 (#1024790)
      全てロードするとうまく動くか危険なので、あえてやっていないんでしょ。
      フックの仕方もそんなあくどい方法を使わなくても、SetWindowsHookEx()で十分ですし。

      描画がある以上、必ずWindow作成が発生するのでそこでフックする。ロードされたら後はIAT書き換えちゃうのかな?
      # ウィルスの類と誤認識されてもしーらないっ
      親コメント
  • by Anonymous Coward on 2006年09月23日 13時17分 (#1024752)
    Mac OS X の最初の頃は、字が滲んだように見えて、逆に疲れたものですが、10.2 位からは目もなれてきたし、それ以上にチューニングが進んで、いまやそれなしでは生きられないくらいになっています。

    ところが Windows では未だに 10.0 以前のレヴェルでしか anti-alias されなくて、精神的苦痛でしたが、この gdi++ のおかげで、仕事が捗るようになりました。スゴい!

    問題点は
    • Firefox の場合は、印刷できなくなる。正確には印刷しても文字がでない。(1.5.0.7使用中)
    • Thunderbird は印刷できる。
    • IE は使用に耐えないくらい、描画が崩れる。つまりIE それ自身が真っ当な方法で GDI を使ってない
    • Windows Shell 自体も gdi++化できる。遅くて使いも二ならないけど。。
  • by Anonymous Coward on 2006年09月24日 1時17分 (#1025136)
    MacやXのフォントレンダリングって、アンチエイリアシングの要らない縦横のステムにもアンチエイリアシングがかかるのが嫌なんだよね。これもその同類みたいだから俺はイラネ。
    いわゆるMSゴシックExやWindows用Osaka使ったことのある人は分かると思うけど、Windowsのフォントレンダリングは縦横のステムをできるだけソリッドな線で表現しようとするので、見た目のカッコ良さでは劣っても読みやすさという点では実は優れているんだよね。
  • by Anonymous Coward on 2006年09月23日 12時30分 (#1024706)
    使ってみた感想を。
    現在、WinXP SP2のSleipnirで書き込み中なのですが、
    スクロールするとちょっと文字が寸詰まりになったりする
    ところがあったりしますが、概ね良好です。

    ただ、PentiumM 1GHzノートのオンボードグラフィックでは
    表示がかなり「もっさり」です。

    フォントはメニューバーや変換候補の文字まで綺麗に見えてるので、
    元々貧相なチェックボックスやプルダウンメニューが逆に違和感が(笑)
  • by mich (6859) on 2006年09月23日 12時39分 (#1024714)
    ディスプレイのドット密度がもっと大きければ、「なんだかぼやけて見える…」という感想は出ないだろうなあ。
    最近のトレンドは大画面化だけど、高密度化にももっと注力して欲しい。

    一昔前のプリンタと同じ300dpiぐらいあればなあ…。縦横ともに、今の4倍ぐらいぐらいの密度がほしい。
  • やっぱり (スコア:2, 興味深い)

    by sacoz (26507) <{nolica.sacoz} {at} {gmail.com}> on 2006年09月23日 13時11分 (#1024746)
    この手の話題はACだらけですね。大抵は非建設的な茶々入れですし。

    使ってみた感想は「綺麗と言うよりはにじんでる」って感じです。自分の場合、Macのレンダリング見たときにも同じような印象だったので、さんこうにはならないかもしれませんが。

    結局ディスプレイの解像度が今の4倍くらい(縦横各2倍)にならないと、細かい文字は満足に表示できないのかなあと言うのが率直な感想です。

    映像の話題では「これ以上解像度高くしてどうするんだ」なんて思うのに、フォントのレンダリングに関しては「まだまだ解像度が低いなあ」なんて思ってしまうのが我ながら不思議。
  • ごめん、ほんとにフォントが汚いって思ってる人には
    ほんとのほんとに申し訳ないんだけど。

    私、フォントが汚いっていうのがイマイチ実感できない。

    たとえばKNOPPIXのフォントはきれいだなぁって思うけど
    だからWindowsが汚いなぁとも別に思わない。
    クリアフォントでいいんじゃん?とか、
    開発者の人が聞いたら噴飯モノの発言をしてみる。

    ゴメンナサイ・・・。

    これって感性の問題だよね、たぶん。

    あとMP3がCDに比べて音質が悪いってのもイマイチわかんない。
    そんな私は世間とズレてるんでしょうか?
    --
    ラーメン、オーバークロック大好き
    • by KuRo-CaT (31239) on 2006年09月23日 13時45分 (#1024780)
      その意見に同意。個人の感性の問題でしょうね。
      親コメント
  • 私は、ClearType を有効にして、ウェイトが軽い OpenType のフォントで表示しています。「平成明朝」に ClearType 用の修正を加えたものです。結構きれいですよ。皆さん試してみてはいかがですか?

    ……もちろん、こんなことを書いても殆どの方が試せないことは知っています。それは、Microsoftの不備ですね。ビットマップ表示が優先されていることが諸悪の根源でしたっけ。もしかすると、標準の「MS 明朝」のビットマップが無効にできれば十分かもしれません。

    知人の Mac OS X の画面をよく見させてもらいますが、高品位フォントを使用していれば、Mac も Windows も、もちろん *BSD や各種 Linux ディストリのマネージャも表示には大差がないことを付け加えておきます。

    --
    All your base are belong to us
typodupeerror

目玉の数さえ十分あれば、どんなバグも深刻ではない -- Eric Raymond

読み込み中...