Лучший способ получить миниатюры с помощью ALAssetsLibrary

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

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


person user930924    schedule 14.11.2011    source источник


Ответы (2)


Используйте 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
person Shamsudheen TK    schedule 28.11.2012

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

person blueblue    schedule 11.08.2015