Как писать программы, используя расширенные возможности OpenType? - PullRequest
0 голосов
/ 26 марта 2010

Как я мог написать простую программу, использующую таблицы OpenType для динамического рендеринга текста?

ответьте пожалуйста:

  • сборка, C, C ++, C #, Java или Python (и немного WPF :-)

или представьте библиотеки из них.

приветствуются комментарии и ответы о системе рендеринга текста в распространенных операционных системах или разработке текстовых движков, совместимых с протоколом Unicode 5.02.

Ответы [ 3 ]

2 голосов
/ 01 июля 2010

FreeType предлагает только базовые возможности рендеринга и не поддерживает расширенные функции OpenType. Много лет назад FreeType 1.x содержал модуль, обеспечивающий функциональность OpenType, но это стало его собственным проектом: HarfBuzz. Если вам нужно что-то, что работает везде (на каждой ОС / платформе), это должно быть лучшим решением. Отличная библиотека pango обеспечивает высокоуровневый интерфейс для HarfBuzz, среди прочего.

Windows предоставляет движок OpenType, называемый Uniscribe. То же самое касается OS X, которая имеет ATSUI.

Надеюсь, это должно начать.

1 голос
/ 21 октября 2016

Pure C # , https://github.com/LayoutFarm/Typography

поддержка .NET> = 20

доступ к общим данным глифа,

и доступ к расширенным типографским данным.

(например, GDEF, GSUB, GPOS) и т. Д.


На приведенном ниже изображении показан снимок экрана,

snap1: сравните затем глиф рендеринга lib 'B'

  1. (слева): глиф из библиотеки без подсказок

  2. (в середине): GDI Windows с чистым типом (из блокнота)

  3. (справа): глиф из библиотеки с True Hinting

enter image description here


оснастка 2: я разрабатываю авто-подсказку и подгонку к сетке.

протестируйте ее и не стесняйтесь комментировать, разбирать, обсуждать.

triangulate1


snap 3: субпиксельная визуализация

subpixel_rendering

1 голос
/ 26 марта 2010

Не знаю, удовлетворит ли это ваши потребности или нет, но в прошлом я использовал библиотеку FreeType для визуализации текста TrueType. Он достаточно гибкий и легко переносится между различными платформами (Linux, Windows, OSX и т. Д.). Кроме того, лицензирование (в стиле BSD) таково, что использование его в коммерческих приложениях не является проблемой.

...