Поделиться через


Получение контуров символов

Функцию GetGlyphOutline можно использовать для получения контура глифа из шрифта TrueType. Контур глифа, возвращаемый функцией GetGlyphOutline , предназначен для глифа, установленного в сетке. (Глиф, установленный сеткой, был изменен таким образом, чтобы его растровое изображение максимально соответствовало первоначальному дизайну глифа.) Если приложению требуется неизмененную структуру глифа, запросите структуру глифа для символа шрифта, размер которого равен единицам em шрифта. (Чтобы создать шрифт с таким размером, присвойте элементу lfHeight структуры LOGFONT отрицательное значение значения элемента ntmSizeEM структуры NEWTEXTMETRIC .)

GetGlyphOutline возвращает контур в виде растрового изображения или ряда полилиней и сплайнов. Когда приложение получает контур глифа в виде ряда полилиней и сплайнов, информация возвращается в структуре TTPOLYGONHEADER , за которой следует столько структур TTPOLYCURVE, сколько требуется для описания глифа. Все точки возвращаются как структуры POINTFX и представляют абсолютные позиции, а не относительные перемещения. Начальная точка, заданная элементом pfxStart структуры TTPOLYGONHEADER , — это точка, с которой начинается контур для контура. Следующие структуры TTPOLYCURVE могут быть ломаными или сплайн-записями.

Для отрисовки контура символов TrueType необходимо использовать как ломаные, так и сплайновые записи. Система может легко визуализировать как ломаные, так и сплайны. Каждая ломаная и сплайновая запись содержит как можно больше последовательных точек, чтобы свести к минимуму количество возвращаемых записей.

Начальная точка, указанная в структуре TTPOLYGONHEADER , всегда находится на контуре глифа. Указанная точка служит начальной и конечной точками для контура.

В этом разделе содержатся сведения по следующим темам.