Как получить путь изображения из библиотеки фотографий и как получить изображение из библиотеки фотографий в iphone?

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

-(IBAction) selectimage
{
UIImagePickerController *picker=[[UIImagePickerController alloc] init];
picker.delegate=self;
picker.sourceType=UIImagePickerControllerSourceTypeSavedPhotosAlbum;
[self presentModalViewController:picker animated:YES];
[picker release];
}
-(void) imagePickerController:(UIImagePickerController *)UIPicker didFinishPickingMediaWithInfo:(NSDictionary *) info
{
[UIPicker dismissModalViewControllerAnimated:YES];
imageview.image=[info objectForKey:"UIImagePickerControllerOriginalImage"];
    NSLog("Image Path=%@",imageview.image);
}

Он успешно помещен в Imageview. Но я не могу получить свой путь изображения. Я использую nslog ( "% @", imageview.image); он показывает "Путь изображения =" в консоли. Как я могу получить его путь и как получить фотографии из библиотеки фотографий. Любое тело помогает мне. Спасибо заранее.

Ответ 1

UIImagePickerControllerOriginalImage возвращает только данные изображения без ссылки на его локальное хранилище. Я не использовал его сам, но я предполагаю, что вы ищете

NSURL* localUrl = (NSURL *)[info valueForKey:UIImagePickerControllerReferenceURL];

По крайней мере, это единственный способ получить любой URL-адрес.

Чтобы получить изображение, просмотрите этот вопрос. Но также имейте в виду, что у вас уже есть изображение, полученное с помощью

UIImage* image=(UIImage*)[info objectForKey:@"UIImagePickerControllerOriginalImage"];

спросите себя, действительно ли вам это нужно.

Ответ 2

Swift 3.0, вы можете получить imageData из referenceURL следующим образом

let url = URL(string: "assets-library://asset/asset.JPG?id=1000000007&ext=JPG")
let asset = PHAsset.fetchAssets(withALAssetURLs: [url], options: nil)
guard let result = asset.firstObject else {
  return nil
}
let imageManager = PHImageManager.default()
var imageData: Data? = nil
imageManager.requestImageData(for: result, options: nil, resultHandler: { (data, string, orientation, dict) in
  imageData = data
})

Ответ 3

Невозможно получить путь к фотографиям из photoLibrary.

Но вы можете получить фотографии из photoLibrary. Просто используйте UIImagePickerControllerSourceTypePhotoLibrary вместо UIImagePickerControllerSourceTypeSavedPhotosAlbum.