shimiminの日記

IT系のメモ書きです。

Windowsの拡大縮小動作について

4Kのディスプレイになったのに拡大率150%で使うとWQHD相当ではないか、という記事を先日書きましたが...そんなに単純なものではなかったようです。

shimimin.hatenablog.com

拡大縮小は文字だけ?

4Kディスプレイを拡大率150%で使うと、単純計算で表示領域は 2560x1440になるような気がしていました。それぞれ 1.5倍すれば3840x2160になるからです。

が、「ペイント」で2560x1440画素の画像を作ってみると、画像のエリアだけは 150% にならないことに気づきました。つまり、「4Kディスプレイを拡大率150%で使う」ということと、「4KディスプレイをWQHD解像度で使う」ということは違う、ということです。下記の画像を見てください。

f:id:shimimin:20210313090620j:plain

スケーリングは画像には適用されない

左側は、4Kディスプレイを100%表示で表したものです。一番上の「あ」は36ポイント。ディスプレイ上での文字高は9ミリほどです。右側は、150%表示で表したものです(手振れしてますが)。比べてみればわかるように、メニューバーの高さは150%に拡大されています。一方で、なんと、画像の部分は拡大されていない。試しに1ピクセル幅の線を引いてみましたが、4Kディスプレイの実ピクセルで表示されました。これはビックリ。

拡大は文字だけなのか?と思ってエクセル(互換品ですが)で確認(また手振れ...)。

f:id:shimimin:20210313092134j:plain

文字は拡大される

セルの高さが3ミリ弱から4ミリ強に拡大され、メニュー含め全体的に拡大されていることがわかります。なるほどねぇ。

4Kディスプレイの恩恵

というわけで、4Kディスプレイを150%にスケールして使う場合であっても、WQHDのディスプレイとは同じではなく、画像については広く表示されることがわかりました。

Windowsのスケーリングはアプリによってうまく動いたりダメだったりと、ちょっと怪しいなと思っていましたが、いろいろ工夫されているんですね...ちょっと見直しました。

support.microsoft.com

アプリのスケーリング動作を表示する小技

上の情報に、アプリがDPIスケーリングに対応しているかどうかを判定する方法が紹介されていたので、こちらに抜き書きしておきます。方法は次の通り。

  1. Sysinternals Process Explorerをダウンロードして実行。
  2. Process Explorerのプロセス画面で右クリックし、DPI Awareness カラムを追加。
  3. 判定したいアプリを実行して確認

f:id:shimimin:20210313175630p:plain

DPI Awarenessをチェック

こんな感じで表示されます。

f:id:shimimin:20210313175659p:plain

DPIスケーリングの対応状況がわかる

Chromeは割と上手にスケーリング対応していると思っていましたが、WindowsAPIは使っていないようですね。Unawareと書かれていました。Firefox は Per-Monitor Aware でした。

ということで、何かの参考になれば幸いです。