FreeType

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
FreeType
Логотип программы FreeType
Скриншот программы FreeType
Тип font rasterization[вд] и библиотека функций
Написана на Си[2]
Операционная система кроссплатформенность
Первый выпуск 1996
Последняя версия
Репозиторий gitlab.freedesktop.org/f…
Лицензия GNU GPL и BSD
Сайт freetype.org (англ.)
Логотип Викисклада Медиафайлы на Викискладе

FreeType, FreeType 2 — библиотека, которая используется для растеризации шрифтов и операций над ними. Механизм растеризации шрифтов - свободное программное обеспечение с открытым исходным кодом, на который распространяется двойная лицензия - BSD-подобная и GPL. FreeType поддерживает несколько форматов шрифтов, включая TrueType, Type 1 и OpenType.[1] В частности, используется для отображения шрифтов в X11[источник не указан 577 дней].

История создания

[править | править код]

Движок рендеринга FreeType был создан в 1995 году Дэвидом Тернером[3] с целью обеспечить поддержку шрифтов TrueType для операционной системы OS/2,[3] включая интерпретатор для работы с байткодом TrueType. Первоначально написанный на языке программирования Pascal, он был перенесен в 1997 году Робертом Вильгельмом на язык C.[4][5][6]

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

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

FreeType не содержит своего API для вызова функций обработки графики (например, рендеринг цветного текста). Однако, библиотека значительно упрощает операции обработки текстов, предоставляя простой интерфейс доступа к содержимому файлов шрифта[источник не указан 473 дня].

По состоянию на август 2010 года последняя версия библиотеки имела номер 2.4.2 и поддерживала следующие форматы шрифтов:

Субпиксельно визуализируются с помощью FreeType

Долгое время в FreeType была по умолчанию отключена поддержка правильного хинтинга TrueType-файлов через встроенный байт-код шрифта, поскольку данная технология попадала под патенты Apple[9]. Для обхода патентов сборки FreeType по умолчанию использовали незапатентованный алгоритм автохинтинга. В мае 2010 года срок патентов истек, и, начиная с версии 2.4.0, FreeType по умолчанию использует правильный хинтинг через интерпретатор байт-кода шрифта[10]. В 2013 году Adobe уступила движок рендеринга Compact Font Format проекту FreeType, который интегрировал его и сделал по умолчанию в версии 2.5.[11][12]

Использование

[править | править код]

FreeType используется в качестве рендерера шрифтов в Android, ChromeOS. Apple использует FreeType в iOS и macOS[13] наряду с Apple Advanced Typography. В 2007 году компания Sun Microsystems заменила собственный растеризатор на FreeType в наборе средств разработки OpenJDK Java. В Windows такие проекты, как gdipp[14] и MacType,[15] направлены на замену системного растеризатора ClearType. FreeType также используется в качестве рендерера шрифтов в ReactOS.[16]

Помимо использования в основных настольных системах со свободным программным обеспечением, библиотека применяется в качестве движка растеризации в некоторых современных видеоиграх,[17][18][19] и в Opera для Wii.[20] Sony поставляет FreeType с консолями PlayStation 3, PlayStation 4, и PlayStation Vita.[21]

В Fedora freetype-freeworld был переведен из проприетарного репозитория yum в свободное хранилище.

Авторы библиотеки: David Turner, Robert Wilhelm и Werner Lemberg.

Особенности

[править | править код]

Возможность доступа к информации об ограничениях встраивания и подстановки шрифтов была добавлена в 2.3.8.[22]

Намекающий

[править | править код]

В 2.3.0, добавлена поддержка применения специального фильтра к растровым изображениям, созданным с помощью «FT _ Render _ Glyph», если выбран один из FT_RENDER_MODE_LCD и FT_RENDER_MODE_LCD_V, в то время как LCD-оптимизированная визуализация была отключена во всех построениях библиотеки по умолчанию.[23] LCD-фильтр стал нормализованным и сбалансированным по цвету в 2.6.2.[24] Метод намека «Гармония», который воспроизводит результат субпиксельного намека ClearType с легким фильтром 3-tap без использования методов ClearType, стал методом субпиксельного намека по умолчанию в 2.8.1.[25]

Интерпретатор байт-кода TrueType был отключен в версии 2.0 Beta 8[26], а затем снова отключен в версии 2.0.2.[27] Интерпретатор байт-кода CreateType был исправлен для получения точно того же вывода, что и FreeType 1.x в 2.1.0.[28] Непатентованный намек стал[уточнить] по умолчанию в 2.3.0, возможность обнаружения запатентованных команд байт-кода и переключения непатентованных подсказок была добавлена в 2.3.5.[29]

Недостатки

[править | править код]

В Fedora из-за проблемных интерфейсов библиотеки FreeType прекратили отображение растровых (bitmap) шрифтов почти во всех графических приложениях.[30]

