Как стать автором
Обновить

Кроссплатформенная растеризация SVG — сравниваем библиотеки и экспериментируем

Время на прочтение 6 мин
Количество просмотров 3.2K
Всего голосов 24: ↑24 и ↓0 +24
Комментарии 6

Комментарии 6

Еще можно Хромиумом растрировать, быстро и качественно, но проблема с размером.

Хм, спасибо за идею! Погуглил, и оказалось, действительно так часто делают, например https://github.com/canhlinh/svg2png

Просто какое-то время назад тоже была задача рендерить сложный наворочанный SVG во что-то растровое на Линуксе, и вменяемых библиотек, которые делали бы это без косяков, я так и нашёл. Если придётся к этой теме вернуться, попробую использовать такой подход с Хромом.

А его точно можно встроить в мобильное приложение?
Ну и Chromium, наверное, образец «не самого компактного» ПО. Хотя его растеризация, конечно, хороша.

У вас противоречивые вещи написаны про скорость растеризации. Сначала в "Resvg vs QtSvg: начало" пишете

Практически сразу оказалось, что растеризация у пропатченной resvg по сравнению с QtSvg проходит в шесть раз быстрее.

А потом в "Эксперименты и сравнения / 4. Растеризация"

Первый эксперимент, где нас не впечатлили результаты resvg. По всем показателям она была медленнее QtSvg, иногда — на порядок.

Так быстрее или медленнее?

В экспериментальную часть статьи попали тайминги и картинки, сделанные новой версией resvg (0.12), а она медленнее, чем 0.11, которая и рассматривалась изначально как кандидатура для интеграции.
Сделано так было потому, что данные о производительности версии 0.11 были недостаточно хорошо организованы, и их было мало. Я попробую перепрогнать тесты на изначальной версией и поправить статью.

Библиотека действительно быстрая и радует кол-вом поддерживаемых спецификаций. Но в каких-то местах всё еще слегка сыроватая. Например, у меня не рендерит тестовый SVG файл в PNG шире чем примерно 8000px в ширину (высота всего около 200px).
7000px рендерит отлично, а вот 8000px уже пустая PNG-ха (не нулевой размер, а именно пустой canvas).

Хотя вы вряд ли столкнетесь с такими размерами для логотипов и иконок на карте.

Зарегистрируйтесь на Хабре , чтобы оставить комментарий