2011-06-10 116 views
0

我的工作,它使用的iDevice相机抓住图像并将其上传到远程服务器中的iOS应用。在这种情况下,用户可以使用相机抓取图片,使用本机相机控件选择图像的特定部分并使用它。用户也可以在不选择特定部分的情况下使用完整图像。现在调整图像尺寸iPhone SDK

,事情是,有两种类型的设备majorly:

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

会有摄像机图像分辨率差异也是如此。

的问题是,我们应加倍我们所需尺寸的分辨率,以具有可以在两个设备类型的正确显示图像或我们可以有一个共同的尺寸将在两个工作吗?如果可以有一个共同的大小,那会是什么?

回答

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的分辨率。

0

任何规模大小两个设备上会“工作”的形象 - 它真正重要的是性能和效率。例如,如果您在滚动表格视图中显示这些图像,则不希望让非视网膜设备下载并绘制巨大的缩小图像,否则表格视图会结结块。

这可能是最好的上传所需的最高分辨率,然后你的远程服务器应产生按比例缩小的图像,它可以动态地提供关于请求设备的需求为主。这比使用两种设备的通用图像尺寸要好,因为您可能会不必要地减慢应用速度或显示像素化图像。

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

如果你想节省更多的带宽,在你上面描述的场景可以在图像缩小为100x100提交前。这里有一些很好的提示:

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