Расчет пикселей на основе DPI и физического размера

Пытаюсь сделать шаблон Evolus Pencil для Android. У моего устройства экран 1.75x2.5625 дюймов, и я хотел бы имитировать эти точные физические размеры. Из чтения этого сообщения: Несколько размеров экрана Android с одинаковой плотностью Я вижу Physical Size = Pixels / Density. Поэтому, если я создаю изображение шириной 168 пикселей на экране 96 точек на дюйм, я не должен физическое изображение шириной 168/96 = 1,75 дюйма?

Потому что у меня один примерно 1,5 дюйма, и я потерялся. Я запускаю Ubuntu и подтвердил, что разрешение моего экрана с помощью xdpyinfo составляет 96x96. Итак, какую формулу я могу использовать для этого? Я думал, что можно получить нужные пиксели путем умножения дюймов, которые мы хотим на экране, с точки зрения dpi экрана, но это дает мне упомянутые выше 168 и, очевидно, не дает мне ни куда.

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


person Anthony Hiscox    schedule 23.03.2011    source источник
comment
ты должен принять больше ответов   -  person bluefoot    schedule 23.03.2011
comment
Это, похоже, подтверждает вашу формулу. Вы уверены, что ваше изображение каким-то образом не масштабируется без вашего ведома? Еще один хороший способ проверить - сравнить с разрешением экрана, например экран шириной 480 пикселей и 96 точек на дюйм должен быть ровно 5 дюймов в ширину.   -  person Ozzah    schedule 23.03.2011
comment
@bluefoot, честно, я просмотрю их и посмотрю, что я могу принять.   -  person Anthony Hiscox    schedule 23.03.2011
comment
@ Озза, хорошо. xrandr сообщает о разрешении 1024x576, поэтому 1024/96 равно 10,66, верно? У меня ширина 8 3/4 ... также то, что вы связали img, измеряет 1 1/4. Если это вообще имеет значение, я запускаю gnome с отключенными визуальными эффектами ..   -  person Anthony Hiscox    schedule 23.03.2011
comment
Я просто попробовал это на другом компьютере, и изображение шириной 168 пикселей в точности равно ширине моего экрана Android. Так что это просто нетбук Lenovo s10e, интересно, не дело ли в видеодрайвере.   -  person Anthony Hiscox    schedule 23.03.2011


Ответы (1)


Вы уверены, что на самом деле разрешение экрана 96 пикселей на дюйм? Судя по спецификациям и моим собственным расчетам, ваш Lenovo S10e на самом деле имеет плотность ~ 116,36 ppi, и, вероятно, именно в этом заключается ваша разница.

Предполагая, что эти характеристики верны:
диагональ 10,1 дюйма, разрешение 1024 x 576, соотношение сторон экрана 16: 9 (взято из разрешения выше)

Используя некоторые геометрические формулы, вы можете получить фактическую ширину и высоту монитора как:

Ширина: 8,8 дюйма
Высота: 4,95 дюйма

Разделив 1024 / 8,8 и 576 / 4,95, вы получите 116,36 пикселей на дюйм, а не 96.

Используя это вместо этого, изображение размером 168 пикселей должно отображаться как 168 / 116,36 или ~ 1,44 дюйма, что согласуется с вашими результатами. Я бы не стал слишком сильно доверять результатам xdpyinfo. :)

person Kevin Coppock    schedule 23.03.2011
comment
Ты прав. Когда я использую 116,36 dpi, я получаю изображение правильного физического размера. Спасибо, что прояснили это для меня. - person Anthony Hiscox; 23.03.2011