如何使用ALAssetsLibrary将图像path转换为uiimage
我的iPhone应用程序有一个数组用于存储用户窗体库select的图像path。 我想使用ALAssetsLibrary将数组中的所有图像path转换为uiimage。 我该如何做这个动作? 我尝试使用循环,但不能。 Thx的帮助。
ALAssetsLibrary *library = [[[ALAssetsLibrary alloc] init] autorelease]; [library assetForURL:[filePath objectAtIndex:0] resultBlock:^(ALAsset *asset) { UIImage *image = [UIImage imageWithCGImage:[[asset defaultRepresentation] fullResolutionImage]]; [fileImage addObject:image]; } failureBlock:^(NSError *error) { }];
请使用下面的代码
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];
注意:确保你的[filePath objectAtIndex:0]将是一个NSUrl
对象。 如果没有,请把它转换成NSUrl
。
例:
ALAssetsLibrary* assetslibrary = [[[ALAssetsLibrary alloc] init] autorelease]; NSURL myAssetUrl = [NSURL URLWithString:[filePath objectAtIndex:0]]; assetslibrary assetForURL:myAssetUrl resultBlock:resultblock failureBlock:failureblock];