2011-06-10 104 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