使用iPhone 5的新屏幕分辨率和高宽比,在处理全屏(或大部分是全屏)图像时,似乎有两种方法可以利用新的屏幕不动产:
(还有其他方法:拉伸、打瓷砖和/或用石英作画。)
这两种选择都有缺点:
我特别有兴趣更好地了解第二个缺点的细节。
我在想,如果我能进一步利用这个合并图像的想法,它会节省应用程序包(和我的设计师).
假设我有一个图像,在肖像中占320点x 480点,在风景中占480点x 320点(宽度x高度)。
(编辑:最初我没有考虑过其他一些重要的消息。为了完整起见,我在这里包含了这些想法)
如果我们创建一个480 it x 480 it分辨率的图像文件,而不是横向和纵向文件,这将防止应用程序包有两个文件,每个文件包含320 ptx320pt区域的重复图像数据。然而,这个大的正方形图像将包括四个在角落里看不到的四个80x80pt象限。在所有条件相同的情况下,我们仍然应该有20%的图像数据在应用程序包。
重读了Bill的"iBooks作者实验“之后,很容易理解内存需求:
640 * 960 * 4 = 2,457,600960 * 960 * 4 = 3,686,400加载大方格所需的内存比正确加载屏幕大小的图像多50%。显然,应用程序包中的节省并不足以满足对资源的这一打击!
但是,将其扩展到一个包含iPhone 5和iPhone 4-568 But x 568 But的巨大广场如何?而不是四个文件(iP4景观,iP4肖像,iP5景观,iP5肖像),只有一个文件在应用程序包(巨大的广场)。可节省约60%。
资源受损的情况如何?
1136 * 640 * 4 = 2,908,1601136 * 1136 * 4 = 5,161,984iPhone 4的内存增加了110%,iPhone 5的内存增加了77.5%。
我最初的问题大概有两个部分: 1.我是否正确地理解了这一点;2.这种权衡是明智的吗?
我希望我的编辑(在比尔的回答下)表明我现在确实理解了这些东西。而且,如果新发现的知识是正确的,那么2号答案本身就差不多了。:-)
发布于 2012-10-14 05:06:02
一般你都明白。
假设你有一个很大的方形图像,它是一种平铺图案(亚麻布等),那么你可以使用ImageIO按你需要的大小加载裁剪的图像,这将使用一些额外的内存,解压缩图像,但一旦完成,它只会消耗填充背景所需的东西。
我建议不要缩放图像。
但另一方面,发布一个包含3个图片(foo、foo@2x和foo-h568@2x)的应用程序(而不是1)更有意义。我要说的唯一方法是,如果您接近3G/LTE下载大小(我认为)50 go,那么您应该使用一张图片。
https://stackoverflow.com/questions/12876969
复制相似问题