情報科学屋さんを目指す人のメモ

方法・手順・解説を書き残すブログ。私と同じことを繰り返さずに済むように。

Chromeとgdi++の組み合わせで文字表示がおかしくなる問題について

Chrome (238) MacType (5) Windows (497) gdi++ (4) フォント (3)

Chromeを起動してみたら、文字の表示がおかしくなって読めない状態になっていた件について。 文字がまともに表示されません。文字化けと言うより、フォントのレンダリングがおかしくなってしまったようです。

目次

表示がおかしい

たとえば、とあるページでは、文字が太くなったり細くなったりしてしまっています。

An example of dirty font rendering on google chrome.

また、Chromeの設定画面も文字がかすれてしまっています。とくに、かすれている部分では、文字を判別することすらできません。まるで文字が消えてしまったかのようです。文字化けと呼ばれていたりもします文字化けと言われると違和感がありましたが、含まれるのでしょうか…)

最新版Chromeにおけるフォント表示がおかしくなる現象の例。

他のサイトでも、文字が滲んでいるかのように表示される文字もあったりして、とても読みにくくなっている場所もあります。なぜこんなことになってしまったのでしょうか。

きっかけはChromeのバージョンアップ

原因というかきっかけはChromeのバージョンアップにあるようです。現在のバージョンは「18.0.1025.142」です(その後、18.0.1025.151にバージョンアップしていますが、問題は残っているようです)

Twitterなどを見ていると、バージョンアップをきっかけにフォントの表示がおかしくなった人がたくさん居るようです。

gdi++を無効化すれば直る

たしかにきっかけはChromeのバージョンアップですが、直接的な原因はgdi++を使っていることにあるようです。つまり、バージョンが上がって、gdi++との相性が悪くなってしまったようなのです

とりあえず、gdi++系ソフト(gdi++ Helium, gdipp, ezgdi など)を無効化か停止、もしくは、chrome.exeを除外する設定を追加してからChromeを再起動することで、表示の崩壊を直すことができました

注意:Chromeと同じChromiumベースの「SRWare Iron」などにブラウザを変更してこの問題を回避した人も多いようですが、どれもバージョン18ベースになった時点で、Chromeと同様の問題が発生するはずなので、かなり短期間の一時しのぎにしかならないと予想されます→バージョンアップが行われ、問題が発生するようになりました

また、Firefoxや、その他のアプリケーションであっても、Direct Write(Direct 2D)によるGPUアクセラレーションを有効にした描画を標準に採用することが予想されるため、gdi++やgdippなどが対応しない限り、いずれ同様の問題が発生してくると思われます。

追記(2012/06/13)

Firefox 13にて、斜体の表示がおかしくなってしまう症状が現れているようです。具体的には、塗りつぶされたようにぐちゃとなったり、重なって表示されてしまったりという問題です。ハードウェアアクセラレーションのON/OFFに関係なく、表示がおかしくなってしまうようです。これもgdi++系ソフトウェアが原因で、後述のMacTypeを導入することで改善されますが、改善されるのは表示がおかしくなるところまでで、アンチエイリアスについては期待しない方が良さそうです。ただ、読めないよりかはよいかと思われます。

フォントを入れ替える方法もあるみたいだけど

また、強制メイリオちゃんのようにフォントを入れ替えてしまうことで、表示の崩れる部分を減らすようなことはできるみたいです。とはいうものの、このブログを書いているエディタの英語部分効果がありませんでしたが。

対策:gdi++系ソフトウェアからMacTypeに乗り換える

おすすめの対策が、MacTypeの導入です。MacTypeもgdi++Heliumなどのような効果を持つソフトウェアですが、MacTypeのベータ版がChrome 18に対応しているようなのです。

これがきっかけとなって書いたエントリです→「gdi++Heliumを越えた(?)と噂のMacTypeをインストールしてみた

このエントリではインストール方法や使い方を紹介しています。エントリの最後のほうで、ベータ版について紹介しています。

おまけ

もうちょっと詳しく分かったら追記しようかと思います。

参考

バージョンを18にアップデートした際の文字表示の問題 - Google グループ

Google プロダクトフォーラムに投稿された、この現象の報告と、それに対するGoogleの人の対応。

進捗:問題の原因ですが、GDIPPなど側の方にあります(GDIレイヤーが完全にエミュレートされていないため、問題が発生する)

gdippに関して:もっと早く直して欲しいならば、こちらのバグに投票(星マークをクリック)して下さい
MacType:開発者が修正版を出す予定とのことです。

Issue 205: Font rendering broken in Google Chrome developer build (18) - gdipp
この問題に対する、gdippのissueページ。本当に対策されるかは不明。
Issue 113777 - chromium - REGRESSION: GDI++ or Mactype fail to work with Chrome 18
chromiumのissueページ。

変更履歴

  • 2012.04.01:MacTypeについての説明を追加
  • 2012.04.05:gdippのIssueページを参考リンクに追加。
  • 2012.04.05:Google プロダクトフォーラムへの投稿を参考リンクに追加。
  • 2012.04.05:chromiumのIssueページを参考リンクに追加。
  • 2012.04.06:Chrome 18.0.1025.151について言及。
  • 2012.04.11:SRWare Ironに言及。
  • 2012.04.11:Firefox、Direct 2D、Direct Writeに言及。
  • 2012.06.13:Firefox 13における斜体の表示がおかしい問題に言及。

コメント(0)

新しいコメントを投稿