вопрос по разрешению против DPI?

В чем смысл приведенного ниже утверждения:

Разрешение моей системы 1024 x 768 при 96 DPI

Я не могу понять внутреннюю математику: когда мы увеличиваем DPI при фиксированном разрешении, пользовательский интерфейс, разработанный в приложении VC++/MFC или C#/Winform, расширяется (выглядит больше, чем при 96 DPI).

Например, мы разрабатываем пользовательский интерфейс с разрешением 96 точек на дюйм, что означает 96 точек на дюйм. Теперь, когда мы увеличиваем DPI, мы увеличиваем количество точек на дюйм, после чего пользовательский интерфейс должен выглядеть сжатым, а не увеличиваться.

Я делаю это на машине с Windows 7

Пожалуйста помоги!!


person Ashish Ashu    schedule 16.05.2011    source источник


Ответы (2)


Разрешение моей системы 1024 x 768 при 96 DPI.

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

Это будет работать правильно, если настройка 96 точек на дюйм соответствует вашему монитору (т. е. область отображения составляет 1024/96 = 10,67 на 768/96 = 8 дюймов).

Почему объекты становятся больше, когда вы увеличиваете этот параметр? Допустим, мы хотим сделать кнопку высотой 1 дюйм, а реальный DPI вашего монитора равен 96, но вы установили его на 150. Один дюйм, умноженный на 150 точек на дюйм, дает нам 150 пикселей, поэтому мы нарисуем нашу кнопку высотой 150 пикселей. Но реальный DPI нашего монитора равен 96, так что это выглядит как 150 пикселей / 96 dpi = 1,56 дюйма в высоту.

person Max    schedule 16.05.2011

для вашего монитора нет настройки «DPI», это устройство знает только о пикселях. DPI = либо принтеры, либо предварительно отформатированные документы, которые необходимо просматривать на специальных устройствах. Однако вы МОЖЕТЕ рассчитать, сколько пикселей потребуется для отображения чего-либо с физическим размером (следовательно, DPI) X ... что, кстати, является довольно неточным расчетом.

Если вы рассчитываете физические размеры, вы либо разрабатываете компьютерные игры, пишете свой собственный драйвер печати, либо вам нужно выполнять нестандартные проектные задачи.

person specializt    schedule 16.05.2011