User Tools

Site Tools


hidensityfont_theory

В PalmOS 5 впервые за историю системы были официально упомянуты экраны, отличающиеся от 160×160 пикселов. Все предыдущие расширения от Sony и Handera были неофициальными расширениями.

Что представляет из себя поддержка нестандартных разрешений?

Во-первых нужно понять смысл термина High Density - высокая плотность. Физические размеры экрана остались прежними, изменилось лишь количество пикселей на единицу площади. А это обозначает, что если на экране 320×320 рисовать в старом разрешении 160×160, то картинка получится мелкой. Во-вторых старая программа должна работать на новом экране без изменений.

Напомним, что такое старый шрифт. Старый шрифт - это набор изображений (битмапов) символов. Изображение символа называется глифом. Шрифт характеризуется высотой (высота всех глфов одинаковая) и максимальной шириной. Ширина разных символов может быть разной.

Концепция high density fonts была продумана для реализации требований к новым экранам. Новый шрифт должен состоять не из одного набора изображений, а из нескольких: по одному для каждого разрешения. Поскольку реально сейчас есть два разрешения: одинарное (экран 160×160) и двойное (экран 320х320), то в новый шрифт входят именно такие наборы. Существует еще полуторное разрешение, но я пока не видел таких шрифтов.

Как показывается шрифт? Шрифт показывается в соответствии с разрешением экрана. При выводе на старом экране буква будет рисоваться из одинарного глифа, а на новом из двойного. Поскольку двойной глиф должен быть ровно в два раза выше и шире одинарного, то он займет в 4 раза больше места в пикселах, и столько же в линейных размерах.

В чем же преимущество таких шрифтов? Текста, показанного шрифтом размером 22×22 на экране 320×320 поместится столько же, сколько и показанного шрифтом 11×11 на экране 160×160. Преимущество заключается в том, что новый шрифт можно сделать эргономичнее предыдущего. Шрифт высокого разрешения будет богаче на детали. На новом экране шрифт будет читабельнее.

hidensityfont_theory.txt · Last modified: 2003/11/12 08:09 by 127.0.0.1