web-dev-qa-db-ja.com

XサーバーはDPIをどのように計算しますか?

From Xfce Docs

DPI(dots per inch)の値Xサーバーで計算を上書きする場合は、チェックボックスを選択し、スピンボックスを使用して、画面がフォントをレンダリングするときに使用する解像度を指定できます。

しかしhow Xサーバーはその計算を行いますか?プロセスでどのような仮定が行われ、一部のパラメーターをオーバーライドできますか?

ディスプレイにあるピクセル数はわかっているかもしれませんが、それで十分ですか?

9
Alois Mahdal

私の知る限り、バージョン1.7以降、xorgデフォルトは96 dpi です。 DisplaySize設定ファイルでXorgを指定しない限り、何も計算されません。また、xdpyinfo出力に依存しないでください。
私のラップトップはIntel SandyBridgeで動作します。 Archlinuxの新規インストール時のXorg.0.logからの抜粋:

(==) intel(0): DPI set to (96, 96)

ランニング

xdpyinfo | grep -E 'dimensions|resolution'

戻り値:

dimensions:    1600x900 pixels (423x238 millimeters)
resolution:    96x96 dots per inch

これは真実とはほど遠い。私 知っている 画面サイズは344x193 mmであるため、明らかにxdpyinfoはピクセル解像度(1600x900)とデフォルトの96 DPIに基づいて物理サイズを計算します。追加した場合

........
DisplaySize     344 193
........

/etc/X11/xorg.conf.d/monitor.confで再起動すると、Xorg.0.logは正しくレポートします。

(**) intel(0): Display dimensions: (344, 193) mm
(**) intel(0): DPI set to (118, 118)

ただし、xdpyinfo | grep -E 'dimensions|resolution'は常に以下を返します。

dimensions:    1600x900 pixels (423x238 millimeters)
resolution:    96x96 dots per inch

それでも、Gnomeを使用しているため、視覚的な変更はありません。96 DPIgnome-settings-daemonにハードコードされています。後者にパッチを適用した後、ネイティブ118 DPIを楽しむことができます。しかし、それでも、xdpyinfoは次のように返します。

dimensions:    1600x900 pixels (423x238 millimeters)
resolution:    96x96 dots per inch
8
don_crissti

XサーバーはDPIをどのように計算しますか?

XサーバーのDPIは、次の方法で決定されます。

  1. -dpiコマンドラインオプションが最も優先されます。
  2. これが使用されていない場合、X構成ファイルのDisplaySize設定を使用して、画面の解像度を考慮してDPIを導出します。
  3. DisplaySizeが指定されていない場合、DDCからのモニターサイズ値を使用して、画面の解像度が指定されたDPIが導出されます。
  4. DDCがサイズを指定しない場合、デフォルトで75 DPIが使用されます。

ディスプレイにあるピクセル数はわかっているかもしれませんが、それで十分ですか?

いいえ、仮想画面のサイズ(ピクセル単位)だけでなく、(通常)物理的な表示サイズ(ミリメートル単位)も認識します。ターミナルウィンドウで次のコマンドを実行すると、ディスプレイのサイズを確認できます。

 ~ $ xdpyinfo | grep dimension
dimensions:    1366x768 pixels (361x203 millimeters)

Xサーバーが行う計算は次のとおりです。

  • 1366ピクセルを361ミリメートルで割ったものに25.4ミリメートル/インチ= 96.11191136ドット/インチ(DPI)を掛けたもの。
  • 768ピクセルを203ミリメートルで割った値に25.4ミリメートル/インチ= 96.09458128ドット/インチ。

次のコマンドを使用して、Xサーバーが計算したDPIを確認できます。

 ~ $ xdpyinfo | grep resolution
 resolution:    96x96 dots per inch

よさそうですね。

さらに読むために:

7
Afr

1インチあたりのドット数=ドット(ピクセル)/インチ(モニターの物理サイズ)。

0
psusi