детализация изображения iphone (выбрано из библиотеки фотографий) - PullRequest
0 голосов
/ 15 февраля 2012

Я хочу получить все детали изображения, которые я выбрал, из библиотеки iphone, например

  1. Имя изображения

  2. путь к изображению

  3. Тип изображения

  4. размер изображения

  5. ID изображения

У меня есть выбранное изображение как

   picker1 = [[UIImagePickerController alloc]init];
    picker1.delegate = self;
    picker1.allowsEditing= YES;
    //picker1.showsCameraControls = YES;
    picker1.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    [self presentModalViewController:picker1 animated:YES];
    [picker1 release];

, а затем для выбранного изображения

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info;
{
    isImage = TRUE;

    image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
    sendimageview.image=image;
    appDelegate.mediabuttonpress=TRUE;
}

и для пути я пробую это, но не получаю правильный путь

 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
 NSString *strPath= [paths objectAtIndex:0];
 strPath = [strPath stringByAppendingPathComponent:imageName];
 NSLog(@"*******Path %@",strPath); 

Нужна помощь ...

Ответить

Спасибо ..

Ответы [ 3 ]

0 голосов
/ 15 февраля 2012

Вы не можете получить «истинный» путь к изображению из библиотеки, и у вас не будет доступа, даже если вы сможете его получить.

0 голосов
/ 22 июля 2013

Попробуйте это

   - (void)imagePickerController:(UIImagePickerController *)picker 
didFinishPickingMediaWithInfo:(NSDictionary *)info {
    NSURL *assetURL = [info objectForKey:UIImagePickerControllerReferenceURL];

  ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];

  [library assetForURL:assetURL resultBlock:^(ALAsset *asset) {
   ALAssetRepresentation *representation = [asset defaultRepresentation];
   metadataDict = [[representation metadata] retain]; 
   NSLog(@"%@",metadataDict);


  } failureBlock:^(NSError *error) {
   NSLog(@"%@",[error description]);
  }];
[library release];
}

Вы должны также объявить его с идентификатором __block.

       __block NSDictionary *metaDataDict;    
0 голосов
/ 15 февраля 2012

Я думаю, что вы должны использовать класс ALAsset, потому что я не уверен, UIImage предоставляет всю необходимую вам информацию (особенно GPS-информацию).

...