Предоставление SVG со встроенными закодированными PNG изображениями Base64 с использованием SVGKit занимает значительную память

Я использую SVGKit для рендеринга SVG, который содержит много встроенных в него изображений PNG с кодировкой Base64. Проблема заключается в том, что рендеринг занимает около минуты, что ужасно замедляет мое приложение и использует большой объем памяти. Общий размер SVG составляет 10 МБ, а при использовании используемой памяти около 80-85 МБ. Есть ли способ пройти через нее?

Я попытался кэшировать, но проблемы с памятью все еще возникают.

ios,objective-c,svgkit,

1

Ответов: 1


1 принят

PNG - это сжатый формат файла - при его отображении гарантированно будет использовать больше памяти. Это фундаментальный предел PNG; если вы хотите уменьшить использование памяти, прекратите использование PNG и вместо этого включите только векторную графику в свой SVG.

Кроме того, Apple обычно хранит дополнительную информацию для каждого PNG для оптимизации скорости рендеринга.

(SVGKit также может хранить дополнительную информацию по той же причине: увеличить скорость рендеринга. Но сначала вы должны узнать, насколько велики PNG в памяти)

ИОС, Objective-C, svgkit,
Похожие вопросы