我怎么能拍照后得到网址

时间:2014-09-08 09:12:54

标签: ios objective-c

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

NSURL *assetURL;

if( [picker sourceType] == UIImagePickerControllerSourceTypeCamera )
{
    assetURL = [info objectForKey:UIImagePickerControllerReferenceURL]; // always return nil !!
}
else if( [picker sourceType] == UIImagePickerControllerSourceTypePhotoLibrary)
{
    assetURL = [info objectForKey:UIImagePickerControllerReferenceURL];
} 

当我选择UIImagePickerControllerSourceTypeCamera时,如何获得assetURL。

UIImagePickerControllerSourceTypePhotoLibrary正常工作。

1 个答案:

答案 0 :(得分:1)

使用UIImagePickerControllerSourceTypeCamera拍摄图像时,图像不会自动保存到照片库中。你必须手动编写它。写完后,您可以获取网址。

示例代码:

- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

    if (picker.sourceType == UIImagePickerControllerSourceTypeCamera) {

        UIImage* cameraImage = [info objectForKey:@"UIImagePickerControllerOriginalImage"];

        ALAssetsLibrary* assetsLibrary = [[ALAssetsLibrary alloc] init];

        [assetsLibrary writeImageToSavedPhotosAlbum:cameraImage.CGImage
                                           metadata:[info objectForKey:UIImagePickerControllerMediaMetadata]
                                    completionBlock:^(NSURL *assetURL, NSError *error) {

                                        if (!error) {

                                            //use assetURL as you need.
                                        }
                                    }];
    }
}

警告但写作是一项耗时的操作。