Комментарии 6
Еще можно Хромиумом растрировать, быстро и качественно, но проблема с размером.
Хм, спасибо за идею! Погуглил, и оказалось, действительно так часто делают, например https://github.com/canhlinh/svg2png
Просто какое-то время назад тоже была задача рендерить сложный наворочанный SVG во что-то растровое на Линуксе, и вменяемых библиотек, которые делали бы это без косяков, я так и нашёл. Если придётся к этой теме вернуться, попробую использовать такой подход с Хромом.
Ну и Chromium, наверное, образец «не самого компактного» ПО. Хотя его растеризация, конечно, хороша.
У вас противоречивые вещи написаны про скорость растеризации. Сначала в "Resvg vs QtSvg: начало" пишете
Практически сразу оказалось, что растеризация у пропатченной resvg по сравнению с QtSvg проходит в шесть раз быстрее.
А потом в "Эксперименты и сравнения / 4. Растеризация"
Первый эксперимент, где нас не впечатлили результаты resvg. По всем показателям она была медленнее QtSvg, иногда — на порядок.
Так быстрее или медленнее?
Сделано так было потому, что данные о производительности версии 0.11 были недостаточно хорошо организованы, и их было мало. Я попробую перепрогнать тесты на изначальной версией и поправить статью.
Библиотека действительно быстрая и радует кол-вом поддерживаемых спецификаций. Но в каких-то местах всё еще слегка сыроватая. Например, у меня не рендерит тестовый SVG файл в PNG шире чем примерно 8000px в ширину (высота всего около 200px).
7000px рендерит отлично, а вот 8000px уже пустая PNG-ха (не нулевой размер, а именно пустой canvas).
Хотя вы вряд ли столкнетесь с такими размерами для логотипов и иконок на карте.
Кроссплатформенная растеризация SVG — сравниваем библиотеки и экспериментируем