Please use the below code
typedef void (^ALAssetsLibraryAssetForURLResultBlock)(ALAsset *asset);
typedef void (^ALAssetsLibraryAccessFailureBlock)(NSError *error); ? ?
? ? ? ?
ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *myasset){
? ? ? ?
ALAssetRepresentation *rep = [myasset defaultRepresentation];
CGImageRef iref = [rep fullResolutionImage];
? ?
if (iref){
dispatch_async(dispatch_get_main_queue(), ^{
UIImage *myImage = [UIImage imageWithCGImage:iref scale:[rep scale] orientation:(UIImageOrientation)[rep orientation]];
[fileImage addObject:myImage];
//binding ur UI elements in main queue for fast execution
//self.imageView.image = myImage;
});
? ? ? ? ? ? ? ? ? ?
} ? ? ?
}; ? ? ?
? ? ? ?
ALAssetsLibraryAccessFailureBlock failureblock ?= ^(NSError *myerror){
? ? ? ?
//failed to get image.
}; ? ? ? ?
? ? ? ?
ALAssetsLibrary* assetslibrary = [[[ALAssetsLibrary alloc] init] autorelease];
[assetslibrary assetForURL:[filePath objectAtIndex:0]?resultBlock:resultblock failureBlock:failureblock];
Note: Make sure that, your [filePath objectAtIndex:0] will be a NSUrl
object. Please convert it to NSUrl
, if not.
Example:
ALAssetsLibrary* assetslibrary = [[[ALAssetsLibrary alloc] init] autorelease];
NSURL myAssetUrl = [NSURL URLWithString:[filePath objectAtIndex:0]];
assetslibrary assetForURL:myAssetUrl resultBlock:resultblock failureBlock:failureblock];
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…