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


9

Xfce Docsから:

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

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

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

回答:


8

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

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

ランニング

xdpyinfo | grep -E 'dimensions|resolution'

戻り値:

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

これは真実とはほど遠い。私が知っている私の画面サイズであることを344x193とても明らかミリメートル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 DPIまた、でハードコーディングされていgnome-settings-daemonます。後者にパッチを適用した後、ネイティブを楽しむことができます118 DPI。しかし、xdpyinfoそれでもすべてが返されます。

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

7

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

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

  1. -dpiコマンドラインオプションは、最も高い優先度を持っています。
  2. これが使用されていない場合DisplaySize、X構成ファイルの設定を使用して、画面の解像度を考慮して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

よさそうですね。

さらに読むために:


@ alois-mahdal質問を最初は誤解していたと思います。Xサーバーで使用される表示サイズを追加して、回答を改善しました。
2013

Xorgのデフォルトは、モニターの解像度に関係なく96x96です。これは、プログラムがこの標準dpi用の画像を提供しているためだと思います。常に画像を拡大縮小してアーティファクトを作成するよりも、少し離れている方が良いです。私のプライマリモニターの実際のDPIは93.8です。しかし、DPIは、DPIある96よりもはるかに低い大型ハイビジョンテレビなどの大型ディスプレイに便利ですカスタム設定
コリン・

Xは、単一画面のモニターごとのDPI設定を許可していないようです。そのDPIは、同じ画面内のすべてのモニターで共有されています。また、によって与えられたミリメートルが、xdpyinfoからのミリメートルと加算されないこともわかりましたxrandr --query
CMCDragonkai 2016年

0

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.