我喜欢将 .jpg 或 .png 文件转换为可以在 UIImageView 中显示的 .svg 格式。有没有办法在 Objective-C 中做到这一点?
2 回答
你不应该在 Xcode 中使用 SVG 图像:
建议您对应用程序中的大多数图像使用 PNG 或 JPEG 文件。图像对象针对读取和显示这两种格式进行了优化,并且这些格式提供了比大多数其他图像格式更好的性能。因为 PNG 格式是无损的,所以特别推荐您在应用程序界面中使用的图像。
此外,根据许多开发人员的说法,有一个SVGKit是错误的,因此使用它需要您自担风险。
SVG 是基于 XML 的矢量,在 Xcode 中您也可以使用矢量,但使用 PDF 格式并遵循本教程。
简而言之:
- 使用 @1x 资源生成 PDF(在编译期间它将生成 @2 和 @3)
- 将比例因子设置为单向量:
- 将您的 PDF 拖放到所有通用部分
按名称引用您的图像,就像任何 PNG 文件一样
[UIImage imageNamed:@”Home”]
另外,stackoverflow(也许)相关的答案
要将 PNG 转换为 SVG(这是非常明智和有效的做法),您需要一个名为“跟踪器”的应用程序或库。它将跟踪形状、渐变等的轮廓,并将它们转换为矢量表示。
对于简单的情况,这对计算机来说很容易;对于复杂的情况(例如梯度),这是一个非常困难的 AI / 计算机视觉问题,您需要在高端编码解决方案上花费 $$$ 和/或找到解决问题的博士级研究!
Inkscape(开源)内置了一个做得非常好的免费跟踪器 - 谷歌“inkscape trace”获取有关如何使用它的教程,并生成一个您可以使用的 .svg 文件。这是一个手动过程。
要在应用内使用此应用程序,您需要找到适用于 iOS 的跟踪库。Inkscape 使用的库都是开源的,因此您可以尝试将它们转换为 iOS - 它们是用 C 编写的,因此非常容易。