Сохранение ссылки на изображение, сохраненное в Camera Roll - PullRequest
0 голосов
/ 17 марта 2011

Я работал над простым приложением, которое позволяет пользователю делать снимки и сохранять их в фотоаппарате для последующего использования. Для этого я использую UIImagePickerController и метод UIImageWriteToSavedPhotosAlbum, который работает отлично.

Мой вопрос: есть ли способ сохранить путь к изображению в «Фотопленке», чтобы я мог использовать его для повторного вызова изображения позже? Или мне нужно сохранить изображение в приложении, чтобы позже использовать его снова?

Было бы замечательно, если бы был простой способ сделать это, как в случае с видео, где вы просто сохраняете NSUrl для конкретного видео, а затем вызываете MPMoviePlayerController, чтобы сделать все для вас.

Любая помощь будет высоко ценится!

1 Ответ

1 голос
/ 25 июля 2011

Оказывается, на самом деле это не так сложно сделать.В методе UIImagePickerDelegate:

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

NSDictionary «info» фактически содержит URL-адрес изображения или фильма, который хранится в «Фотопленке».Вам нужно только проверить:

if([[info valueForKey:UIImagePickerControllerMediaType] isEqualToString:(NSString *)kUTTypeMovie]){ // If the user took a video,
  movieURL = [[info valueForKey:UIImagePickerControllerMediaURL] retain];// Get the URL of where the movie is stored.
  UISaveVideoAtPathToSavedPhotosAlbum([movieURL path], nil, nil, nil);   // Save the movie to the photo album.
}

, и это сохранит фильм в Camera Roll, а также запишет URL.Выполнение этого для фотографии аналогично, просто замените «kUTTypeMovie» на «kUTTypeImage» и замените

movieURL = [[info valueForKey:UIImagePickerControllerMediaURL] retain];// Get the URL of where the movie is stored.
UISaveVideoAtPathToSavedPhotosAlbum([movieURL path], nil, nil, nil);   // Save the movie to the photo album.

на

UIImage * image = [info valueForKey:UIImagePickerControllerOriginalImage];    
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);

Если вам нужно сохранить UIImage не наCamera Roll, есть отличная статья о stackoverflow Сохранение UIImage с NSCoding , которую можно использовать для хранения изображения в вашем приложении.Надеюсь, это кому-нибудь поможет!

...