2013-12-09 35 views
1

我发现了一个将SVG图像直接转换成代码的程序。听起来像是iOS应用程序大小问题的史诗般的解决方案,但这里出现一些障碍。 将复杂图像绘制成4k +的硬核代码行。其大约100 kB的纯文件大小几乎等于初始PNG图像大小。iOS代码图和png

所以这个问题 - 是否有任何点(总应用程序大小增益)绘制这样的图像从代码或更好地包括工程中的EM作为正常的PNG?代码大小和二进制大小之间的比例是多少?或者我怎么计算它?

+1

我认为性能考虑更重要。 drawRect使用绘图的软件代码,与由GPU处理的UIKIt Image相比效率较低。 –

+0

Kunal,正如我测试的那样 - 从代码绘制比纯图像插入要快。首先,你需要从捆绑中获取图像。 即使在商业应用中,快速渲染也不急于 - 0.02秒或0.002--并不太重要。 – Mehdzor

+0

我不知道你是如何得出这个结论的。你不能只比较两个函数并根据这个函数得出结论。您的drawRect运行在您希望效率更高的主线程上。 http://stackoverflow.com/questions/14659563/to-drawrect-or-not-to-drawrect-when-should-one-use-drawrect-core-graphics-vs-su –

回答

0

经过多次研究,我发现UIBezierPath解决了我的问题相当不错。 是的,UIBezierPath只是基于CPU的CoreGraphics的一个包装,但正如Apple所建议的那样 - 为您的目的使用最高级别的抽象,并让系统完成工作。

使用UIBezierPath绘制矢量图像的性能对于任何2D界面元素都足够高。 正如我所测试的 - 即使对于最难拍摄的图像,视网膜显示的速度因素也是45-50 fps,这对于原始UI动画已经足够了。

所以判决是 - 使用代码绘制您的界面可以节省内存和神经。