2013-08-23 2 views
1

ALAssetsLibrary 클래스를 사용하여 장치 내부의 사진 목록과 관련 정보를 검색하려고합니다. 나는 정확하게 이미지의 수를 드러내는 방법을 구현했다. 그러나 나는 사진 정보의 너비, 높이, 방향 등을 어떻게 찾을 수 있는지 모르겠다. 이것은 내가 사용하고있는 코드이다 :Objective-C/ALAssetsLibrary - 이미지 정보 및 Exif 정보 찾기

"설명 ALAsset - 유형 :

ALAssetsLibrary* library = [[ALAssetsLibrary alloc] init]; 
[library enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) { 
    if (group) { 
     [group setAssetsFilter:[ALAssetsFilter allPhotos]]; 
     [group enumerateAssetsUsingBlock:^(ALAsset *asset, NSUInteger index, BOOL *stop){ 
      if (asset){ 
       NSString *description = [asset description]; 
       NSLog(@"description %@", description); 

      } 
     }]; 
    } 
} failureBlock:^(NSError *error) { 
    NSLog(@"error enumerating AssetLibrary groups %@\n", error); 
}]; 

내가 내있는 NSString"설명 "로그 사실 경우 변수, 난 (하나의 예시 이미지)이 정보가 나타납니다 사진, 의 URL : 자산 라이브러리 : // asset/asset.JPG? id = 766424BD-D28D-47F9-8E0F-AD8F19C4C732 & ext = JPG "

이제는 다른 정보 (폭, 높이, 이름 등)를 찾는 방법과 이미지의 EXIF ​​정보에 액세스 할 수 있는지 이해해야합니다.

감사합니다.

답변

1

가까운 사이입니다. 자산 설명을 로깅하는 대신 자산의 기본 표현의 메타 데이터를 로깅하려고합니다. 다음은 이미지의 메타 데이터가 포함 된 NSDictionary를 가져옵니다. 그런 다음 표준 objectForKey 호출을 사용하여 높이, 너비 등의 속성에 액세스 할 수 있습니다.

ALAssetsLibrary* library = [[ALAssetsLibrary alloc] init]; 
[library enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) { 
    if (group) { 
     [group setAssetsFilter:[ALAssetsFilter allPhotos]]; 
     [group enumerateAssetsUsingBlock:^(ALAsset *asset, NSUInteger index, BOOL *stop){ 
      if (asset){ 

       NSDictionary *data = [[asset defaultRepresentation] metadata]; 
       NSLog(@"%@",data); 
      } 
     }]; 
    } 
} failureBlock:^(NSError *error) { 
    NSLog(@"error enumerating AssetLibrary groups %@\n", error); 
}]; 
+0

Ah damn! 나는 너무 가깝다. 감사합니다 @ 0x7fffffff! 예를 들어 너비를 묻는 방법이 있습니까? 아니면 데이터 변수를 가져 와서 필요한 조각 만 가져 가야합니까? – Hieicker

+1

감사합니다. @ 0x7fffffff! 귀하의 예는 분명하고 간단합니다! – Hieicker