FreeType

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 20:03, 10 января 2019.
FreeType
FreeType-logo.png
Создатели: Дэвид Тернер, Роберт Вильгельм, Вернер Лемберг
Разработчики: сообщество
Выпущена: 1996 г
Предыдущий выпуск: 2.9.1 (02 мая 2018)
Состояние разработки: активное
Написана на: C
Операционная система: Кросс-платформенная
Тип ПО: Библиотека разработки программного обеспечения : Растеризация шрифтов
Лицензия: Стандартная общественная лицензия GNU / лицензия FreeType (BSD-подобная)
Веб-сайт freetype.org

FreeType - это библиотека, используемая для разработки программного обеспечения, растеризации и работы со шрифтами, а также отображения шрифтов X11. Обладает открытым исходным кодом, поддерживает ряд форматов шрифтов, например TrueType, Type 1 и OpenType и другие.

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

Характеристики

В новой версии по-умолчанию используется алгоритм обработки инструкций TrueType v40, что позволяет добиться высокого качества субпиксельного сглаживания шрифтов (см. рисунок 1).[Источник 1].

Рисунок 1 - TrueType v40

Функции FreeType

FreeType представляет собой простой и удобный в использовании API, который предоставляет доступ к содержимому шрифта независимо от формата файла. Основан на модулях, используемых для поддержки определенных форматов шрифтов, которые могут быть статично связаны с библиотекой во время компиляции, или загружаться по требованию во время выполнения. FreeType не использует статические записываемые данные (это значит, что он может быть запущен из ПЗУ напрямую). Клиентские приложения могут предоставить свой собственный диспетчер памяти и реализацию потока ввода-вывода.

По умолчанию FreeType поддерживает следующие форматы шрифтов[Источник 2].:

  • Шрифты TrueType (TTF) и коллекции TrueType (TTC);
  • CFF шрифты;
  • Шрифты WOFF;
  • Шрифты OpenType (OTF, варианты TrueType и CFF) и коллекции OpenType (OTC);
  • Шрифты типа 1 (PFA и PFB);
  • CID-ключ шрифты типа 1;
  • Основанные на SFNT растровые шрифты, включая цветные эмодзи;
  • X11 PCF шрифты;
  • Шрифты Windows FNT;
  • Шрифты BDF (включая сглаженные);
  • PFR шрифты;
  • Тип 42 шрифта (ограниченная поддержка).

Программа способна создавать высококачественное монохромное растровое изображение, а также растровое изображение со сглаживанием, используя 256 уровней «серого».

Поддерживает все сопоставления символов. Способен самостоятельно создавать кодировку Unicode из шрифтов типа 1.

FreeType предоставляет доступ к расширенной информации, такой как имена глифов или базовые данные кернинга.

Библиотека легко совершенствуется благодаря её модульному дизайну, предоставляя дополнительную информацию через дополнительные API (например, предоставляется дополнительный API для извлечения таблиц SFNT из шрифтов TrueType и OpenType).

Обладает собственной системой кэширования.

Инструменты шрифта

  • TTX - ассемблер и дизассемблер OpenType;
  • FontForge - бесплатный мощный графический редактор шрифтов, включая отладчик инструкций TrueType (с использованием FreeType);
  • TrueTypeViewer - бесплатный мощный инструмент просмотра OpenType с отладчиком инструкций TrueType ( без использования FreeType);
  • Ttfautohint - инструмент для auto-hint шрифты TrueType, основанные на механизме автоматического хинтинга FreeType.

Дополнительные библиотеки

Дополнительные библиотеки устанавливаются, чтобы обеспечить сложную разметку текста (например для работы с функциями OpenType). Все они используют Unicode для кодирования шрифтов и текста.

  • Pango - библиотека макета, которая используется Gnome's GTK+;
  • ICU - библиотека макета, используется, например, в XeTeX;
  • HarfBuzz - библиотека, формирующая тексты.

