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


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

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

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

Отправная точка, заданная в структуре TTPOLYGONHEADER - всегда на контуре глифа. Заданная точка служит и как точка начала и как точка конца для контура.

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

Hosted by uCoz