为什么我需要@ 1x,@ 2x和@ 3x iOS图像?

时间:2015-09-02 13:24:12

标签: ios image resolution pixels

为什么我们需要这3种特定的图像类型?

如果我的应用上有一个带有背景图像的按钮,例如50像素x 50像素,为什么我需要此图像的3个版本?什么阻止我制作一张高得多的图像,例如700x700,所以当它在任何iPhone上缩小时它不会低于设备所需的最大值?

我唯一能想到的是它占用了更多的空间,但对于简单的应用程序/一个简单的按钮,它似乎不会引起任何问题。我在一些设备上尝试过,当我模拟它并执行此方法时,它们之间没有区别。然而,当我更多地深入了解应用程序和内容时,我确信这种技术背后有实质内容。

6 个答案:

答案 0 :(得分:61)

在图像资源中需要3种图像,因为在缩放或像素方面

有3种Apple设备(iPhone和iPad)

1 pixel = 1 point @ 1x(较旧的iPhone和iPad设备)相关的普通设备

Retina设备的术语为4 pixels(2 x 2) = 1 point @ 2x(iPhone 4 +)

Retina iPhone6和iPad的术语为9 pixels (3 x 3) = 1 point @ 3x(iPhone6 +)

因此,为了在3个尺度上提供相同的图像,iOS决定显示哪些设备的图像。希望可以帮助您理解这一点。

修改

enter image description here

答案 1 :(得分:57)

如果您没有确切的尺寸,可能会发生两件事:

<强>倍增

@3x@2x可以从@1x升级,但通常视觉效果模糊,粗线条看起来不太好。来自@3x的升级版@2x可能会更糟糕,因为必须使用子像素。

<强>降尺度

通常,结果比升级要好得多,然而,这并不适用于所有图像。如果1px图片上有@3x边框,则在将其缩小到@1x后,边框将不可见(0.33像素)。这同样适用于图像中的任何小物体。缩小规模会破坏所有细节。

一般情况下 - 为了使图像看起来更完美,您需要避免缩小和放大。您始终只能使用@2x@3x图片,并且只有在看到视觉问题时才会添加其他比例。使用更高的分辨率不会改善缩小尺寸。高分辨率仅用于避免升级。从高级别(例如@100x)降级到@1x不会产生比@3x缩减更好的结果。

答案 2 :(得分:7)

这是因为如果你提供一个高分辨率的图形,那么用户就会浪费空间。设备。由于应用程序切片,设备将下载(从App Store)只有实际适合设备的部分(因此视网膜设备不会下载非视网膜图形)。这就是为什么Apple创建资产目录和遵循这种规则的原因。他们在会议中描述了这一点。

简而言之,就是减少内存/磁盘使用量,以便提高性能和用户体验

答案 3 :(得分:5)

首先,您需要了解点与像素的行为。在非视网膜设备上,点与像素比率 1point = 1pixel 。在视网膜设备上,有两个比率: 1点= 2x2 像素,取决于屏幕尺寸, 1点= 3x3 像素,因为像素密度,在非视网膜上观看四倍。这就是为什么你需要这3种类型的图像,以最高分辨率显示。

答案 4 :(得分:3)

补充Sulthan说的话:

因为您没有为特定设备提供适当的图像,所以它必须缩小或放大。这些过程耗尽您的记忆和处理,从而导致性能下降,具体取决于您一次执行的图片数量和图片大小。

答案 5 :(得分:2)

如果您只提供一张大图片,则会遇到几个问题:

  1. 缩小会导致质量下降(即使不是很大)
  2. 缩小图像所需的计算能力要比显示已经预渲染的图像
  3. 要多
  4. 您的二进制文件的大小会增加,并且您无法从iOS 9中引入的应用程序细化中受益。
  5. 正如您所看到的,只制作一张图片会影响您应用的性能和质量,并且会对那些使用较旧设备的用户产生不成比例的影响。这是因为:

    1. 他们需要缩减更多。此外,他们的设备的性能不如新设备的性能,所以他们更有可能注意到您的应用程序滞后
    2. 他们没有足够的存储空间,因此您真的希望能够使用应用程序细化来帮助他们
    3. 质量损失对他们来说是最高的,考虑到他们的设备分辨率低,他们会注意到它。
    4. 由于这个原因,用户可能会感到不快,这对你不利。因为根据我的经验,不满意的用户对应用评分的可能性是快乐用户的10倍。你不想那样,是吗? :)