Кривые рендеринга шрифтов TTF - PullRequest
2 голосов
/ 01 апреля 2011

Не могли бы вы указать мне эффективный алгоритм рендеринга и заполнения кривых, используемых в шрифтах TTF?Я загрузил данные в виде контуров точек, поэтому меня интересует только эффективный способ рисования кривых.Я также очень хотел бы, чтобы он поддерживал сглаживание.

Что я знаю до этого момента:

  1. TTF использует кривые Безье и сплайны
  2. TTF классифицирует этоточки как точки, определяющие линии, и точки, определяющие кривую, причем последняя находится либо на рассматриваемой кривой, либо на нашей (контрольные точки)
  3. Можно сделать многоугольник из контура кривой, в котором выполнены изогнутые частилиний размером в пиксель.
  4. Этот многоугольник можно использовать для визуализации заполненного контура, а если использовать данные как плавающие, а не целые, можно добиться сглаживания шрифта.

Так вы могли бы указать мне какой-нибудь гид или что-то в этом роде?

Спасибо.

1 Ответ

1 голос
/ 01 апреля 2011

Если у вас уже есть векторные данные, то вы должны растеризовать их с помощью некоторого алгоритма заполнения линии сканирования.Для сглаживания разделите пиксели на n по n блоков, растеризуйте символы и вычислите значение серого, соответствующее количеству заполненных подпикселей.Я думаю, что работать с кривыми Безье и сплайнами будет нелегко.Если это возможно, я бы использовал библиотеку типа freetype или подобную.

...