2016-09-27 165 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語言編寫,所以它可能非常容易。