web-dev-qa-db-ja.com

IE9でCleartype(テキストアンチエイリアシング)を無効にする

IE9がフォントスムージング(別名アンチエイリアシング)のOS全体の設定を無視することは十分に文書化されています(例: ここ )。 WindowsでフォントスムージングとClearTypeが無効になっている場合でも、IEはアンチエイリアスフォントを表示します。これは、特に小さいフォントサイズでは、一部のユーザーが読むのに苦労します。

IE9ですべてのフォントアンチエイリアス(ClearTypeまたはその他)を無効にするにはどうすればよいですか?

詳細:

当社は、小さなフォントを多く使用するWebアプリケーションを構築しています。 IE9のリリースに伴い、一部のユーザーは、IE9のデフォルトのアンチエイリアシングによって小さなフォントがぼやけたりぼやけたりすることに不満を持っています。したがって、IE9をインストールしていて、アンチエイリアスをオフにしたいユーザーを支援する必要があります。

また、個人的には、アンチエイリアス処理された小さなフォントを読むのに苦労しているので、自分で管理していないサイトでも、自分で使用できるソリューションが欲しいです。

IE8では、[HTMLには常にClearTypeを使用する]のチェックを外してから、OSでClearTypeを無効にすると、IE8ではすべてのフォントがエイリアスで表示されます。しかし、IE9では、このオプションはありません。

この問題について調査した後、私が学んだことは次のとおりです。主要な問題は、IEはテキストレンダリングをDirectWriteに依存しており、アンチエイリアシングを行い、ユーザーのOS全体のデフォルトの選択を尊重します。

さらに悪いことに、OSでClearTypeを無効にすると、場合によってはIEは、ClearTypeよりもさらにあいまいなDirectWriteのデフォルトの非Cleartypeアンチエイリアシングにフォールバックします。

16
Justin Grant

数日検索した後、 MSDNフォーラムスレッド を見つけました。これは、ここで解決策を示しています: http://www.softwareninjas.ca/dwrite-dll-wrapper

そのページの指示に従ってください。IE9からアンチエイリアシングを削除します(少なくとも32ビットバージョンのIEは、64ビットのWindows 7でもデフォルトのIEです)。これまでにWin7x64ラップトップでテストしましたが、問題なく動作しました。

これを作ってくれたOlivierDagenaisに感謝します。これが彼のソリューションがどのように機能するかの技術的な要約です。

これは2段階のプロセスです。まず、レジストリキーを介してIEでClearTypeを無効にする必要があります。これは以前のバージョンのIEで使用可能だった設定と同じですが、IE IE9で動作を停止したため、UI。

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
"UseClearType"="no"

次に、ClearTypeが無効になったため、Windowsは非ClearTypeアンチエイリアシングソリューションにフォールバックします。ここで、フォールバックアンチアリスも無効にする必要があります。上記のスレッドからの引用:

残っているのはフォントスムージング(サブピクセルレンダリングとも呼ばれます)です。これは、cleartypeをオフにした後も表示される「ぼかし効果」です。

疑問に思っている場合は、それをオフにする方法もあります。

サブピクセルの不思議をオフにするために使用した方法は、dwrite.dllの単純なラッパーを作成することです。このラッパーは、呼び出しをインターセプトして実際のdwrite.dllに転送し、プロセスでフォントスムージングを無効にします。

以下からダウンロードできます: http://www.softwareninjas.ca/dwrite-dll-wrapper

コードは https://softwareninjas.kilnhg.com/Repo/Open-Source/Group/DWrite-dll-Wrapper にあります。

これはかなりクールなハックでした。おそらくウィンドウとDirectXリリース間でやや脆弱ですが、MicrosoftがIE自体の根本的な「アンチエイリアシングを無効にできない」問題を修正するために彼らの行動をまとめるまで、今のところトリックを行います。

IE WebBrowserコントロール(別名MSHTML)を使用するアプリでも機能するため、アプリごとにアンチエイリアスを制御できます。また、HTMLヘルプビューアーでも機能します。

IE9標準モードでのテキスト品質は理想的ではないことに注意してください。具体的には、小さいフォントでは、文字が通常の1ピクセルのスペースなしで一緒に実行されることがあります。同じページを互換モードでレンダリングする場合(またはサイトで非厳密なDTDまたはその他の標準を適用しないDTDを使用する場合)、問題なく表示されます。したがって、最高のエイリアステキストレンダリングが必要な場合は、一部のサイトに追加の手順があります。IEのツールバーの互換ボタンを押して互換モードでサイトを表示するだけです。

9
Justin Grant

あなたの質問に直接答えるには:

ClearTypeフォントレンダリングは、すべてのIE9ドキュメントモードで使用されます。サブピクセル配置は、IE9のデフォルトの標準モードでのみ使用されます。 IE9の互換モード(Quirks、7、および8)は、ピクセル全体のテキストメトリックを使用します。

したがって、使用するようにDoctypeを切り替えてみてください Quirksモード

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

考慮すべきもう1つのことは、 ポイントベースのフォントサイズ を回避することです。


IE9のフォント、ぼやけ、レンダリングに関する重要な情報

MSDNソース:

5

ここでの情報は、2つの問題を解決します。1。IE9でのcleartypeとフォントスムージングの削除2. IE10がインストールされているか、自動的にインストールされるときに、cleartypeとフォントスムージングを削除します。

IE9でcleartypeをオフにするためにレジスターハックを実行しました:[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main] "UseClearType" = "no"そして、IE9でフォントスムージングを取り除くために小さなフリーウェアを使用しました:- https://softwareninjas.kilnhg.com/Repo/Open-Source/Group/DWrite-dll-Wrapper

その後、IE10は自動的にインストールされ、ぼやけたタイプが復活しました。 IE 10をアンインストールしてみましたが、これはプログラムの追加/削除インターフェイスではなく、インストールされた更新インターフェイスを介して、IE10更新を削除しました。表面上はIE9に戻りましたが、レジストリのcleartypeの答えが「いいえ」であり、2つの.dllファイルがまだ私のIEプログラムフォルダーにある)にもかかわらず、ぼやけたタイプが残っていました。

そこで、IE9をアンインストールして再インストールすることにしました。これには、インストールされた更新インターフェイスを通過し、IE9更新を削除することも含まれていました。

再起動してプログラムを再インストールする必要があると思っていましたが、IEアイコンがまだ残っていました。クリックすると、IE9がニースのシャープなタイプで開きました。

0
user214553