2013-01-23 66 views
12

一個應用程序,我發展,我使用的UIImagePickerController拍一張照片,並將其存儲在相機膠捲:保存圖像在相機膠捲,並獲得資產URL

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

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

} 

保存圖像,現在我需要獲取其參考網址,因此我嘗試枚舉相機膠捲並獲取最後一張圖像,但我總是在剛剛拍攝的圖像之前獲取圖像。

有人有一個想法如何獲得剛剛保存的圖片的參考?

感謝, 最大

回答

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); 
          }]; 

等瞧:

assetURL assets-library://asset/asset.JPG?id=1611E84C-24E2-4177-B49A-1C57B4A9C665&ext=JPG 
+0

您能否提供我更多的東西你如何保存在相機膠捲圖像?我可以保存圖像,但資產URL返回「null」 – Sabarish

+0

您必須更改完成塊。我在完成塊上面的例子只是記錄assetURL,它應該是這樣的:ALAssetsLibrary * al = [addPhoto defaultAssetsLibrary]; [al assetForURL:assetURL resultBlock:resultblock failureBlock:failureblock]; 其中defaultAssetsLibrary是: +(ALAssetsLibrary *)defaultAssetsLibrary {static} dispatch_once_t pred = 0; static ALAssetsLibrary * library = nil; dispatch_once(&pred,^ {[ALAssetsLibrary alloc] init]; }); 返回庫; } – masgar

相關問題