Вийшов новий, значний реліз бібліотеки для розтеризації SVG resvg.
Основні зміни:
- Повністю нова реалізація відтворення тексту:
- Майже весь стек від символу до кривої Безьє тепер реалізований на Rust:
підбір шрифтів (font matching and fallback), парсинг TrueType, розміщення кластерів гліфів за правилами SVG (SVG text layout).
Винятком є шейпінг (text shaping), для якого використовується
HarfBuzz. - Текст тепер конвертуватиметься в криві Біз'є до рендерингу.
Тобто бекенд малювання тепер не повинен підтримувати текст. - Підтримка двонаправленого тексту (BIDI reordering). Приклад.
- Підтримка текстуPath. Приклад 1, приклад 2.
- Підтримка writing-mode (вертикальний текст). Приклад.
- Коректна підтримка word-spacing та letter-spacing. Приклад.
- Майже весь стек від символу до кривої Безьє тепер реалізований на Rust:
- Новий, експериментальний бекенд Raqote (окрема подяка jrmuizel).
Raqote – це графічна 2D бібліотека, написана на Rust.
Вона перебуває у початковій стадії розробки, у своїй її можливостей вже достатньо для
використання у resvg.
Основною її перевагою є те, що resvg тепер можна зібрати рівно з однією не Rust залежністю - HarfBuzz. - Підтримка shape-rendering, text-rendering та image-rendering.
- Прискорено відтворення растрових зображень.
- Загальна кількість тестів досягла 1112-х.
Кількість успішно пройдених тестів Inkscape і librsvg впала за 75%. - Безліч дрібних виправлень та покращень.
Результати тестування. Порівняльна таблиця.
Джерело: linux.org.ru