SVGKit 的性能,它应该优于 PNG 吗?

SVGKit performance and should it be preferred over PNG?

我一直在研究 SVGKit,但我发现了相互矛盾的想法。有人说它比 PNG 慢,也有人说它快。

我希望得到推荐以及我应该走哪条路线。当我将矢量图形导出为 PNG 以供显示时,使用 SVG 代替没有意义吗?

当然,这提供了它仍然是矢量的附加值。

还是建议将所有内容导出为 PNG?

您可能会考虑在 Xcode 7 中引入的中间方法。在这里,您将资产作为矢量图像 (PDF) 添加到项目中,并在构建时 Xcode 自动生成 PNG所有需要的尺寸(1x、2x、3x)。

就个人而言,我只在必要时才使用 SVG,比如我需要能够更改图像(部分)的颜色。我相信在 运行 时调整矢量图像大小时可能会影响性能,尽管 Android 默认使用矢量,所以它可能微不足道。

SVG 是最耗费资源的,如果您需要显示可以放大和缩小的内容,则可以使用 SVG,而大多数 UI 图形(徽标、图标等)应该首选 PNG,因为它清晰但仍然轻巧且显示速度快,因此在性能方面无法比较 SVG 和 PNG。 如果您想要 Crystal 清晰的图像,您可以使用基于 pdf 的图形,Xcode 使用 Vector Images in Xcode

支持这些图形

如果您仍然需要实现 SVGKit,我总是建议您使用一些工具(例如 SVGCleaner)来清理和简化 SVG 以提高性能。