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

Вышел новый, значительный релиз библиотеки для растеризации 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

Добавить комментарий