Получить путь к изображению для CGImageSourceRef - PullRequest
2 голосов
/ 18 мая 2011

Эй, ребята, я сейчас пытаюсь получить данные EXIF ​​из изображения, выбранного пользователем через UIIMagePickerController. Кажется, я не могу понять, как мне найти путь, который я могу использовать для CGImageSourceCreateWithURL((CFURLRef)someURL,nil).

Когда я пытаюсь использовать UIImagePickerControllerReferenceURL, консоль выдает довольно приятную ошибку: <ERROR> CGImageSourceCreateWithURLCFURLCreateDataAndPropertiesFromResource failed with error code -11.. Я в замешательстве, начинаю думать, что иду с совершенно неправильной точки зрения, поскольку тип CGImageSourceRef обычно используется для создания изображения, а у меня уже есть UIImage. Любой, кто может пролить свет на этот вопрос, пожалуйста, не стесняйтесь.

- (void)imagePickerController:(UIImagePickerController*)pickerdidFinishPickingMediaWithInfo:(NSDictionary *)info {</p> <pre><code>NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType]; [self dismissModalViewControllerAnimated:YES]; if ([mediaType isEqualToString:(NSString *)kUTTypeImage]){ image = [info objectForKey:UIImagePickerControllerOriginalImage]; NSLog(@"%@",[info objectForKey:UIImagePickerControllerReferenceURL]); //Outputs: assets-library://asset/asset.JPG?id=1000000006&ext=JPG CGImageSourceCreateWithURL((CFURLRef)[info objectForKey:UIImagePickerControllerReferenceURL], nil); //The plan is to somehow get a CGImageSourceRef object from the //UIImage provided by the [info UIImagePickerControllerOriginalImage], i just don't know how to get this object, // for it requires the URL to the image, wich i don't seem to have. } }

-Edit- Будет использовать обходной путь, предлагаемый большим напряжением. Спасибо за чтение.

Ответы [ 2 ]

5 голосов
/ 18 мая 2011

Код ошибки -11 означает, что схема URL не распознана, то есть CFURL не знает, что делать с URL, начинающимися с assets-library: //.

Почему вы думаете, что вынужен CGImageSourceRef в этом случае?

0 голосов
/ 25 июня 2012

Попробуйте использовать

ALAssetRepresentation * представление = [yourAsset defaultRepresentation];
NSDictionary * metadataDict = [[метаданные представления] сохранить];

...