Производительность SVGKit и должна ли она быть предпочтительнее PNG?
Я смотрю на SVGKit и нахожу противоречивые идеи. Некоторые говорят, что это медленнее, чем PNG, а другие говорят, что это быстро.
Я надеялся получить рекомендацию и какой маршрут мне выбрать. Когда я экспортирую векторную графику в формат PNG для отображения, не имеет ли смысл вместо этого использовать SVG?
Конечно, это дает дополнительную ценность, так как остается вектором.
Или все еще рекомендуется экспортировать все в PNG?
2 ответа
Вы можете рассмотреть промежуточный способ, введенный в Xcode 7. Здесь вы добавляете свои активы в проект в виде векторных изображений (PDF), и во время сборки Xcode автоматически генерирует PNG всех необходимых размеров (1x, 2x, 3x).
Лично я использую SVG только когда это необходимо, например, если мне нужно иметь возможность изменять цвет (части) изображения. Я полагаю, что при изменении размера векторных изображений во время выполнения может быть снижение производительности, хотя Android по умолчанию использует векторы, поэтому оно может быть незначительным.
SVG является наиболее ресурсоемким и может использоваться, если вам нужно отображать что-то, что можно увеличивать и уменьшать, тогда как PNG следует предпочитать для большинства графических элементов пользовательского интерфейса (логотипы, значки и т. Д.), Поскольку оно четкое, но остается легким и быстрым для отображать, поэтому нет никакого способа сравнить SVG с PNG с точки зрения производительности. Если вы хотите получить кристально чистые изображения, вы можете использовать графику в формате PDF, которая поддерживается XCode, используя векторные изображения в XCode.
если вам все еще нужно реализовать SVGKit, я всегда советую использовать некоторые инструменты (например, SVGCleaner
) очистить и упростить SVG для повышения производительности.