2011-09-28 6 views
5

JPEG의 메타 데이터에 텍스트 주석을 추가하고 iphone 앱에서 텍스트 주석을 다시 읽고 싶을 수 있습니다.CGImageProperties를 사용하여 EXIF ​​속성 가져 오기

ios4는 EXIF ​​정보를 지원하기 때문에 상당히 간단하다고 생각했습니다. 그래서 AnalogExif을 사용하여 다시 내 응용 프로그램에서 읽을라는 Windows 도구를 사용하여 메타 데이터를 추가 :

NSData *jpeg = UIImageJPEGRepresentation(myUIImage,1.0); 

CGImageSourceRef source = CGImageSourceCreateWithData((CFDataRef)jpeg, NULL); 
NSDictionary *metadata = (NSDictionary *) CGImageSourceCopyPropertiesAtIndex(source,0,NULL); 

NSMutableDictionary *metadataAsMutable = [[metadata mutableCopy]autorelease]; 
[metadata release]; 

NSMutableDictionary *EXIFDictionary = [[[metadataAsMutable objectForKey:(NSString *)kCGImagePropertyExifDictionary] 

을 그리고 그 작동 ...

내가 다시 메타 데이터 사전에 무엇을 얻을 : 지점으로 다음과 같습니다 :

(gdb) po metadata 
{ 
    ColorModel = RGB; 
    Depth = 8; 
    Orientation = 1; 
    PixelHeight = 390; 
    PixelWidth = 380; 
    "{Exif}" =  { 
     ColorSpace = 1; 
     PixelXDimension = 380; 
     PixelYDimension = 390; 
    }; 
    "{JFIF}" =  { 
     DensityUnit = 0; 
     JFIFVersion = (
     1, 
     1 
    ); 
     XDensity = 1; 
     YDensity = 1; 
    }; 
    "{TIFF}" =  { 
     Orientation = 1; 
    }; 
} 

하지만 그게 전부입니다! 나는 EXIF ​​에디터를 가지고 JPEG 파일을 편집했다. (대부분 PC라고 말하기도하지만) JPEG 주석과 EXIF ​​캡션과 키워드를 추가했다고해도, 그 정보는 Apple SDK에서 구할 수 없다. 내 앱에서.

아무도 jpeg의 메타 데이터에 텍스트 필드를 설정하여 아이폰 앱에서 다시 읽을 수있게 관리 한 사람이 있습니까?

나는 당신이 아이폰 OS 당신이보고있는 것보다 더 많은 메타 데이터를 지원하지 않습니다 생각에서 올바른있어 사전

답변

4

에 모든 경우에 가능한

많은 감사를 타사 라이브러리를 사용하지 않았다. UIImage을 만든 다음 JPEG로 다시 변환했을 때 데이터가 손실되었을 수 있습니다. NSData *jpeg = [NSData dataWithContentsOfFile:@"foo.jpg"]을 시도하면 EXIF가 표시됩니다.