我正在发布我的某个应用程序的新更新,我很失望地看到它只是超过20MB的估计大小(20MB是无法再通过单元格数据下载的点)。
我的应用程序包含大量图像,因此如果我没有所有非视网膜图像,我可以大大减小尺寸。我知道有一些非视网膜设备将运行我的应用程序。所以这是我的问题:
如果我的图像带有@ 2x后缀但没有非视网膜图像,非视网膜设备会如何反应。
如果我使用没有@ 2x后缀的视网膜尺寸图像并将其缩小到我希望以编程方式显示的尺寸和/或 通过界面构建器,它仍将保持完整的质量 视网膜设备?非视网膜设备的质量会更差吗? 而不是使用我使用GIMP缩小原始图像的图像 代替
答案 0 :(得分:0)
行。
如果您只提供一张图片,那么您有两种可能性之一。
图像是非视网膜图像。这对非视网膜看起来很好。它在视网膜设备上看起来相同。但在视网膜图像旁看起来质量很差。
图像是视网膜图像。在视网膜设备上,它仍将作为视网膜图像加载。看起来不错。然而,在非视网膜设备上,它必须缩小图像。这需要额外的CPU周期,因此可能会影响性能,并且可能看起来不像您想要的那样。它可能会使用与您想要的方法不同的方法缩小图像,因此可能会使图像看起来很奇怪。
无论有没有后缀,都是一样的。
最佳解决方案是创建视网膜图像,然后使用您选择的编辑器创建标准版本。没有什么能阻止你只提供一个图像,但它可能会导致你不想要的外观和性能。
旁注。通过蜂窝数据下载的大小增加到50MB。
答案 1 :(得分:0)
使用模拟器尝试这些事情并自行查找。
我认为答案是如果你依赖[UIImage imageNamed:@"without2xSuffix.png"]
而没有找到任何东西,UIImage会忽略@ 2x的选择,但我没有尝试过。故意要求@ 2x文件可以正常工作,但是图像是否会被缩放,平铺,拉伸或居中(或其他东西)取决于它的使用位置。
请注意,文档说除非您使用不带@ 2x后缀的名称并让iOS为您找到2x版本,否则它会将图像的比例设置为1.0而不是2.0,这会使绘图变得复杂。您必须使用imageWithData:scale:
加载图片才能解决此问题。
答案 2 :(得分:0)
如果我有一个带有@ 2x后缀但没有非视网膜的图像,非视网膜设备将如何反应 没有它的图像。
我在我的几个应用程序中使用这种方法,它完美无瑕。我无法在非视网膜显示设备上检测到任何性能或视觉问题(具体来说,iPad 1/2和mini)。
我不确定旧iOS版本会发生什么,因为我只在这些应用上支持iOS5 +。
如果我使用没有@ 2x后缀的视网膜尺寸图像并将其缩小到我希望以编程方式和/或通过界面构建器显示的尺寸,它是否仍然可以在视网膜设备上保持完整质量?非视网膜设备的质量会比使用GIMP从原版缩小的图像更差吗?
这取决于在进行缩放时如何设置插值选项。 See this other question for more details on how interpolation quality affects scaling down an image.在GIMP或Photoshop中,您还可以控制用于缩放的插值,顺便说一句。
但最后我认为你不需要这样做。
最重要的是,带宽limit has been raised to 50MB。