调整图像大小iPhone SDK

时间:2011-06-10 14:07:12

标签: iphone ios ios4 iphone-sdk-3.0

我正在使用iOS应用程序,该应用程序使用iDevice Camera抓取图像并将其上传到远程服务器。在某种情况下,用户可以使用相机拍摄照片,使用本机相机控件选择图像的特定部分并使用它。用户也可以在不选择特定部分的情况下使用完整图像。

现在,问题在于主要有两种类型的设备:

  • iPhone / iTouch 2G,3G,3GS
  • iPhone / iTouch 4

也会出现相机图像分辨率差异。

问题是我们是否应该将所需尺寸的分辨率加倍,以便能够在两种设备类型上正确显示图像,或者我们可以使用可以同时使用的通用尺寸?如果可以有一个共同的大小,那会是什么?

2 个答案:

答案 0 :(得分:0)

我不确定清楚地了解您的问题,但如果您想要显示图片,可以使用以下代码:

UIImage* myImage = [UIImage imageNamed:@"my_image.png"];
UIImageView *myImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
myImageView.image = myImage;
[self.view addSubView:myImageView];

这将全屏显示您的图像。如果您在iOS 4上运行此代码,它将自动适应iPhone 4分辨率。

答案 1 :(得分:0)

任何尺寸的图像都将在两个设备上“正常工作” - 真正重要的是性能和效率。例如,如果您在滚动表视图中显示这些图像,您不希望非视网膜设备下载并绘制一个巨大的缩小图像,或者您的表格视图会断断续续。

最好上传必要的最高分辨率,然后您的远程服务器应生成缩小的图像,这些图像可以根据请求设备的需要动态提供。这比使用两种设备的通用图像尺寸要好,因为您要么不必要地降低应用程序速度,要么显示像素化图像。

例如:假设用户捕获200x200图像。您希望图像(下载时)以50x50图像视图显示。您希望远程服务器为视网膜显示器提供100像素图像,为非视网膜显示器提供50像素图像。每个设备都应为其设备分辨率请求适当大小的图像。图像视图可以处理缩放,每个都看起来很流畅,下载速度和应用程序性能应该是最佳的。

如果您想节省更多带宽,在上述方案中,您可以在提交前将图片缩小到100x100。这里有一些很好的提示:

https://stackoverflow.com/questions/1282830/uiimagepickercontroller-uiimage-memory-and-more