将图像保存在相机胶卷中并获取资产 url
Posted
技术标签:
【中文标题】将图像保存在相机胶卷中并获取资产 url【英文标题】:save image in camera roll and get asset url 【发布时间】:2013-01-23 20:29:18 【问题描述】:对于我正在开发的应用程序,我使用 UIImagePickerController 拍摄照片并将其存储在相机胶卷中:
- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info
//... some stuff ...
UIImageWriteToSavedPhotosAlbum([info objectForKey:@"UIImagePickerControllerOriginalImage"], nil, nil, nil);
图像已保存,现在我需要获取其参考网址,因此我尝试枚举相机胶卷并获取最后一张图像,但我总是在刚刚拍摄的图像之前获得图像。
有人知道如何获取刚刚保存的图片的参考吗?
谢谢, 最大
【问题讨论】:
【参考方案1】:这个解决方案应该可以解决问题:
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library writeImageToSavedPhotosAlbum:((UIImage *)[info objectForKey:UIImagePickerControllerOriginalImage]).CGImage
metadata:[info objectForKey:UIImagePickerControllerMediaMetadata]
completionBlock:^(NSURL *assetURL, NSError *error)
NSLog(@"assetURL %@", assetURL);
];
瞧:
assetURL assets-library://asset/asset.JPG?id=1611E84C-24E2-4177-B49A-1C57B4A9C665&ext=JPG
【讨论】:
你能告诉我更多关于如何将图像保存在相机胶卷中的信息吗?我可以保存图像,但资产 URL 返回“null” 您必须更改完成块。我上面的完成块的例子只是记录assetURL,它应该是这样的:ALAssetsLibrary *al = [addPhoto defaultAssetsLibrary]; [alassetForURL:assetURL resultBlock:resultblock failureBlock:failureblock];其中 defaultAssetsLibrary 是:+ (ALAssetsLibrary *)defaultAssetsLibrary static dispatch_once_t pred = 0;静态 ALAssetsLibrary *library = nil; dispatch_once(&pred, ^ library = [[ALAssetsLibrary alloc] init]; );返回库;以上是关于将图像保存在相机胶卷中并获取资产 url的主要内容,如果未能解决你的问题,请参考以下文章
如何获取从 UIImagePicker 拍摄的图片的资产 URL
当我在设备上运行程序时,AssetsLibrary 没有获取保存在相机胶卷中的图像