Xcode 6允许VECTOR图像资产…任何想法如何使用它们?

当我注意到一些非常有趣的东西时,我正在摆弄Xcode 6与图像资源:我们现在可以在其中指定vector图像(selectImages.xcassets后,请参阅“实用工具”窗格)。

我尝试了一个小的应用程序(包含一个大的UIImageView)与.SVG图像(没有工作),然后一个.EPS(也没有工作),我终于尝试了一个.PDF它的工作! 那么,虽然我看到了这个图像,但它出现了像素化而没有vector化。

所以看来苹果正在为vector图标/图像做准备。 没有更多的无数版本的应用程序图标,没有更多的“@ 2X”图像。 但任何人都可以解锁该function?

感谢您的尝试。

以下是关于vector资产的一些实验后的一些想法:

1.编译时间支持

经过几次试验,我相信这只是一个编译时间的支持。 Xcode在编译时生成所有的1x,2x和3x图像。 这意味着它适用于较旧的iOS版本。 同时,这意味着在最终版本中,它仍然是PNG格式,不能从vector文件中获得更大的无损图像。

2.为什么selectPDF而不是SVG或其他格式

对于SVG和其他格式,vector图像没有实际尺寸信息,而PDF有尺寸信息。 我认为Xcode 6所做的是使用PDF中的大小信息作为实际的显示大小,然后从vector图像生成2x 3x文件。

PDF中的大小信息

3. PDF的文件大小无关紧要

刚开始的时候,我们担心的是PDF会比PNG大得多。 我们尝试http://smallpdf.com/来压缩它,它工作得很好。; 但是,如果原来的PDF文件不包含在构build中,那么PDF的文件大小并不重要。

如果我find其他东西,将继续编辑这个post。

编辑14-09-25

@mredig提到,对于iOS,它在编译时生成位图,但对于OSX,它包含可缩放forms的vector图像。

通过: http : //martiancraft.com/blog/2014/09/vector-images-xcode6/

以下是如何在Xcode 6的资产目录中尝试使用vector图像:

  1. 做一个新的图像集。

  2. select图像集中的空白图像插槽,并将属性检查器中的popup窗口切换为vector。 你现在有一个单一的通用图像插槽。

  3. 将vectorPDF拖放到该插槽中。

现在,无论使用哪个图像,都会根据其上下文(例如,固定大小的图像视图)resize,而不进行光栅化处理,如下图所示:

在这里输入图像描述

编辑尽pipe这个答案,较大的PDF图纸光栅化。 但现在,请参阅https://stackoverflow.com/a/45623000/341994 :在Xcode 9中,vectorPDF可以正确缩放,而无需栅格化。

你可以使用这个在线工具将您的图像从svg转换为pdf

http://www.fileformat.info/convert/image/svg2pdf.htm

1-上传图片

2-select宽度:24px,高度:24px

3-复制到您的Xcode项目

4-转到Images.xcassets

5-右击并创build新的图像集

6-从右侧面板中select(属性检查器)

7-改变types向量

8-拖放您的PDF图像在那里

9-在你的项目中使用它

一个技巧 – 创buildPDF @ 2x分辨率和文件名@ 2x(myfile@2x.pdf)这样做,你会得到完美的锐化和对比度的图像,特别是iPad 2和迷你。 在这里输入图像描述

我只是创build一个自定义字体与说,图标,甚至应用程序标志,并使用它,并将其拉入我的应用程序。 然后,我可以很容易地调整设备和屏幕分辨率的字体大小。

如果你正在寻找一个问题的答案: “我如何在我的iOS应用程序中使用vectorgraphics,并始终以美丽的完美程度来衡量它们? ,那么我可以从https://github.com/mindbrix/UIImage-PDF强烈推荐;UIImage+PDF

我觉得这个作品绝对出色。 而不是所有的图像在三种不同的分辨率的PNG格式,我现在有一个微小的每个图像的PDF文件。 我可以显示如下:

 // Objective C: self.icon.image = [UIImage imageWithPDFNamed:@"icon.pdf" fitSize:self.icon.frame.size]; // Swift: icon.setImage(UIImage(PDFNamed: "icon.pdf", fitSize: icon.frame.size)) 

除了fitSize:还有atWidth:atHeightatSize:

我使用UIImage+PDF处理所有可以进行vector化处理的图像,并且只使用PNG图像。

我也通过类似http://smallpdf.com/compress-pdf的方式运行我的PDF文件,以确保最小的文件大小。;

埃里克

在您构build应用程序图标的情况下,PDF将不起作用。 你可能想看看我刚build立一个名为Speculid的项目。 它可以从源图像,包括SVG文件,build立PNG,PDF等。 反馈将不胜感激。