2014-09-08 6 views
-1
- (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을 얻을 수 있습니까?사진을 찍은 후 URL을 어떻게 얻을 수 있습니까?

UIImagePickerControllerSourceTypePhotoLibrary is work.

답변

1

UIImagePickerControllerSourceTypeCamera을 사용하여 이미지를 촬영하면 이미지가 자동으로 사진 라이브러리에 저장되지 않습니다. 수동으로 작성해야합니다. 작성한 후 URL을 얻을 수 있습니다.

샘플 코드 :

- (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. 
             } 
            }]; 
    } 
} 

경고하지만, 쓰기는 시간이 많이 걸리는 작업입니다.

관련 문제