2016-04-02 5 views
4

Функция FT_New_Face кажется той, которую я ищу, но для нее требуется путь к файлу шрифта. Я хотел бы открыть шрифт, например «Times New Roman», без предоставления пути. Как я могу это сделать?Должен ли я использовать путь к шрифтам?

+0

Вы можете обернуть FT_New_Face в функцию, принимающую имя шрифта, а не путь. Путь (ы), который эта функция читала из файла настроек, указывающего пути поиска, где могли быть найдены шрифты. Поскольку вы не хотели бы читать свои пути снова и снова, сделайте это с сохранением состояния, сделав его функтором (объект с перегруженным()) или способом, например. класс FontFinder. –

+1

«Times New Roman» - это шрифт * имя *, но это не имя шрифта * файла *. Строка имени находится внутри файла шрифта. Итак, как FreeType узнает, какой файл шрифта следует выбирать, когда вы даете ему только имя? Вам нужен перевод из названия шрифта в файл шрифта * где-то * в вашем коде. – usr2564301

+1

@JacquesdeHooge: Как найти шрифт на диске? Я вижу некоторые шрифты, расположенные в '/ usr/share/fonts' в моей установке Ubuntu, это то, где я должен смотреть во всех дистрибутивах? Как узнать шрифты системы по умолчанию? –

ответ

5

системы Большинство Unix-системы используют Fontconfig для этого, чтобы получить лучший файл шрифта соответствия из набора параметров поиска (фамилии, вариации, вес и т.д.)

Fontconfig является библиотека для конфигурирования и настройки доступа шрифта.

Fontconfig может:

  • открыть новые шрифты при установке автоматически, убрав общий источник проблем конфигурации.
  • выполнить замену имени шрифта, чтобы соответствующие шрифты могли быть выбраны, если шрифты отсутствуют.
  • Определите набор шрифтов, необходимых для полного покрытия набора языков.
  • имеют инструменты конфигурации GUI, созданные, поскольку он использует файл конфигурации на основе XML (хотя с автообнаружением, мы считаем эта потребность минимизирована).
  • эффективно и быстро найти нужные вам шрифты , даже если у вас есть , установлены тысячи шрифтов, при этом минимальное использование памяти.
  • можно использовать совместно с X Render Extension и FreeType для реализации высококачественного, сглаженного и субпиксельного визуализированного текста на дисплее.

Fontconfig не:

  • рендеринга шрифтов, сами (это осталось FreeType или других рендеринга механизмов)
  • зависят от системы X Window любым способом, так что только для печати приложения не имеют таких зависимостей

Fontconfig относительно портативны и используются на различных системах, однако OSX имеет CoreText, который имеет схожую функциональность и Windows, имеет DirectWrite

См this вопрос о помощи о том, как использовать FontConfig.