视网膜显示应用程序的@ 2x有什么意义?

我知道Retina显示器的像素数量是非视网膜显示器的两倍,但使用@ 2x版本和拍摄和获取512 x 512图像并通过帧的大小来限制它们有什么区别?

澄清:

如果我有一个72×72的button正确的方式来显示在iPhone上是有一个

image.png = 72×72

image@2x.png = 144 x 144 <—修正:) TY

但为什么不使用1图像:

image.png = 512×512

并做这样的事情:

UIImageView *myImage = [[UIImageView alloc] init ]; [myImage setImage:[UIImage imageNamed:@"image.png"]]; [myImage setFrame:CGRectMake(50, 50, 72, 72)]; 

我相信有一个很好的理由,我只是不知道它是什么,其他可能是一个较小的应用程序文件大小?

感谢您的教育!

有几个很好的理由来正确调整图像大小,但主要的原因是图像清晰度:当调整图像大小时,最终会出现使图像看起来浑浊或像素化的工件。 通过以正确的大小创build图像,您将确切知道最终用户将在他或她的屏幕上看到的内容。

另一个原因是简单地减less二进制文件的整体文件大小:一个16×16的图标比512×512图像占用的字节数量less。

如果您需要第三个原因:[UIImage imageWithName:@“xxxx”]等便捷方法会生成实际大小的图像,通常不需要额外的框架/边界代码。 如果你知道尺寸,你可以节省很多头痛。

因为resize时可能无法正确显示图像。 也因为更大的图像使用更多的内存。 但是,如果这两个都不是你的问题,你可以使用一个图像的视网膜和非视网膜显示。

由于大图像消耗大量内存和CPU / GPU周期。 另一个原因是缩小图像会导致像素级质量问题。

除了额外的内存和CPU之外,对图像进行下采样本质上是有损耗的。 好的清晰的线条变得粗糙。

@ 2x命名惯例存在,以防源图像与显示的图像大小完全相同。 那么你可以有非视网膜iPhone的57×57应用程序图标,以及视网膜显示iPhone的114×114应用程序图标。

使用2张图片的主要优点是,这两张图片都可以从devise者手工制作,因此一切看起来都很好,不需要上调或下调的代码,这会耗费能源,降低性能并可能包含错误。