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文件。
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图像:
-
做一个新的图像集。
-
select图像集中的空白图像插槽,并将属性检查器中的popup窗口切换为vector。 你现在有一个单一的通用图像插槽。
-
将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:
, atHeight
和atSize:
我使用UIImage+PDF
处理所有可以进行vector化处理的图像,并且只使用PNG图像。
我也通过类似http://smallpdf.com/compress-pdf的方式运行我的PDF文件,以确保最小的文件大小。;
埃里克
在您构build应用程序图标的情况下,PDF将不起作用。 你可能想看看我刚build立一个名为Speculid的项目。 它可以从源图像,包括SVG文件,build立PNG,PDF等。 反馈将不胜感激。