Как X-сервер вычисляет DPI?

Это - функция. Перейдите к Редактированию-> Горячие клавиши

И снимите флажок, "Включают сочетание клавиш меню"

выключить его.

9
11.05.2013, 02:24
3 ответа

Насколько я знаю, начиная с версии 1.7, xorg значения по умолчанию к 96 dpi. Это ничего не вычисляет, если Вы не указываете DisplaySize через Xorg файлы конфигурации. Кроме того, не полагайтесь xdpyinfo вывод.
Мой ноутбук работает на Intel SandyBridge. Выборка от моего Xorg.0.log на новой установке Archlinux:

(==) 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
8
27.01.2020, 20:05

Как X-сервер вычисляет DPI?

DPI X-сервера определяется следующим образом:

  1. -dpi параметр командной строки имеет самый высокий приоритет.
  2. Если это не используется, DisplaySize установка в X файлах конфигурации используется для получения DPI, учитывая разрешение экрана.
  3. Если нет DisplaySize дан, значения размера монитора от DDC используются для получения DPI, учитывая разрешение экрана.
  4. Если DDC не указывает размер, 75 DPI используются по умолчанию.

Это может знать, сколько пикселей я имею на своем дисплее, но то, что достаточно?

Нет, это не только знает виртуальный размер экрана в пикселе, но и (обычно) также физический размер дисплея в миллиметрах. Можно проверить размеры дисплея путем выполнения следующего в окне терминала:

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

Вычисление, которое является Вашим X-сервером, делающим, следующее:

  • 1 366 пикселей, разделенных на 361 миллиметр, умноженный с 25,4 миллиметрами за дюйм = 96,11191136 точек на дюйм (DPI).
  • 768 пикселей, разделенных на 203 миллиметра, умноженные с 25,4 миллиметрами за дюйм = 96,09458128 точек на дюйм.

Можно проверить то, что DPI X-сервер вычислил использование следующей команды:

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

Хорошие взгляды, не так ли?

Для дополнительных материалов для чтения:

7
27.01.2020, 20:05
  • 1
    @alois-mahdal, я предполагаю, что неправильно понял вопрос сначала. Я улучшил ответ, добавляющий размеры дисплея, используемые X-сервером. –  Afr 23.07.2013, 14:38
  • 2
    Xorg к 96x96 независимо от разрешения монитора. Я думаю, что это вызвано тем, что программы предоставляют изображения, предназначенные для этих стандартных точек на дюйм. Лучше быть немного выключенным, чем создать артефакты путем масштабирования изображений все время. Фактический DPI моего основного монитора 93.8. Однако установка пользовательского DPI полезна для больших дисплеев, таких как большой HDTVs, DPI которого намного ниже, чем 96. –  Colin 28.10.2014, 19:49
  • 3
    X, кажется, не позволяет настройки DPI на монитор для одного экрана, что DPI совместно используется через все мониторы на том же экране. Также я нашел что миллиметры данный xdpyinfo не складывает от миллиметров от xrandr --query. –  CMCDragonkai 10.03.2016, 09:42

Точки на дюйм = Точки (пиксели) / Дюймы (физический размер монитора).

0
27.01.2020, 20:05

Теги

Похожие вопросы