トップ回答者
WebBrowserコントロールのスムージング(アンチエイリアシング)について

質問
-
WebBrowserコントロールを使って作成したHTMLを表示しようとしていますが、
IE11だとフォント等がスムージングされて綺麗に表示されているのに
WebBrowserコントロールだと全くスムージングされずジャギーが目立ちます。
レジストリのFEATURE_BROWSER_EMULATIONはIE11(11000)にセットしてあり
IE11そのものと同様の表示になることを期待していたのですが。。
スムージングを有効とするような設定がどこかにあるのではと思い色々と調べてはみているのですが
有効な情報が得られず、藁にもすがる思いでこちらに投稿させて頂いた次第です。
WebBrowserコントロールでのスムージングを有効化した表示方法について、情報を頂けると助かります。
回答
-
11000と11001とでHTMLの解釈が異なるために試してもらいましたがハズレでしたか。
別の確認ですが、ディスプレイの拡大を使用されていますでしょうか? IEとWebBrowserコントロールとで拡大方法が異なっているため、ジャギーに見えている可能性があります。
本件、無事に解決しました!
上記のコメントについて、一度は拡大等していないと回答していたのですが、他のデスクトップPCで確認してみたところ表示に違いが無かったので相違点を探っていると、IE11として標準となっている拡大レベルが異なりました。
普段利用しているノートPCでは標準が125%となっており、デスクトップPCでは100%で、初期表示で拡大されていた事になります。(ディスプレイ設定の拡大縮小で125%が設定されていた)
明示的に変えていなかったので初期表示が100%であるとの思い込みがあったのが原因でした。
後は、拡大方法が異なるとの上記コメントの通りで、同じ縮尺でも異なった拡大表示となって違うものに見えていたということですね。
100%の大きさで出力した画像は同じ内容となっている事が確認できました。
Win10環境で意識せず使っていた機能について改めて考えさせられた1件でした。色々と助言下さった皆様、ありがとうございました。
- 回答としてマーク miya244 2018年3月3日 4:30
すべての返信
-
私の環境ではレジストリ等で設定を行わなくても、C# の Windows フォームアプリケーションで作成した WebBrowser コントロールで本ページを表示させてみた結果、下記のようにアンチエイリアスが効いているようでした。
アンチエイリアスが効かないというのは、特定のフォントや特定のページだけでしょうか?また、Windows のバージョンや IE のバージョンによって挙動が変わるかもしれませんので、それぞれバージョン情報を教えていただけますでしょうか?
描画の問題ですので、下記のハードウェアアクセラレーションのレジストリを設定することで何か変化がありますでしょうか?
https://hack.jp/?p=705 「WebBrowser コントロールで GPU レンダリングを有効にするには」- 編集済み kenjinoteMVP 2018年3月1日 9:24
-
ありがとうございます。
返信頂いて、改めて画像拡大して見てみるとアンチエイリアシングが効いていないというわけでは無さそうでした。。申し訳ないです。
ただ、自社で扱うフォントを使用すると顕著に見栄えが変わり、効いていないかのようなジャギー感があったのです。
フォントはオープンにできないのでメイリオのフォントで出力した比較を添付し・・・たかったのですが、フォーラムに登録したばかりで権限が無くアップできませんでした。。
改めて、アンチエイリアシングは効いているようですが、WebBrowserコントロールは全体的に薄く、曲線で欠けたりするような箇所がある事からジャギー感が感じられるような気がしています。このように見栄えが変わってしまう事というのはあるものなのでしょうか?また解消はできないのでしょうか?
当方の環境はWin10、IEは11で確認しています。GPUレンダリング有無では見た目の変化は感じられませんでした。
-
-
> 画像を貼れないのがもどかしい・・・
代わりに、質問者さんの問題を再現できるページの url を貼れませんか?
最初にkenjinoteさんが貼ってくれた、このページの画像でも比較すれば確認できますが、IE11とWebBrowserコントロールのレンダリング結果が微妙に異なります。(WebBrowserコントロールの方がぼんやりとして薄くなってる感じ)
これがフォントによって出方が異なってくるのだとは推測できますが、そもそも描画エンジンが同じなら、同じ設定にしていれば同じ表示結果にできるのではないかと考えている次第です。
もしこのページの表示ででも、同じ表示結果にできるパラメータが判明すれば解決の糸口になるのでは?と考えています。
ただ、私の知識不足で、そもそも描画エンジンが異なるもので同一性が期待できないのであればどうしようも無さそうですが。。
-
IE11 と WebBrowser コントロールのレンダリング結果が微妙に異なる件ですが、私の環境 (Win10,IE11,メイリオ,EMULATION=IE11,GPU=ON) では特に WebBrowser の方がジャギーが目立ったりボンヤリした感じは分かりませんでした。
ただ、IE11 と WebBrowser コントロールで異なる点を見つけました。
「コントロール パネル」→「システムの詳細設定」→ パフォーマンスオプションの「視覚効果」タブで「スクリーンフォントの縁を滑らかにする」の設定が WebBrowser コントロールでは影響がありますが、IE11 では影響がないように見えました。
-
11000と11001とでHTMLの解釈が異なるために試してもらいましたがハズレでしたか。
別の確認ですが、ディスプレイの拡大を使用されていますでしょうか? IEとWebBrowserコントロールとで拡大方法が異なっているため、ジャギーに見えている可能性があります。
本件、無事に解決しました!
上記のコメントについて、一度は拡大等していないと回答していたのですが、他のデスクトップPCで確認してみたところ表示に違いが無かったので相違点を探っていると、IE11として標準となっている拡大レベルが異なりました。
普段利用しているノートPCでは標準が125%となっており、デスクトップPCでは100%で、初期表示で拡大されていた事になります。(ディスプレイ設定の拡大縮小で125%が設定されていた)
明示的に変えていなかったので初期表示が100%であるとの思い込みがあったのが原因でした。
後は、拡大方法が異なるとの上記コメントの通りで、同じ縮尺でも異なった拡大表示となって違うものに見えていたということですね。
100%の大きさで出力した画像は同じ内容となっている事が確認できました。
Win10環境で意識せず使っていた機能について改めて考えさせられた1件でした。色々と助言下さった皆様、ありがとうございました。
- 回答としてマーク miya244 2018年3月3日 4:30