将图像保存在相机胶卷中并获取资产 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的主要内容,如果未能解决你的问题,请参考以下文章

从保存的相机胶卷参考 url 设置 uiimageview

如何获取从 UIImagePicker 拍摄的图片的资产 URL

当我在设备上运行程序时,AssetsLibrary 没有获取保存在相机胶卷中的图像

除了相机胶卷,如何从 iPhone 中获取所有资产?

React Native 0.26 显示资产库中的图像时找不到合适的图像 URL 加载器

ALAssetsLibrary 在将新照片添加到相机胶卷后返回相同的资产 - 目标 c