2012-04-25 48 views
0

當動畫的數使用的UIImageView幀如何的iOS它們映射到存儲器中,是單純的圖像分辨率X比特深度(即,200×200的24bit TGA將是相同的,爲200×200的24bit JPG)或確實的iOS取考慮圖像中未使用的alpha像素。還如何與圖片這項工作加載到Xcode項目(可能未使用)和那些直接加載到內存中(即使用的UIImage imageNamed:從應用程序內)?的UIImageView內存使用

+1

您可以監視儀器內存消耗,並建立一個測試案例來監控應該是直接的。 – fbrereto 2012-04-25 17:55:36

+0

謝謝,我會這樣做的。 – fuzzygoat 2012-04-25 18:07:20

回答

1

我認爲,即使圖像是24位,它也會解壓縮到32位,因爲默認的顏色空間是4通道,尺寸通常是number_of_pixel_in_row*number_of_pixel_in_height*byte_for_pixels。在我的測試中,即使對於不同的格式,我總是看到相同的內存消耗。圖像以他們所需要的情況下要繪製,之後,如果不釋放他們保持內存pressure.That意味着,即使你創建一個UIImage對象也不會進行解壓縮,直到它需要繪製的時間延遲加載。諸如-imageNamed之類的方法將圖像緩存在內存中,我通常只將它用於重複圖像。
希望這有助於

+0

謝謝你安德烈,那是非常有幫助的,大加讚賞。 – fuzzygoat 2012-04-25 20:25:22

+0

你是welcome.Probably你覺得有趣也從蘋果這個充足的代碼中存在的iOS [LargeImageDownsizing是解釋圖像渲染(裏面有很多的評論http://developer.apple.com/library/ios/#samplecode/LargeImageDownsizing/簡介/ Intro.html) – Andrea 2012-04-26 05:41:22