如何使用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];