2011-09-28 16 views
5

Desidero essere in grado di aggiungere un commento di testo ai metadati di un file JPEG e riuscire a leggerlo da un'app per iPhone.Utilizzo di CGImageProperties per ottenere le proprietà EXIF ​​

Ho pensato che sarebbe stato abbastanza semplice dato che ios4 contiene il supporto per le informazioni EXIF. Così ho aggiunto i metadati utilizzando uno strumento di Windows denominata utilizzato AnalogExif e leggere di nuovo dalla mia applicazione utilizzando:

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] 

e che funziona ... a un certo punto :)

Quello che torno nel dizionario metadati è qualcosa del tipo:

(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; 
    }; 
} 

Ma questo è tutto quello che posso ottenere! Ho modificato il file JPEG con ogni editor EXIF ​​che riesco a trovare (per lo più PC dovrei dire) e anche se tutti dicono che ho aggiunto commenti JPEG e didascalie e parole chiave EXIF, nessuna di queste informazioni sembra essere disponibile da Apple SDK nella mia app.

Qualcuno è riuscito a impostare un campo di testo nei metadati di un jpeg e riuscire a leggerlo da un'app per iPhone?

non volevo usare una libreria di terze parti, se possibile

molte grazie in anticipo

risposta

4

Sei ragione nel pensare che iOS non supporta più i metadati di quello che stai vedendo. Probabilmente hai perso i dati quando hai creato uno UIImage e poi lo hai riconvertito in JPEG. Prova a NSData *jpeg = [NSData dataWithContentsOfFile:@"foo.jpg"] e dovresti vedere l'EXIF.

Problemi correlati