我只是想知道我的图像是否有x * y尺寸。
当视网膜显示设备显示用CGRectMake(0,0,x,y)
创建的图像时,这是一个像素化的图像吗?
正确的尺寸是CGRectMake(0,0,x/2,y/2)
吗?
如何判断图像的矩形大小?
我是否需要使用contentScaleFactor = [UIScreen mainScreen].scale;
?
或者可能除以它:CGRectMake(0,0,x/contentScaleFactor,y/contentScaleFactor)
?
答案 0 :(得分:7)
衡量尺寸in points instead of pixels。视网膜和非视网膜显示装置都具有相同的点。在非视网膜显示设备上,一个点等于一个像素,但是在视网膜显示设备上,一个点等于两个像素。因此,您将使用CGRectMake(0,0,x,y)
。
要避免像素化图像,请务必提供带有@2x
后缀的双分辨率图像。例如,如果您的常规图片名为foo.png
,则视网膜版本应命名为foo@2x.png
。
编码时,请始终参考foo.png
。当您的应用在视网膜显示设备上运行时,将自动使用双分辨率图像(foo@2x.png
)。
答案 1 :(得分:1)
对于非视网膜图像(myImage.png),大小应为21x21,您应该放置另一张图像,其大小为42x42,后缀为@ 2x后缀(myImage@2x.png)。在代码中你可以写一些想法
UIImage *img = [UIImage imageNamed:@"myImage"];
此调用将根据iPad自动选择正确的文件。
正确的尺寸应为
CGRectMake(0,0,21,21)
答案 2 :(得分:1)
术语“视网膜”和“非视网膜”与显示屏的分辨率有关,而与显示屏的尺寸无关。分辨率与每英寸像素数(点)有关。
在这种情况下进行编码时,尺寸将保持不变,只会更改图像分辨率。
要了解如何在应用程序包中使用不同大小的资源,您可以查看此链接http://panditpakhurde.com/tech/?p=365