एक्स-सर्वर डीपीआई की गणना कैसे करता है?


9

से Xfce डॉक्स :

यदि आप एक्स-सर्वर द्वारा गणना की गई डीपीआई (डॉट्स प्रति इंच) मान को ओवरराइड करना चाहते हैं , तो आप चेकबॉक्स का चयन कर सकते हैं और स्पिन बॉक्स का उपयोग करते हुए रिज़ॉल्यूशन निर्दिष्ट करने के लिए उपयोग कर सकते हैं जब आपकी स्क्रीन फोंट प्रदान करती है।

लेकिन एक्स-सर्वर इसकी गणना कैसे करता है? इस प्रक्रिया में क्या धारणा बनाई गई है और क्या कुछ मापदंडों को ओवरराइड किया जा सकता है?

यह पता चल सकता है कि मेरे प्रदर्शन पर कितने पिक्सेल हैं, लेकिन क्या यह पर्याप्त है?

जवाबों:


8

जहाँ तक मुझे पता है, संस्करण 1.7 से शुरू होकर, xorg डिफॉल्ट से96 dpi । जब तक आप कॉन्फ़िगर फ़ाइलों के DisplaySizeमाध्यम से निर्दिष्ट नहीं करते तब तक यह कुछ भी गणना नहीं करता है Xorg। इसके अलावा, xdpyinfoआउटपुट पर भरोसा न करें ।
मेरा लैपटॉप Intel SandyBridge पर चलता है। 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मिमी है इसलिए स्पष्ट रूप से 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 निम्न तरीके से निर्धारित किया जाता है:

  1. -dpiआदेश पंक्ति विकल्प सर्वोच्च प्राथमिकता है।
  2. यदि इसका उपयोग नहीं किया जाता है, DisplaySizeतो स्क्रीन रिज़ॉल्यूशन को देखते हुए, डीपीआई को प्राप्त करने के लिए एक्स कॉन्फिग फ़ाइल में सेटिंग का उपयोग किया जाता है।
  3. यदि नहीं DisplaySizeदिया जाता है, तो स्क्रीन रिज़ॉल्यूशन को देखते हुए, डीडीसी से मॉनिटर आकार मानों को डीपीआई प्राप्त करने के लिए उपयोग किया जाता है।
  4. यदि DDC आकार निर्दिष्ट नहीं करता है, तो डिफ़ॉल्ट रूप से 75 DPI का उपयोग किया जाता है।

यह पता चल सकता है कि मेरे प्रदर्शन पर कितने पिक्सेल हैं, लेकिन क्या यह पर्याप्त है?

नहीं, यह न केवल पिक्सेल में आभासी स्क्रीन आकार को जानता है, बल्कि (आमतौर पर) मिलीमीटर में भौतिक प्रदर्शन आकार भी है। आप टर्मिनल विंडो में निम्नलिखित को चलाकर अपने प्रदर्शन आयामों की जांच कर सकते हैं:

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

गणना जो आपका एक्स सर्वर कर रहा है वह निम्नलिखित है:

  • 361 मिलीमीटर से विभाजित 1366 पिक्सेल 25.4 मिलीमीटर प्रति इंच = 96.11191136 डॉट्स प्रति इंच (डीपीआई) से गुणा किया जाता है।
  • 203 मिलीमीटर से विभाजित 768 पिक्सल 25.4 मिलीमीटर प्रति इंच = 96.09458128 डॉट्स प्रति इंच से गुणा किया जाता है।

आप जाँच सकते हैं कि डीपीआई ने आपके एक्स सर्वर ने निम्नलिखित कमांड का उपयोग करके क्या गणना की है:

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

अच्छा लग रहा है, है ना?

आगे पढ़ने के लिए:


@ alois-mahdal मुझे लगता है कि मैं पहली बार में इस सवाल को गलत समझ गया। मैंने X सर्वर द्वारा उपयोग किए गए प्रदर्शन आयामों को जोड़ने के उत्तर में सुधार किया है।
अफर

मॉनिटर रिज़ॉल्यूशन की परवाह किए बिना Xorg 96x96 तक चूकता है। मुझे लगता है कि यह इसलिए है क्योंकि प्रोग्राम इस मानक डीपीआई के लिए छवियों की आपूर्ति करते हैं। हर समय छवियों को स्केल करके कलाकृतियों को बनाने से थोड़ा दूर रहना बेहतर है। मेरे प्राथमिक मॉनिटर की वास्तविक डीपीआई 93.8 है। हालाँकि, कस्टम डीपीआई सेट करना बड़े एचडीटीवी जैसे बड़े डिस्प्ले के लिए उपयोगी है, जिसकी डीपीआई 96 से बहुत कम है।
कॉलिन

X एक स्क्रीन के लिए प्रति मॉनिटर DPI सेटिंग्स की अनुमति नहीं देता है, कि DPI को एक ही स्क्रीन में सभी मॉनिटरों में साझा किया जाता है। इसके अलावा मैंने पाया कि जो मिलीमीटर दिया गया xdpyinfoहै वह मिलीमीटर से नहीं जुड़ता है xrandr --query
CMCDragonkai

0

डॉट्स प्रति इंच = डॉट्स (पिक्सेल) / इंच (मॉनिटर का भौतिक आकार)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.