我有一個圖像壓縮成NSData使用JPEG壓縮。我使用[UIImage imageWithContentsOfFile:]
訪問它。儘管更大的圖像,這需要幾秒鐘。是否有更快的方式從文件系統加載圖像,可能速度與圖像從包中加載的速度相同?如果沒有,有沒有辦法在全品質版本加載時暫時加載較低質量版本的圖像,而不是保存較低質量的版本?從NSData獲取較低質量的UIImage?
2
A
回答
3
雖然你可能能夠建立這樣的使用JPEG 2000(你需要建立自己的JPEG文件的副本discussed here,然後手工編寫代碼,閱讀),我不不要以爲你會在那裏獲得良好的投資回報。從磁盤讀取數據的成本仍然可能壓倒一切。
首先,如果你從你的包讀書,如果在所有可能使用PNG。 iOS高度優化存儲在包中的PNG(複製過程的一部分是用iOS特定的優化格式重寫它們)。
不管你做什麼,如果你想有一個佔位符,你可能會需要以某種方式提供它自己,無論是作爲一個單獨的文件,或者您已閱讀並管理自己的自定義文件格式。這不會是一種難以置信的難以設計的格式,但您仍然需要在某處預先調整大小。
主要的關鍵是,閱讀了大量的圖像文件是昂貴的,你不應該這樣做在主線程上。您需要在後臺隊列(GCD或操作)上執行此操作,並在數據可用時更新UI。這個事實並沒有真正簡單的方法。
-1
低建築質素是比別人更小的文件...這裏是檢查應用程序的文件夾中的文件的代碼。
NSFileManager *manager = [NSFileManager defaultManager];
if ([manager fileExistsAtPath:path]) {
NSDictionary *attributes = [manager attributesOfItemAtPath:path error:nil];
unsigned long long size = [attributes fileSize];
resultlbl.text = [NSString StringWithFormat:@"%d",size];
}
相關問題
- 1. 從UIImage獲取底層NSData *
- 2. 加載UIImage低質量
- 3. 從相機獲取低質量圖像
- 4. 從Java中的高質量圖像獲取低質量縮略圖
- 5. 比較低質量的兩個圖像
- 6. 從NSData UIImage轉換
- 7. 從Facebook獲取並寫入SD的圖像質量非常低。
- 8. NSData - > UIImage - > NSData?
- 9. NSData - > UIImage - > NSData
- 10. UIImage的高質量縮放
- 11. 如何在不降低分辨率的情況下降低UIImage的質量?
- 12. 從塊獲取NSData
- 13. 從NSURL獲取NSData
- 14. IPhone NSData到UIImage
- 15. NSData和UIImage
- 16. NSData加載UIImage
- 17. NSData到UIImage
- 18. 保存後UIImage質量差
- 19. 我如何獲得uiimage的原始nsdata?
- 20. ImageMagick的JPEG質量極低
- 21. 從UIImageView獲取UIImage
- 22. 使用ffmpeg從視頻中提取低/質量好的音頻
- 23. 從NSData UIImage以錯誤的方向
- 24. 下載的質量較低的Amazon S3上存儲的視頻
- 25. 從文件獲取NSData
- 26. 獲取CIImage從UIImage的(SWIFT)
- 27. 從質量中心獲取c#代碼
- 28. 將mp4轉換爲質量較低的mpt
- 29. 較低的圖像質量,以減小文件大小
- 30. 粉絲頁面顯示的照片質量較低,無粉絲