【问题标题】:How important are non-retina images?非视网膜图像有多重要?
【发布时间】:2013-10-14 08:17:15
【问题描述】:

我正在为我的一个应用发布新的更新,但我很失望地看到它刚刚超过 20MB 的估计大小(20MB 是无法再通过单元数据下载它的点)。

我的应用包含很多图像,所以如果我没有所有这些非视网膜图像,我可以大大减小尺寸。我知道有一些非视网膜设备将运行我的应用程序。所以这是我的问题:

  • 如果我有一个带有@2x 后缀的图像但没有它没有非视网膜图像,非视网膜设备将如何反应。

  • 如果我使用没有 @2x 后缀的 Retina 大小的图像并将其缩小到我希望以编程方式和/或显示它的大小 通过界面生成器,它是否仍然保持完整的质量 视网膜设备?非视网膜设备上的质量会更差吗 比使用我使用 GIMP 从原始图像缩小的图像 代替?

【问题讨论】:

  • 您是否尝试过对 png 文件进行有损压缩?
  • 您是否尝试过 ImageOptim 从您的 PNG 中挤出最后几个字节? (并在 Xcode 中禁用重新优化 PNG)

标签: ios uiimage interface-builder retina-display


【解决方案1】:

如果我有一个带有@2x 后缀但没有非视网膜 i 的图像,非视网膜设备将如何反应 没有它的图像。

我在我的几个应用程序上使用了这种方法,它完美无缺。我无法在非视网膜显示设备(具体来说,iPad 1/2 和 mini)上检测到任何性能或视觉问题。

我不确定在较旧的 iOS 版本上会发生什么,因为我只在这些应用上支持 iOS5+。

如果我使用不带 @2x 后缀的 Retina 大小的图像并将其缩小到我希望以编程方式和/或通过界面生成器显示的大小,它是否仍能在 Retina 设备上保持完整的质量?在非视网膜设备上的质量是否会比使用我使用 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

【讨论】:

    【解决方案2】:

    好的。

    如果您只提供一张图片,那么您有两种可能性之一。

    1. 图像是非视网膜图像。这在非视网膜上看起来很好。它在视网膜设备上看起来是一样的。但在视网膜图像旁边看起来质量很差。

    2. 图像是视网膜图像。在视网膜设备上,它仍将作为视网膜图像加载。它看起来会很好。但是,在非视网膜设备上,它必须按比例缩小图像。这需要额外的 CPU 周期,因此可能会影响性能,并且看起来可能不像您想要的那样。它可能会使用与您想要的不同的方法缩小图像,因此可能会使图像看起来很奇怪。

    无论有无后缀都是一样的。

    最好的解决方案是创建视网膜图像,然后使用您选择的编辑器创建标准版本。没有什么可以阻止您只提供一张图片,但它可能会导致您不想要的外观和性能。

    附带说明。通过蜂窝数据下载的大小增加到 50MB。

    【讨论】:

      【解决方案3】:

      使用模拟器尝试这些事情并自己找出答案。

      我认为答案是,如果您依赖 [UIImage imageNamed:@"without2xSuffix.png"] 并且找不到任何东西,UIImage 将忽略 @2x 选项,但我还没有尝试过。故意请求@2x 文件会起作用,但是图像是否会被缩放、平铺、拉伸或居中(或其他)取决于它的使用位置。

      请注意,文档中说除非您使用不带 @2x 后缀的名称并让 iOS 为您找到 2x 版本,否则它将把图像的比例设置为 1.0 而不是 2.0,这会使绘图复杂化。您必须使用 imageWithData:scale: 加载图像才能解决此问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多