Получение точек вектора буквы шрифтом TrueType - PullRequest
5 голосов
/ 02 мая 2010

Поскольку шрифты True Type - это просто векторы, мне было интересно, есть ли способ получить векторы (массив точек) для буквы, учитывая, что я использую WinAPI. Спасибо

Ответы [ 2 ]

4 голосов
/ 02 мая 2010

Используйте функцию GetGlyphOutline с опцией GGO_NATIVE.

http://msdn.microsoft.com/en-us/library/dd144891%28v=VS.85%29.aspx

На самом деле, шрифты True Type определяются кривыми Безье, а не векторами, поэтому вы получаете список кривых. В большинстве графических библиотек в любом случае есть способ рисовать кривые Безье, так что вы можете получить, просто зная, что кривая определяется несколькими контрольными точками.

Шрифт будет предварительно подогнан к сетке (например, хинтинг).

1 голос
/ 02 мая 2010

Я не знаю, даст ли Win32 API деконструированный глиф. Библиотека FOSS FreeType2 предоставляет точки глифа в FT_Outline::points.

Обратите внимание, что глиф больше, чем его точки. Вы должны работать с кривыми Безье и подсказками, чтобы правильно воспроизвести глиф. Подсказка важна для маленьких шрифтов, и ее крайне сложно понять правильно. FreeType обычно делает все это для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...