众所周知,iOS开发中的图片资源一般需要2倍图和3倍图,也就是2x,3x,但是最近思考了一个问题,为什么不能只提供3x的图片,2x的图片让系统从3x压缩就好了,于是上网搜索了下,得到了答案。

当我们在2x的手机上只用3x的图的时候,系统会将图片相应地压缩,压缩的过程会消耗CPU或者GPU的资源,当图片非常多的时候,系统会对每张3x的图都会压缩,这样在渲染图片的时候会消耗很多额外的CPU或GPU时间,一般来说2x的手机比3x的手机性能要差(例如iPhone6会比iPhone 6 Plus性能差一些),所以如果只用3x的图的话,就会导致性能本来就差一些的2x手机还要花费一部分资源去压缩3x的图片,进一步导致app的性能变差,而性能好的3x手机反而不需要去耗费额外的性能去压缩图片。所以提供2x图的目的在于节省CPU资源,提高APP性能,同时也能相应地减少耗电量。当然如果app中图片很少的话也可以只提供3x的图,但是如果app中需要渲染的图片很多的话还是需要2x和3x的图。另外如果图片资源是从网上获取的,为了方便一些也可以只提供3x的图。

https://stackoverflow.com/questions/26843254/is-it-sufficient-to-supply-3x-image-only-for-all-versions-on-iphone

05-11 13:18