Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 视网膜显示应用程序的@2x有什么意义?_Ios_Xcode_Uiimage_Retina Display - Fatal编程技术网

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

Ios 视网膜显示应用程序的@2x有什么意义?,ios,xcode,uiimage,retina-display,Ios,Xcode,Uiimage,Retina Display,我知道视网膜显示器的像素数是非视网膜显示器的2倍,但使用@2x版本和拍摄512 x 512图像以及通过帧大小限制图像之间有什么区别 澄清: 如果我有一个72 x 72的按钮,那么在iPhone上显示这个按钮的正确方式是使用 image.png=72x72 image@2x.png=144 x 144因为大图像会消耗大量内存和CPU/GPU周期。另一个原因是缩小图像会导致像素级质量问题。因为大图像会消耗大量内存和CPU/GPU周期。另一个原因是缩小图像会导致像素级质量问题。如果源图像与显示图像的大

我知道视网膜显示器的像素数是非视网膜显示器的2倍,但使用@2x版本和拍摄512 x 512图像以及通过帧大小限制图像之间有什么区别

澄清:

如果我有一个72 x 72的按钮,那么在iPhone上显示这个按钮的正确方式是使用

image.png=72x72


image@2x.png=144 x 144因为大图像会消耗大量内存和CPU/GPU周期。另一个原因是缩小图像会导致像素级质量问题。

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

如果源图像与显示图像的大小完全相同,则存在@2x命名约定。然后,对于非视网膜iPhone,您可以使用57x57应用程序图标;对于视网膜显示iPhone,您可以使用114x114应用程序图标。

如果源图像与显示图像的大小完全相同,则存在@2x命名约定。然后,对于非视网膜iPhone,您可以使用57x57应用程序图标;对于视网膜显示iPhone,您可以使用114x114应用程序图标。

因为调整大小时图像可能无法正确显示。还因为更大的图像使用更多的内存。但是,如果这两个问题对您来说都不是问题,您可以将一个图像同时用于视网膜和非视网膜显示。

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

正确调整图像大小有几个很好的原因,但主要的原因必须是图像清晰度:在调整图像大小时,你经常会遇到使图像看起来浑浊或像素化的瑕疵。通过以正确的大小创建图像,您将确切地知道最终用户将在其屏幕上看到什么

另一个原因可能只是为了减少二进制文件的总文件大小:16x16图标占用的字节数比512x512图像少几个数量级


如果您需要第三个原因:像[UIImage imageWithName:@xxxx]这样的方便方法可以生成实际大小的图像,通常不需要额外的帧/边界代码。如果你知道图像的大小,你可以省去很多麻烦。

正确调整图像大小有几个很好的理由,但主要的一个理由必须是图像的清晰度:调整图像大小时,你经常会遇到使图像看起来浑浊或像素化的伪影。通过以正确的大小创建图像,您将确切地知道最终用户将在其屏幕上看到什么

另一个原因可能只是为了减少二进制文件的总文件大小:16x16图标占用的字节数比512x512图像少几个数量级


如果您需要第三个原因:像[UIImage imageWithName:@xxxx]这样的方便方法可以生成实际大小的图像,通常不需要额外的帧/边界代码。如果你知道图像的大小,你可以省去很多麻烦。

除了额外的内存和CPU之外,对图像进行下采样本身就是有损的。漂亮而清晰的渲染线条变成了积垢。

除了额外的内存和CPU,对图像进行下采样本身就是有损的。漂亮而清晰的线条变成了积垢。

使用两幅图像的主要优点是,两幅图像都可以由设计师手工制作,因此一切看起来都很好,不需要放大或缩小代码,这会消耗能源、降低性能并可能包含bug。

使用两幅图像的主要优点是,这两张图片都可以由设计师手工制作,因此一切看起来都很好,不需要放大或缩小代码,这会消耗能源、降低性能并可能包含bug。

顺便说一句,72*2不是144。在下面的回答中,我以iPhone 57x57和114x114的应用程序图标大小为例。顺便说一句,72*2是144而不是114。在下面的回答中,我以iPhone 57x57和114x114的应用程序图标大小为例。感谢您的深入回答…:感谢您的深入回答…:如果在编译时进行下采样,则设备上不会使用额外的内存或CPU。不过,第二个参数是有效的。正如我所读到的,问题的关键在于在运行时进行大小调整。如果在编译时进行向下采样,则设备上不会使用额外的内存或CPU。第二个论点是正确的。正如我所读到的,问题的核心是在运行时调整大小。这是正确的答案。在大多数情况下,除非一个人正在设计一个高分辨率的图形游戏,否则没有人能分辨出视网膜和非视网膜图片之间的区别。这是根据经验得出的,这是正确的答案。在大多数情况下,除非一个人正在设计一个高分辨率的图形游戏,否则没有人能分辨出视网膜和非视网膜图片之间的区别。那是experie的 恩斯。
UIImageView *myImage = [[UIImageView alloc] init ];
[myImage setImage:[UIImage imageNamed:@"image.png"]];
[myImage setFrame:CGRectMake(50, 50, 72, 72)];