Лучший способ получить миниатюры с ALAssetsLibrary - PullRequest
3 голосов
/ 14 ноября 2011

Я работаю с библиотекой ALAssets.Когда я получаю все эскизы, я просто использую UIImageViews, чтобы держать миниатюры и добавлять их в держатель.Проблема здесь, это очень медленно, чтобы добавить их.Может быть, десять секунд или больше.Если будет много фотографий, это будет медленнее.

Я бы хотел знать, как лучше держать эти миниатюры.(Большое спасибо!)

Ответы [ 2 ]

8 голосов
/ 28 ноября 2012

Используйте AlAsset aspectRatioThumbnail вместо 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
0 голосов
/ 11 августа 2015

Я думаю, что в этом https://github.com/johnil/JFImagePickerController проекте с двумя классами JFAssetHelper и JFImageManager вы найдете ответ. Это использование NSCache для кэширования фотографий, и это действительно быстро

...