我正在处理 ALAssetsLibrary。当我得到所有缩略图时,我只是使用 UIImageViews 来保存缩略图并将它们添加到持有人。问题就在这里,添加它们真的很慢。也许十秒钟或更长时间。如果有很多照片,它会变慢。
我想知道保存这些缩略图的最佳做法是什么。(非常感谢!)
我正在处理 ALAssetsLibrary。当我得到所有缩略图时,我只是使用 UIImageViews 来保存缩略图并将它们添加到持有人。问题就在这里,添加它们真的很慢。也许十秒钟或更长时间。如果有很多照片,它会变慢。
我想知道保存这些缩略图的最佳做法是什么。(非常感谢!)
使用 AlAssetaspectRatioThumbnail
代替fullResolutionImage
高性能
ALAsset 类有两种获取缩略图的方法:
- (CGImageRef)thumbnail
- (CGImageRef)aspectRatioThumbnail
例子:
//ALAssetsLibrary block will execute in a separate thread. So I suggest to do the UI related stuff in main thread.
dispatch_sync(dispatch_get_main_queue(), ^{
CGImageRef iref = [myasset aspectRatioThumbnail];
itemToAdd.image = [UIImage imageWithCGImage:iref];
});//end block
我认为在这个带有两个类 JFAssetHelper 和 JFImageManager 的https://github.com/johnil/JFImagePickerController项目中,您会找到答案。这使用 NSCache 来缓存照片,而且速度非常快