2012-10-13 75 views
1

隨着iPhone 5的新屏幕分辨率和寬高比,在處理全屏(或大部分全屏)圖像的圖像時,似乎有兩種方法可以利用新屏幕空間:iPhone 5 - 背景圖像

(還有其他的方法也:拉伸,平鋪,和/或石英圖)

這兩選項有缺點:

  • 包括兩個文件將會增加你的應用程序的包大小
  • 在4加載iPhone 5的視網膜圖像將在屏幕上顯示時剪切圖像數據,但仍將消耗相同數量的內存資源

我特別感興趣的是更好地理解第二個缺點的細節。

我想它會保存應用程序包(和我的設計師),如果我可以用這個整合的圖像想法進一步...

比方說,我有一個拿起圖像320pt在縱向和480pt X 480pt x 320pt景觀(寬x高)。

(編輯:最初我沒有考慮其他幾個重要花絮爲了完整起見,我在這裏包括那些想法。)

如果我們在480pt X創建一個圖像文件480pt分辨率而不是橫向和縱向文件,它可以防止應用程序包擁有兩個文件,每個文件包含320pt x 320pt區域的重複圖像數據。但是,這個大方形圖像將包含四個不會被看到的角落中的80pt x 80pt象限。所有事情都是平等的,我們應該在應用程序包中的圖像數據減少20%。

已經重新讀比爾的"iBooks Author Experiment",對內存的要求是很容易搞清楚:

  • 橫向或縱向:640 * 960 * 4 = 2,457,600
  • 大廣場:960 * 960 * 4 = 3,686,400

加載所需的內存大正方形比正確載入屏幕大小的圖像大50%。很顯然,應用程序包中的節省不會影響資源!

但是,將此延伸到包含iPhone 5和iPhone 4 - 568pt x 568pt的巨型廣場怎麼樣?應用程序包(巨型廣場)中只有一個文件,而不是四個文件(iP4橫向,iP4縱向,iP5橫向,iP5縱向)。節省可能約爲60%。

怎麼樣的資源命中?

  • iPhone 5的橫向或縱向:1136 * 640 * 4 = 2,908,160
  • 巨人廣場:1136 * 1136 * 4 = 5,161,984

這更110%的內存爲iPhone 4,併爲iPhone 5

我原來更加77.5%的內存問題大致分爲兩部分:1.我是否正確理解這一點?2.這種權衡是明智的選擇。

我希望我的編輯(由Bill的答案激發)表明我現在明白這個東西。而且,如果新發現的知識是正確的,那麼#2幾乎可以回答自己。 :-)

回答

2

一般你明白了。

假設你有大的方形圖像,它是某種平鋪的圖案(亞麻布等),那麼你可以使用ImageIO以你需要的大小加載裁剪後的圖像,這會使用一些額外的內存解壓圖像,但一旦完成它只會消耗填充背景所需的內容。

我建議不要縮放圖像。然而,從另一方面來說,運送帶有3張圖像(foo,foo @ 2x和foo-h568 @ 2x)而不是1的應用程序更有意義。如果你接近3G/LTE的下載量(我認爲)爲50MB,我認爲你應該選擇一種形式。