Примечания

[править | править код]
  1. [ft-announce Announcing FreeType 2.13.3]
  2. The freetype Open Source Project on Open Hub: Languages Page — 2006.
  3. 1 2 Interview with David Turner of Freetype – OSnews (амер. англ.). Дата обращения: 12 марта 2024. Архивировано 12 марта 2024 года.
  4. FreeType History. freetype.org. Дата обращения: 12 марта 2024. Архивировано 12 марта 2024 года.
  5. FreeType 2 FAQ. web.archive.org (18 июля 2009). Дата обращения: 12 марта 2024. Архивировано из оригинала 18 июля 2009 года.
  6. What are the differences between FreeType 1.x and FreeType 2 ? Experts123.com. Дата обращения: 4 апреля 2014. Архивировано 7 апреля 2014 года.
  7. FreeType FAQ. freetype.org. Дата обращения: 12 марта 2024. Архивировано 12 марта 2024 года.
  8. harfbuzz/harfbuzz. — 2024-03-11. Архивировано 13 марта 2024 года.
  9. FreeType and Patents (англ.) (2 июля 2007). Дата обращения: 8 августа 2010. Архивировано из оригинала 6 июля 2007 года.
  10. FreeType and Patents (англ.) (4 июля 2010). Дата обращения: 8 августа 2010. Архивировано из оригинала 15 февраля 2012 года.
  11. The Typekit Blog | Adobe contributes font rasterizer technology to FreeType. blog.typekit.com. Дата обращения: 12 марта 2024. Архивировано 17 сентября 2024 года.
  12. You've Got CFF! Google Open Source Blog. Дата обращения: 12 марта 2024. Архивировано 12 марта 2024 года.
  13. Проблемы безопасности, устраняемые в ОС OS X Lion 10.7.3 и обновлением системы безопасности 2012-001. Apple Support (9 июня 2015). Дата обращения: 12 марта 2024. Архивировано 12 марта 2024 года.
  14. gdipp. Дата обращения: 4 августа 2014. Архивировано 10 июня 2015 года.
  15. MacType. GitHub. Дата обращения: 12 сентября 2016. Архивировано 31 августа 2016 года.
  16. Royal, Simon ReactOS: A Windows Compatible Alternative OS. lowendmac.com (26 февраля 2014). — «While the main core of ReactOS is built from scratch, it has some dependencies on existing software and protocols. It uses parts of Wine, networking in the form of lwIP, USB from Haiku, as well as FreeType, Mesa3D, and UniATA.». Дата обращения: 10 января 2016. Архивировано 7 марта 2014 года.
  17. Games company Relic Entertainment has used FreeType for their games Dawn of War and Company of Heroes, as can be seen in the credits on the loading screens.
  18. FreeType has also been implemented in the American Girl games for the PC such as A Treehouse of My Own and Julie Saves The Eagles.
  19. Games company Bandai Namco Entertainment has also used FreeType for Ace Combat 7: Skies Unknown, as can be seen in the copyright section.
  20. Opera 9 for the Wii console uses FreeType, as can be seen by looking at the "Third-party information" page which can be found on the Wii via: Internet Channel > Operations Guide > About > Opera 9 for Wii — Third-party information
  21. Open Source Software used in PlayStation®Vita. Scei.co.jp. Дата обращения: 4 апреля 2014.
  22. [ft-announce] FreeType version 2.3.10 has been released. lists.nongnu.org. Дата обращения: 22 июня 2020. Архивировано 16 апреля 2021 года.
  23. [ft-announce] FreeType version 2.3.0 has been released. lists.nongnu.org. Дата обращения: 22 июня 2020. Архивировано 16 апреля 2021 года.
  24. [ft-announce] Announcing FreeType 2.6.2. lists.nongnu.org. Дата обращения: 22 июня 2020. Архивировано 16 апреля 2021 года.
  25. [ft-announce] Announcing FreeType 2.8.1. lists.gnu.org. Дата обращения: 22 июня 2020. Архивировано 16 ноября 2019 года.
  26. FreeType 2 Beta 8 Introduction. web.archive.org (28 октября 2000). Дата обращения: 22 июня 2020. Архивировано 28 октября 2000 года.
  27. SourceForge.net: File Release Notes and Changelog. web.archive.org (10 января 2003). Дата обращения: 22 июня 2020. Архивировано 10 января 2003 года.
  28. SourceForge.net: File Release Notes and Changelog. web.archive.org (19 октября 2002). Дата обращения: 22 июня 2020. Архивировано 19 октября 2002 года.
  29. [ft-announce] FreeType 2.3.5 has been released. lists.nongnu.org. Дата обращения: 22 июня 2020. Архивировано 16 апреля 2021 года.
  30. Разработчики Pango убрали поддержку растровых шрифтов. Дата обращения: 21 июня 2020. Архивировано 24 июня 2020 года.