Ответ 1
Не ответ, но он не будет читаться в комментариях
PNG - растровые изображения
Итак, для рендеринга их нужно просто распаковать, которым нужна мощность процессора, но теперь это не так уж плохо.
SVG - векторные XML файлы
Это означает, что вам нужно:
- прочитайте текст XML
- декодировать его на векторный графический движок/класс
- Изображение в векторной графике
Сложный SVG ( > 300 Мб векторный utf-8) имеет время загрузки/декодирования/рендеринга даже в минутах на быстрых машинах (при декодировании всего). Если вы декодируете только основы, вы можете сделать то же самое в секундах, но потеряли дополнительные функции.
Многие не согласятся с этим: "Проблема в том, что нет ни одной 100% -ной совместимости, простой для реализации SVG-библиотеки... по крайней мере, что я знаю", но учтите, что я не использую фреймворки или среды для WEB JAVA или PHP... Также у каждой SVG-библиотеки есть свои собственные причуды. Если вы сравниваете отображаемый SVG между различными веб-браузерами или зрителями изображений, то это не одно и то же, и многие функции не поддерживаются повсюду.
Вы можете создать собственный декодер SVG, но он немного сложный. Если вам нужны только базовые функции, такие как path
и фигуры без анимаций или градиентов, то это относительно легко сделать, но если вы хотите реализовать все, что бы вы потратили на это много времени.
На какое-то время у меня возникла большая проблема с поиском хорошего бесплатного редактора SVG. Единственный "полезный", который я нашел, был Inkspace, но он медленный и немного недружелюбный по моему вкусу. С другой стороны, он может открывать практически все типы SVG, которые я использую правильно...
[Примечание]
Если вы хотите использовать SVG для значков, я настоятельно рекомендую их растрировать в начале приложения, а затем использовать только растровые изображения, такие как растровые изображения из памяти, чтобы избежать проблем с производительностью.