Вышел новый, значительный релиз библиотеки для растеризации SVG — resvg.
Galvenās izmaiņas:
- Полностью новая реализация отрисовки текста:
- Почти весь стек от символа до кривой Безье теперь реализован на Rust:
подбор шрифтов (font matching and fallback), парсинг TrueType, расстановка кластеров глифов по правилам SVG (SVG text layout).
Исключением является шейпинг (text shaping), для которого используется
HarfBuzz. - Текст теперь будет конвертироваться в кривые Бизъе до рендеринга.
То есть бекенд отрисовки теперь не обязан поддерживать текст. - Поддержка двунаправленного текста (BIDI reordering). Piemērs.
- Поддержка textPath. piemērs 1, 2. piemērs.
- Поддержка writing-mode (вертикальный текст). Piemērs.
- Корректная поддержка word-spacing и letter-spacing. Piemērs.
- Почти весь стек от символа до кривой Безье теперь реализован на Rust:
- Новый, экспериментальный бекенд — Raqote (отдельное спасибо jrmuizel).
Raqote — это графическая 2D библиотека, написанная на Rust.
Она находится в начальной стадии разработки, при этом её возможностей уже достаточно для
использования в resvg.
Основным её преимуществом является то, что resvg теперь можно собрать ровно с одной не Rust зависимостью — HarfBuzz. - Поддержка shape-rendering, text-rendering и image-rendering.
- Ускорена отрисовка растровых изображений.
- Общее количество тестов достигло 1112-х.
Количество успешно пройденных тестов у Inkscape и librsvg упало за 75%. - Daudzi nelieli labojumi un uzlabojumi.
Результаты тестирования. Сравнительная таблица.
Avots: linux.org.ru