在相机胶卷中保存图像并获取资产网址

mas*_*gar 12 iphone uiimagepickercontroller

对于我正在开发的应用程序,我使用UIImagePickerController拍摄照片并将其存储在相机胶卷中:

- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info {
//... some stuff ...

        UIImageWriteToSavedPhotosAlbum([info objectForKey:@"UIImagePickerControllerOriginalImage"], nil, nil, nil);

}
Run Code Online (Sandbox Code Playgroud)

图像被保存,现在我需要获取它的参考URL,所以我尝试枚举相机滚动并获取最后一个图像,但我总是得到我刚拍摄的图像之前的图像.

任何人都知道如何获得刚刚保存的图片的参考?

谢谢,马克斯

mas*_*gar 12

此解决方案应该解决问题:

    ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
    [library writeImageToSavedPhotosAlbum:((UIImage *)[info objectForKey:UIImagePickerControllerOriginalImage]).CGImage
                                 metadata:[info objectForKey:UIImagePickerControllerMediaMetadata]
                          completionBlock:^(NSURL *assetURL, NSError *error) {
                              NSLog(@"assetURL %@", assetURL);
                          }];
Run Code Online (Sandbox Code Playgroud)

et voila:

assetURL assets-library://asset/asset.JPG?id=1611E84C-24E2-4177-B49A-1C57B4A9C665&ext=JPG
Run Code Online (Sandbox Code Playgroud)