2016-09-27 200 views
1

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

+0

你的意思是向量化图像或将其嵌入到svg中? – n00dl3

+0

为什么要将其转换为SVG?该文件变得更大。质量不会增加。而UIImageView是为PNG和JPEG而构建的。 – Codo

+0

是的,我想要矢量化图像转换@ n00dl3 –

回答

4

shouldn't在Xcode中使用SVG图像:

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

此外,还有一个SVGKit,根据许多开发者是buggy您自己的风险所以用它。

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

一言以蔽之:

  1. 生成PDF随着@ 1X资产(在编译时就会产生@ 2和@ 3)
  2. 设置比例因子单矢量:

enter image description here

  • 拖放PDF进全,通用科
  • 请参阅您的图像由它的名字,就像其他任何PNG文件

    [UIImage imageNamed:@”Home”] 
    
  • 另外,计算器(也许)related答案

    +1

    这是一个非常糟糕的答案。 – Adam

    3

    要转换PNG至SVG(这是很明智的,你需要一个称为“示踪剂”的应用程序或库。它将追踪形状,渐变等轮廓,并将其转换为矢量表示。

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

    Inkscape(开源)内置了一个免费的跟踪程序 - 谷歌的“inkscape跟踪”教程如何使用它,并生成一个可以使用的.svg文件。这是一个手动过程。

    要使用这个应用程序,你需要找到iOS的跟踪库。 Inkscape使用的库都是开源的,所以你可以尝试将它们转换为iOS - 它们用C语言编写,所以它可能非常容易。