2

我喜欢将 .jpg 或 .png 文件转换为可以在 UIImageView 中显示的 .svg 格式。有没有办法在 Objective-C 中做到这一点?

4

2 回答 2

5

不应该在 Xcode 中使用 SVG 图像:

建议您对应用程序中的大多数图像使用 PNG 或 JPEG 文件。图像对象针对读取和显示这两种格式进行了优化,并且这些格式提供了比大多数其他图像格式更好的性能。因为 PNG 格式是无损的,所以特别推荐您在应用程序界面中使用的图像。

此外,根据许多开发人员的说法,有一个SVGKit是错误的,因此使用它需要您自担风险。

SVG 是基于 XML 的矢量,在 Xcode 中您也可以使用矢量,但使用 PDF 格式并遵循教程。

简而言之:

  1. 使用 @1x​​ 资源生成 PDF(在编译期间它将生成 @2 和 @3)
  2. 将比例因子设置为单向量:

在此处输入图像描述

  1. 将您的 PDF 拖放到所有通用部分
  2. 按名称引用您的图像,就像任何 PNG 文件一样

    [UIImage imageNamed:@”Home”]
    

另外,stackoverflow(也许)相关的答案

于 2016-09-27T11:10:10.917 回答
3

要将 PNG 转换为 SVG(这是非常明智和有效的做法),您需要一个名为“跟踪器”的应用程序或库。它将跟踪形状、渐变等的轮廓,并将它们转换为矢量表示。

对于简单的情况,这对计算机来说很容易;对于复杂的情况(例如梯度),这是一个非常困难的 AI / 计算机视觉问题,您需要在高端编码解决方案上花费 $$$ 和/或找到解决问题的博士级研究!

Inkscape(开源)内置了一个做得非常好的免费跟踪器 - 谷歌“inkscape trace”获取有关如何使用它的教程,并生成一个您可以使用的 .svg 文件。这是一个手动过程。

要在应用内使用此应用程序,您需要找到适用于 iOS 的跟踪库。Inkscape 使用的库都是开源的,因此您可以尝试将它们转换为 iOS - 它们是用 C 编写的,因此非常容易。

于 2016-10-13T14:19:48.713 回答