//导出图片到指定路径
-(UIImage *) exportImage:(NSURL *) assetPhotoURL: (int) imageType
{
ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *myasset)
{
CGImageRef imageRef;
if (imageType == SIZE_TYPE_THUMBNAIL)
{
imageRef = [myasset thumbnail];
}
else
{
ALAssetRepresentation *assetRepresentation = [myasset defaultRepresentation]; //大图片
if (imageType == SIZE_TYPE_FULL_SCREEN)
imageRef = [assetRepresentation fullScreenImage];
else if (imageType == SIZE_TYPE_FULL_RESOLUTION)
imageRef = [assetRepresentation fullResolutionImage];
}
if(imageRef)
{
UIImage *image = [UIImage imageWithCGImage:imageRef];
NSLog(@"获取图片成功"); //如何在获取图片后返回
}
};
ALAssetsLibraryAccessFailureBlock failureblock = ^(NSError *error)
{
NSLog(@"获取图片失败");
};
//获取图片
ALAssetsLibrary *assetsLibrary = [[[ALAssetsLibrary alloc] init] autorelease];
[assetsLibrary assetForURL:assetPhotoURL resultBlock:resultblock failureBlock:failureblock];
return nil;
}
上面的代码可以获取到资源库中指定url的图片对象,但如何修改代码让其在获取到UIImage对象后可以直接返回,而不是通过委托进行返回?
-(UIImage *) exportImage:(NSURL *) assetPhotoURL: (int) imageType
{
ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *myasset)
{
CGImageRef imageRef;
if (imageType == SIZE_TYPE_THUMBNAIL)
{
imageRef = [myasset thumbnail];
}
else
{
ALAssetRepresentation *assetRepresentation = [myasset defaultRepresentation]; //大图片
if (imageType == SIZE_TYPE_FULL_SCREEN)
imageRef = [assetRepresentation fullScreenImage];
else if (imageType == SIZE_TYPE_FULL_RESOLUTION)
imageRef = [assetRepresentation fullResolutionImage];
}
if(imageRef)
{
UIImage *image = [UIImage imageWithCGImage:imageRef];
NSLog(@"获取图片成功"); //如何在获取图片后返回
}
};
ALAssetsLibraryAccessFailureBlock failureblock = ^(NSError *error)
{
NSLog(@"获取图片失败");
};
//获取图片
ALAssetsLibrary *assetsLibrary = [[[ALAssetsLibrary alloc] init] autorelease];
[assetsLibrary assetForURL:assetPhotoURL resultBlock:resultblock failureBlock:failureblock];
return nil;
}
上面的代码可以获取到资源库中指定url的图片对象,但如何修改代码让其在获取到UIImage对象后可以直接返回,而不是通过委托进行返回?
{
__block UIImage *image = nil;
ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *myasset)
{
......
image = xxx;
}
return image;
}
这种方法不行吧,我之前试过,还是会先返回空的UIImage