我想加載和顯示圖像(.jpg,.png)具有大尺寸, 1800x1200或2000x1800(寬x高)。 如果我在UIImageView中顯示如此大尺寸的圖像(1800x1200或2000x1800),它也消耗大量內存,應用程序崩潰。 也根據Apple的文檔(http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIImage_Class/Reference/Reference.html),我們應該避免創建尺寸大於1024 x 1024的UIImage對象。 一個解決方案是調整圖像大小。我已經應用邏輯來使用以下代碼調整圖像大小。UIImage與大圖像大小 - 內存問題 - 崩潰
UIGraphicsBeginImageContext(newSize);
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
這工作正常,並調整圖像大小。但是,當它在設備上下文中加載大圖以調整大小時,它會在一秒鐘內消耗大量內存,並且因爲應用程序崩潰。 所以這種方法是行不通的。如果您有更好的方法調整大小而不會崩潰,請分享。
此外,在此(http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIImage_Class/Reference/Reference.html)鏈接,蘋果公司表示,
「你應該避免創建於1024×1024尺寸更大的UIImage對象。除了大量的內存這樣的圖像將消耗,在將圖像用作OpenGL ES中的紋理或將圖像繪製到視圖或圖層時,可能會遇到問題。如果您正在執行基於代碼的操作(如調整大於1024 x的圖像的大小),則此大小限制不適用通過將它繪製到一個支持位圖的圖形上下文來實現1024個像素。事實上,您可能需要以這種方式調整圖像大小(或將其分成幾個較小的圖像),以便將其繪製到您的某個視圖中。「
有人可以詳細說明"This size restriction does not apply if you are performing code-based manipulations, such as resizing an image larger than 1024 x 1024 pixels by drawing it to a bitmap-backed graphics context."
嗎?如何在位圖支持的圖形上下文上繪製圖像?什麼是位圖支持的圖形上下文?如果有人可以共享示例代碼,它會幫助我。 在此先感謝!