Если вы делаете это в javascript/mootools, CSS units - ваш друг. Вы можете указать размеры в дюймах или сантиметрах или даже в точках (1/72 дюйма). Если вам абсолютно необходим DPI по какой-либо причине, даже если вы можете указать размеры в этих единицах, просто размер «изменяемого размера» div, который вы используете, до известного размера и вычисляете из размера перемещенного пикселя.
Edit:
К сожалению, CSS единиц точек, см, и в не физически правильно. Они только относительно правильно. Это было первое, что я делал , пока не понял, что это не работает и проверяет спецификацию CSS .. мой ужас. - Brandon Pelfrey
Это хорошая точка; браузеры, как правило, подделывают его, предполагая, что DPI по умолчанию (я думаю, 72 или 96) и согласен с этим.
Ну, если вам нужна точность, как вы просите, вам не повезло. Вы никогда не сможете получить его, не имея возможности прочитать текущее разрешение монитора, включенного браузером, и «видимую область экрана» этого монитора. Разве вы не получите это через Javascript.
Я предлагаю вам принять по умолчанию предположение, что браузеры выполняют и определяют размер в соответствии с единицами CSS. Затем вы можете позволить своим пользователям «настроить размер» с использованием метода, о котором вы упомянули, но , только если это необходимо. Сделайте это на отдельной странице с расчетом DPI, который хранится как часть сеанса пользователя или как файл cookie.
В качестве альтернативы, если Microsoft исправляет this bug, вы можете использовать «независимые от устройства устройства» Silverlight для точного масштабирования.
Возможный дубликат [Определение системы DPI/PPI от JS/CSS?] (Http://stackoverflow.com/questions/279749/detecting-the-system-dpi-ppi-from -js-css) – Endless