我正在考虑编写一些测验应用程序,其中问题表示为图像。
我的问题是,对于每个测验问题(question.jpg
),以及jpg文件,我是否必须创建
一个双倍大小的question@2x.jpg
文件?
是否有必要?
这样做似乎会增加我的程序的大小,所以我在考虑何时/是否有必要这样做?
PS。如果我必须这样做,我只需要手动将每个图像的大小加倍并添加到项目中(原始图像和双尺寸图像)?
PPS。只是为了添加更多信息。问题位于网站上,我必须下载它们并手动添加到我的项目(如资源)。在网站上,没有相同图像的不同版本。所以,我有网站上的任何内容。我注意到的一些图像尺寸为800x600,但有些图像尺寸为500x400。因此,在下载这些图像后,我该如何命名它们?只是原始名称?并忘记@2x
扩展名?什么是最佳做法?
(如果这将有助于我的图像视图可能是smth。像310宽度)。我是否需要修改它们的大小?怎么办?
答案 0 :(得分:0)
Apple的高分辨率图像命名约定可在此处找到: Apple doc naming conventions
如果您正在以支持旧屏幕和视网膜屏幕的方式进行开发。您可以将旧设备的xxxx.jpg用作iPhone 3gs和iPad 1,并使用xxxx@2x.jpg进行视网膜显示。宽高比需要相同但@ 2x图像需要两倍大。 在您的情况下,“我的图像视图可能是宽度为310,宽度为310”,那么@ 2x图像的宽度需要为620px,正常旋转需要为310px。
实际上不需要在应用程序中同时具有这两种图像大小,因为您可以使用相同的图像并进行缩放(如果您确实需要支持旧的分辨率)。 即使您只添加@ 2x,如果旧设备上的某人安装了您的应用,它也会自行扩展。它可能会变得有点模糊,但仍然会很好。
如果您打算在应用中使用大量图片,我建议使用某种Web服务,用户可以下载要显示的内容。但那只是我。随着图像占用相当大的空间,应用程序将很快变得非常大。当然,这一切都取决于你将拥有多少张图片。 使用Web服务的缺点是用户很多都有互联网连接才能玩。并下载您的内容。(我知道的大多数测验应用程序都使用网络服务。)这是一个品味问题。
如果您确实需要支持普通和@ 2x,我们可以使用一种方法。此方法将返回缩放图像,因此您只需要正常的图像或@ 2x图像,然后缩放到另一个尺寸。这对于降低应用程序大小或降低客户端下载时间至关重要。
如果您正在使用.jpg并向上缩放它们,您可以很容易地获得像素化图像,因为它是一种有损格式。但如果这仍然是你想要做的并保持宽高比,这是一种方法:
-(UIImage*)resizeImage: (UIImage *)imageToScale withScale:(CGFloat)theScale{
UIImage *image = [UIImage imageWithCGImage:[imageToScale CGImage]
scale:(imageToScale.scale * theScale)
orientation:(imageToScale.imageOrientation)];
return image;
}
用法
[self resizeImage:[UIImage imageNamed:@"question.jpg"] withScale:0.5];
0.5会使尺寸加倍,而2.0会导致图像尺寸减小一半。
如果你想要一个更复杂的方法来为实例设置一个特定的目标大小就这么说,我将编辑这个答案。