[英]iOS - View high resolution image
我想在imageview中顯示高分辨率的圖像。 這是我的工作
問題在於第三步有滯后。 花費幾秒鍾並加載文件。 如果圖像很大,我會收到內存警告和崩潰。 那么,有沒有一種方法可以使我從上到下繪制圖像 (就像瀏覽器一樣)? 我還需要保留圖像的質量。
有沒有一種方法可以達到我的要求。 提前致謝
UIImage
在實際請求之前不會解碼其基礎圖像數據,當您將其分配給圖像視圖時,它將在主線程上發生。 因此,盡管您嘗試將圖像加載到后台線程中,但是工作被延遲了並且實際上發生在主線程上。
解決此問題的方法很棘手,通常涉及將圖像寫入新的圖形上下文以強制解碼,然后CGImageRef
創建CGImageRef
或UIImage
。 所有這些都在后台線程上進行。 當您將新映像發送到主線程時,所有解碼都已經進行,您應該不會看到延遲。 這個問題有一些答案,證明了這種技術。
使用蘋果提供的標准API(據我所知)無法從上到下繪制圖像。 您將必須編寫自己的流式圖像解碼器,這將是一項艱巨的任務。
您可以使用SDWebImage框架為您提供幫助:
1.異步圖像下載器
2.自動圖像緩存。
3.避免重復。
您可以從以下網址下載此文件: https : //github.com/rs/SDWebImage
關於內存警告,這不僅是由於您的應用程序引起的,而且還歸因於所有在后台運行的應用程序對內存的有效使用,因此請嘗試停止在后台運行的應用程序。
如果圖像很大,我會收到內存警告和崩潰。
似乎您已經達到設備的“硬性”(與內存相關)限制,試圖立即將圖像加載並顯示到內存中。
那么,有沒有一種方法可以使我從上到下繪制圖像(如瀏覽器的方式)?
您應該嘗試使用CATiledLayer,它提供了一種繪制非常大的圖像而又不會引起內存占用的方法。
在這里您可以找到有關它的教程。
您還可以看一下PhotoScrollerNetwork項目:
極快的磁貼渲染-視覺上比Apple的代碼(在文件系統中使用png文件)快得多
您只需提供一個jpeg文件或URL,此代碼即可為您輕松快捷地完成所有切片操作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.