Платформы

  • AIX - была добавлена ​​в версии 2.0.4;
  • Amiga - поддержка была добавлена ​​в версии 2.0.5;
  • BeOS - файлы для BeOS были добавлены в версии 2.0.3;
  • Atari - поддержка сборки на 16-битном Atari с использованием компилятора PureC была добавлена ​​в версии 2.1.8;
  • EPOC - поддержка была повторно добавлена ​​в версии 2.0.2.;
  • Symbian - поддержка была добавлена ​​в версии 2.3.6;
  • Windows - поддержка драйвера PFR с Visual C ++ была добавлена ​​в версии 2.1.2.

История

FreeType был разработан Дэвидом Тернером в 1996 году для визуализации шрифтов TrueType. Первоначально был написан на языке программирования Pascal, но в 1997 году Робертом Вильгельмом он был перенесен на язык C. Позже к проекту присоединился Вернер Лемберг.

Первая версия FreeType 1 поддерживала только формат шрифта TrueType, но она содержала расширение для поддержки функций текстового макета OpenType .

Major rewrite 2.0

FreeType 2 анонсировали в 1998 году и выпустили в 2000 году, за это время он был полностью переписан и структуру программы сделали модульной. Во FreeType 2 была представленна поддержка большего количества форматов шрифтов и усовершенствован исходный код, который стал проще и мощнее. Поскольку обработка текстового макета не была целью FreeType 2 его функциональность OpenType FreeType 1 была удалена в FreeType 2. В Pango используется очень развитая форма функциональности текстового макета OpenType FreeType 1. Проект HarfBuzz продолжает развивать эту функциональность с полным переписыванием, предлагаемым в качестве отдельной библиотеки с менее ограничительной лицензией, чем лицензия Pango.

Патентные конфликты

В 1999 году Apple Incorporated сообщила, что FreeType нарушает патенты, связанные с хинтингом шрифтов TrueType . После этого Freetype отключен по умолчанию или работает с патентными технологиями. Поэтому в некоторых проектах с открытым исходным кодом, таких как FreeBSD или Linux, FreeType был доступен с отключенной или ухудшенной функциональностью хинтинга шрифтов, чтобы избежать проблемы патентов на программное обеспечение, принадлежащих Apple Inc.

С мая 2010 года все конфликтующие патенты на программы, связанные с хинтингом шрифтов, истекли, что позволило использовать хинтер шрифтов TrueType FreeType в открытом коде. Многие из операционных систем, которые отключили рендерер, теперь дают пользователю возможность включить его. В Fedora freetype-freeworld был переведен из проприетарного репозитория yum в бесплатный репозиторий.

Пожертвование двигателя CFF

В 2013 году Adobe пожертвовала движок рендеринга CFF проекту FreeType, который интегрировал его и установил по умолчанию в версии 2.5.[Источник 3].

Пользователи

Пример продуктов, которые полностью или частично используют FreeType для отображения шрифтов на экране или на бумаге:

  • GNU / Linux, а также другие бесплатные операционные системы Unix являются производными от FreeBSD или NetBSD;
  • IOS для iPhone и iPad;
  • Android для смартфонов и планшетных компьютеров;
  • Google Chrome OS - операционная система Google для ноутбуков;
  • ReactOS - бесплатная операционная система с открытым исходным кодом;
  • Ghostscript - интерпретатор PostScript, используемый во многих принтерах.

Ссылки

  • Microsoft Typography - спецификация Microsoft OpenType и инструменты разработки.
  • Apple Fonts - спецификация Apple TrueType и другие вещи.
  • Adobe Typography - спецификации шрифтов PostScript и инструменты разработки.

Источники

  1. FreeType 2.7 / habr.com [2019-2019] // URL: https://habr.com/post/311462/ (дата обращения: 08.01.2019)
  2. Обзор FreeType / freetype.org [2019-2019] // URL: https://www.freetype.org/freetype2/docs/index.html#features (дата обращения: 08.01.2019)
  3. FreeType / En.Wikipedia [2019-2019] Дата обновления: 23.10.2018 г. // URL: https://en.wikipedia.org/wiki/FreeType (дата обращения: 08.01.2019)