freetype

Свободная, высококачественная и переносимая библиотека для рендеринга шрифтов. Она поддерживает широкий спектр форматов шрифтов и предоставляет унифицированный интерфейс для работы с векторными и растровыми шрифтами. Библиотека широко используется в операционных системах, графических интерфейсах, играх и приложениях для обработки текста.

Особенности

  • поддержка множества форматов шрифтов (TrueType, OpenType, Type 1, CID, CFF, WOFF, SFNT и др.);
  • высококачественный рендеринг с субпиксельным сглаживанием и хинтингом;
  • кроссплатформенность (Windows, macOS, Linux, Android, iOS, встраиваемые системы);
  • модульная архитектура с возможностью настройки компонентов;
  • отсутствие зависимостей от сторонних библиотек;
  • лицензия FreeType (BSD-подобная), подходящая для коммерческого использования.

Основные компоненты

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

Загрузка и управление шрифтами

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

Основные функции управления шрифтами:

  • FT_Init_FreeType() — инициализация библиотеки;
  • FT_New_Face() — загрузка шрифта из файла или памяти;
  • FT_New_Memory_Face() — создание объекта шрифта из данных в памяти;
  • FT_Done_Face() — освобождение ресурсов шрифта;
  • FT_Done_FreeType() — деинициализация библиотеки;
  • FT_Attach_File() и FT_Attach_Stream() — присоединение дополнительных данных (например, метрик).

Работа с глифами и метриками

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

Функции для работы с глифами:

  • FT_Load_Glyph() — загрузка глифа по индексу или коду символа;
  • FT_Load_Char() — загрузка глифа по символу Unicode;
  • FT_Get_Glyph() — получение объекта глифа для дальнейшей обработки;
  • FT_Get_Kerning() — получение кернинга (межсимвольных расстояний);
  • FT_Get_Advance() — получение advance ширины глифа;
  • FT_Get_Char_Index() — преобразование кода символа в индекс глифа.

Рендеринг и растеризация

Библиотека предоставляет мощные средства для растеризации векторных глифов в растровые изображения с поддержкой различных режимов сглаживания и хинтинга.

Функции рендеринга:

  • FT_Render_Glyph() — растеризация глифа в монохромный или сглаженный bitmap;
  • FT_Glyph_To_Bitmap() — преобразование глифа в растровое изображение;
  • FT_Outline_* функции — работа с векторными контурами глифов;
  • Настройка хинтинга через FT_Load_Glyph с флагами FT_LOAD_*;
  • Субпиксельный рендеринг через FT_Library_SetLcdFilter.

Управление параметрами рендеринга

FreeType позволяет тонко настраивать параметры рендеринга для достижения оптимального качества отображения текста в различных условиях.

Настраиваемые параметры:

  • Размер и разрешение через FT_Set_Char_Size() и FT_Set_Pixel_Sizes();
  • Выбор модуля рендеринга (например, FT_RENDER_MODE_NORMAL, FT_RENDER_MODE_LCD);
  • Настройка хинтинга (autohint, native hinting, no hinting);
  • Целевое DPI для правильного масштабирования;
  • Параметры субпиксельного сглаживания.

Работа с расширенными возможностями шрифтов

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

Расширенные возможности:

  • Вариативные шрифты через FT_Get_MM_Var() и FT_Set_Var_Design_Coordinates();
  • Цветные шрифты (emoji, иконки) через FT_Palette_* API;
  • Поддержка OpenType features (лигатуры, альтернативные глифы);
  • Сложные системы письма (арабский, деванагари) через FT_Get_SubGlyph_Info;
  • Работа со шрифтовыми коллекциями (TTC, OTC).

Инструменты разработки и утилиты

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

Вспомогательные инструменты:

  • ftview — утилита для просмотра глифов шрифтов;
  • ftdump — анализ структуры файлов шрифтов;
  • ftbench — бенчмарк производительности рендеринга;
  • ftvalid — валидация файлов шрифтов;
  • ttdebug — отладка TrueType/OpenType шрифтов.

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

Документация по использованию Conan-пакетов для разработки приложений для ОС Аврора.

На сервере Conan библиотеки заранее собраны и размещены под различные версии ОС Аврора 4 и ОC Аврора 5. Для данных версий представлены архитектуры armv7hl, aarch64 и x84_64.

Библиотеку можно использовать в проекте с помощью данного conanfile.py

from conan import ConanFile

class Application(ConanFile):
    settings = "os", "compiler", "arch", "build_type"
    generators = "PkgConfigDeps"

    requires = (
        "freetype/2.12.1@aurora",
    )    

Процесс локальной сборки описан в документации.

freetype

FreeType is a freely available software library to render fonts.
Лицензия
FTL
Версия
Домашняя страница
Скачать
armv7
578.93 Kb
MD5: 81b959fae8a92edef6e594f7a4b3d566
Updated: 03.09.2025, 18:16:13
x86_64
645.92 Kb
MD5: 5e0a3044e231ab20f2e919679b5aad43
Updated: 03.09.2025, 18:16:16
armv8
638.89 Kb
MD5: eee9b9b20f1a6ddd2b4ad3d3c0bbc419
Updated: 03.09.2025, 18:16:03
Использование в проекте

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.