2011-09-28 62 views
5

我希望能夠將文本註釋添加到JPEG的元數據中,並能夠從iphone應用程序中讀取它。使用CGImageProperties獲取EXIF屬性

我認爲這將是相當簡單的,因爲ios4包含對EXIF信息的支持。所以我添加使用的是Windows工具稱爲元數據使用AnalogExif並使用讀它從我的應用程序回:

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的元數據中設置文本字段,並設法從iphone應用程序讀回它?

我不想提前

回答

4

到,如果在所有使用第三方庫可能

非常感謝你在想,它的iOS比你看到的支持更多的元數據是正確的。您在創建UIImage時可能會丟失數據,然後將其轉換回JPEG。試試NSData *jpeg = [NSData dataWithContentsOfFile:@"foo.jpg"],你應該看到EXIF。