0

我只是想知道我的图像是否有 x*y 尺寸。

当视网膜显示设备显示使用 a 创建的图像时CGRectMake(0,0,x,y),那会是像素化图像吗?

应该是正确的尺寸CGRectMake(0,0,x/2,y/2)吗?

如何判断图像应具有的矩形大小?

我需要使用contentScaleFactor = [UIScreen mainScreen].scale;吗?

或者也许除以它:CGRectMake(0,0,x/contentScaleFactor,y/contentScaleFactor)

4

3 回答 3

7

尺寸而不是像素来衡量。视网膜和非视网膜显示设备都有相同的点。在非视网膜显示设备上,一个点等于一个像素,但在视网膜显示设备上,一个点等于两个像素。因此,您将同时使用CGRectMake(0,0,x,y)两者。

为避免像素化图像,请确保提供带有@2x后缀的双分辨率图像。例如,如果您的常规图像命名为foo.png,则视网膜版本应命名为foo@2x.png

编码时,请foo.png始终参考。foo@2x.png当您的应用程序在视网膜显示设备上运行时,将自动使用双分辨率图像 ( )。

于 2012-07-18T09:36:12.970 回答
1

对于非视网膜图像 (myImage.png) 尺寸应为 21x21,您应放置另一个尺寸为 42x42 且带有 @2x 后缀 (myImage@2x.png) 的图像。在代码中你可以写一些想法

UIImage *img = [UIImage imageNamed:@"myImage"];

此调用将根据 iPad 自动选择正确的文件。

正确的尺寸应该是

CGRectMake(0,0,21,21)
于 2012-07-18T10:22:06.147 回答
1

术语“视网膜”和“非视网膜”与显示屏的分辨率有关,与显示屏的尺寸无关。分辨率与每英寸(点)的像素数有关。

在这种情况下编码时,尺寸将保持不变,只有图像分辨率会改变。

要了解如何在应用程序包中使用不同大小的资源,您可以查看此链接http://panditpakhurde.com/tech/?p=365

于 2012-07-18T10:36:07.757 回答