resvg 0.7 — библиотека отрисовки SVG

good-penguin.png

Вышел новый, значительный релиз библиотеки для растеризации SVG — resvg.

Основные изменения:

  • Полностью новая реализация отрисовки текста:
    • Почти весь стек от символа до кривой Безье теперь реализован на Rust: подбор шрифтов (font matching and fallback), парсинг TrueType, расстановка кластеров глифов по правилам SVG (SVG text layout). Исключением является шейпинг (text shaping), для которого используется HarfBuzz.
    • Текст теперь будет конвертироваться в кривые Бизъе до рендеринга. То есть бекенд отрисовки теперь не обязан поддерживать текст.
    • Поддержка двунаправленного текста (BIDI reordering). Пример.
    • Поддержка textPath. Пример 1, пример 2.
    • Поддержка writing-mode (вертикальный текст). Пример.
    • Корректная поддержка word-spacing и letter-spacing. Пример.
  • Новый, экспериментальный бекенд — Raqote (отдельное спасибо jrmuizel). Raqote — это графическая 2D библиотека, написанная на Rust. Она находится в начальной стадии разработки, при этом её возможностей уже достаточно для использования в resvg. Основным её преимуществом является то, что resvg теперь можно собрать ровно с одной не Rust зависимостью — HarfBuzz.
  • Поддержка shape-rendering, text-rendering и image-rendering.
  • Ускорена отрисовка растровых изображений.
  • Общее количество тестов достигло 1112-х. Количество успешно пройденных тестов у Inkscape и librsvg упало за 75%.
  • Множество мелких исправлений и улучшений.

Результаты тестирования. Сравнительная таблица.

>>> Репозиторий

©  Linux.org.ru