2012-02-21 2 views
3

나는 objective-c에서 초보자이며 UIImagePickerControllerMediaMetaData에서 정보를 읽는 데 문제가 있습니다.촬영 한 그림의 메타 데이터에서 "{TIFF}"정보를 읽는 방법

-(void) imagePickerController:(UIImagePickerController *)imagepicker didFinishPickingMediaWithInfo:(NSDictionary *)info { 

//This line is fine. 
NSDictionary *metadata = [info objectForKey:UIImagePickerControllerMediaMetadata]; 

//This line fail to operate... 
NSArray *tiffData = [metadata objectForKey:Exif]; 

메타 데이터를 가져올 수 있습니다. 그러나 메타 데이터 내부의 정보는 약간 혼란스럽고 아래에는 내부 메타 데이터가 나와 있습니다.

UIImagePickerControllerMediaMetadata =  { 
    DPIHeight = 72; 
    DPIWidth = 72; 
    Orientation = 6; 
    "{Exif}" =   { 
     ApertureValue = "2.526068811667588"; 
     BrightnessValue = "-1.739497174308802"; 
     ColorSpace = 1; 
     DateTimeDigitized = "2012:02:21 11:53:44"; 
     DateTimeOriginal = "2012:02:21 11:53:44"; 
     ExposureMode = 0; 
     ExposureProgram = 2; 
     ExposureTime = "0.06666666666666667"; 
     FNumber = "2.4"; 
     Flash = 32; 
     FocalLenIn35mmFilm = 32; 
     FocalLength = "2.03"; 
     ISOSpeedRatings =    (
      800 
     ); 
     MeteringMode = 5; 
     PixelXDimension = 960; 
     PixelYDimension = 720; 
     SceneType = 1; 
     SensingMethod = 2; 
     Sharpness = 0; 
     ShutterSpeedValue = "3.906905022631062"; 
     WhiteBalance = 0; 
    }; 
    "{TIFF}" =   { 
     DateTime = "2012:02:21 11:53:44"; 
     Make = Apple; 
     Model = "iPad 2"; 
     Software = "5.0.1"; 
     XResolution = 72; 
     YResolution = 72; 
    }; 
}; 

그래서 어떻게 "{Exif}"와 "{TIFF}"를 읽을 수 있습니까?

나를 도와 주셔서 감사합니다. 나는 어디에서나 발견되었고 대답을 얻지 못했습니다 ...

답변

8

{EXIF}{TIFF} 항목은 메타 데이터 사전에 포함 된 사전입니다. 당신은 코드를 사용하여 그들에 대한 참조를 얻을 수 있습니다 :

NSDictionary *metadata = [info objectForKey:UIImagePickerControllerMediaMetadata]; 
NSDictionary *exifMetadata = [metadata objectForKey:(id)kCGImagePropertyExifDictionary]; 
NSDictionary *tiffMetadata = [metadata objectForKey:(id)kCGImagePropertyTiffDictionary]; 

메타 데이터 키의 모두는 CGImageProperties Reference 문서 페이지에 설명되어 있습니다. 모든 키가 CFStringRef이기 때문에 (id) 캐스트가 필요하며 NSString으로 수신자 부담 브리징이 필요합니다.

+0

감사합니다. 당신은 정말 나를 많이 도왔습니다 –

+2

상수를 얻으려면 #import 를 잊지 마세요. – Anth0

관련 문제