【问题标题】:save image in camera roll and get asset url将图像保存在相机胶卷中并获取资产 url
【发布时间】:2013-01-23 20:29:18
【问题描述】:

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

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

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

}

图像已保存,现在我需要获取其参考网址,因此我尝试枚举相机胶卷并获取最后一张图像,但我总是在刚刚拍摄的图像之前获得图像。

有人知道如何获取刚刚保存的图片的参考吗?

谢谢, 最大

【问题讨论】:

    标签: iphone uiimagepickercontroller


    【解决方案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]; });返回库; }
    猜你喜欢
    • 1970-01-01
    • 2015-11-18
    • 2022-01-01
    • 1970-01-01
    • 2011-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多