Подтвердить что ты не робот

Программно определить DPI через браузер?

Я хотел бы программно определить DPI пользовательского дисплея, чтобы показать веб-страницу с точным количеством единиц (сантиметров/дюймов). Я знаю, что это странный запрос: он для проекта исследований визуализации и это своего рода контроль. В настоящее время мы делаем это, когда пользователь помещает на экран кредитную карту и сопоставляет изменяемый размер div (через Mootools) с реальной кредитной картой, и мы можем получить DPI и правильно отобразить страницу.

Может ли кто-нибудь подумать о программном способе сделать это?

4b9b3361

Ответ 1

Если вы делаете это в javascript/mootools, единицы CSS - ваш друг. Вы можете указать размеры в дюймах или сантиметрах или даже в точках (1/72 дюйма). Если вам абсолютно необходим DPI по какой-либо причине, даже если вы можете указать размеры в этих единицах, просто размер "изменяемого размера" div, который вы используете, до известного размера и рассчитывается из размера перемещенного пикселя.

Edit:

К сожалению, единицы CSS точек, см и не физически верный. Они лишь относительно верный. Это было первое, что я пытался, пока я не понял, что это не работать и проверять спецификацию CSS. мой ужас. - Брэндон Пелфи

Это хороший момент; браузеры, как правило, подделывают его, предполагая, что DPI по умолчанию (я думаю, 72 или 96) и иду с этим.

Ну, если вам нужна точность измерения, как вы просите, вам не повезло. Вы никогда не сможете получить его, не имея возможности прочитать текущее разрешение монитора, включенного браузером, и "видимую область экрана" этого монитора. Разве вы не получите это через Javascript.

Я предлагаю вам сделать предположение по умолчанию, которое делают браузеры и размер в соответствии с единицами CSS. Затем вы можете позволить своим пользователям "настроить размер" с использованием метода, о котором вы упомянули, но только если это необходимо. Сделайте это на отдельной странице с расчетом DPI, который хранится как часть сеанса пользователя или как файл cookie.

В качестве альтернативы, как только Microsoft исправляет эту ошибку, вы можете использовать "независимые от устройства" Silverlight для точного масштабирования.

Ответ 2

Вы не можете. DPI - это функция разрешения пикселя экрана и физических размеров дисплея. Последнее не доступно ни в каком интерфейсе браузера, о котором я знаю.

Ответ 3

Я думаю, что вы не получите точных результатов - например, вы можете изменить размер изображения с помощью монитора. Я предпочел бы придерживаться пользовательского метода, хотя вы можете это сделать. определить разрешение экрана для первой оценки.

Ответ 4

Это невозможно из браузера без кода, запущенного на целевом компьютере. Если вы могли бы установить что-то на целевом компьютере, вы могли бы определить достаточно о мониторе, чтобы вычислить это.