Через расчетные единицы измерения к единицам измерения устройства (пикселям)

Приложение может извлекать метрическую информацию о физическом шрифте только после того, как шрифт был выбран в контекст устройства. Когда шрифт выбран в контекст устройства, он масштабируется для устройства. Метрическая информация о шрифте, конкретная для устройства - известна как единицы измерения устройства (пиксели).

Аппратно-независимые метрики в шрифтах - известны как расчетные единицы измерения. Чтобы применять в заданном устройстве, расчетные единицы измерения должны быть преобразованы в единицам измерения устройства (пиксели). Используйте нижеследующую формулу, чтобы конвертировать расчетные единицы измерения в единицы измерения устройства (пиксели).

DeviceUnits = (DesignUnits / unitsPerEm) * (PointSize/72) * DeviceResolution

Переменные в этой формуле имеют нижеследующее предназначение.

Переменная Описание
DeviceUnits Устанавливает атрибут шрифта DesignUnits, который преобразуется в единицы измерения устройства (пиксели). Это значение измеряется в тех же самых единицах измерения как и значение, заданное для DeviceResolution.
DesignUnits Устанавливает атрибут шрифта, который будет преобразован в единицы измерения устройства (пиксели). Это значение может быть любым атрибут шрифта, включая ширину буквы или значения надстрочного элемента для всего шрифта.
unitsPerEm Устанавливает размер em-квадрата для шрифта.
PointSize Устанавливает размер шрифта, в пунктах. (Один пункт равняется 1/72 дюйма.)
DeviceResolution Устанавливает число единиц измерения устройства (пикселей) на дюйм. Обычные значения могут быть 300 пикселей для лазерного принтера или 96 для экрана VGA.
 

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

Чтобы запросить расчетные единицы измерения, создайте логический шрифт, высота которого задана как -unitsPerEm. Прикладные программы могут извлекать значение для параметра unitsPerEm путем вызова функции EnumFontFamilies и проверкой члена ntmSizeEM структуры NEWTEXTMETRIC.

Назад в оглавление темы
На главную страницу темы

Hosted by uCoz