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

Cod*_*k22 72 resolution image pixels ios

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

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

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

Sul*_*han 61

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

倍增

@3x或者@2x可以放大,@1x但通常视觉效果模糊,线条粗,看起来不太好.倍增@3x@2x甚至可能更糟,因为子像素必须使用.

降尺度

通常,结果比升级要好得多,但不适用于所有图像.如果图像1px上有边框@3x,则缩小到@1x边框后将无法看到(0.33像素).这同样适用于图像中的任何小物体.缩小规模会破坏所有细节.

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

  • @Muhammad 这不一定是真的。10x10 像素图像和 20x20 像素图像的大小差异不一定很大 - 几个字节,较大分辨率的图像甚至可以比更高分辨率的图像更小。请注意,压缩在 png 图像中起着重要作用。为每个资产添加 1x 变体可能会导致过度优化。 (2认同)

Sah*_*Roy 61

在图像资源中需要3种图像,因为在缩放或像素方面有3种Apple设备(iPhone和iPad)是

适用于1 pixel = 1 point@ 1x(较旧的iPhone和iPad设备)的普通设备

适用于4 pixels(2 x 2) = 1 point@ 2x(iPhone 4+)的Retina设备

Retina iPhone6和iPad适用于9 pixels (3 x 3) = 1 point@ 3x(iPhone6 +)

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

编辑

在此输入图像描述


Jul*_*ról 7

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

简而言之,它是减少内存/磁盘使用量,因此它只是提高性能和用户体验


Ste*_*fan 5

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