2011-04-17 6 views
1

Existe-t-il un moyen de lire les commentaires PNG dans iOS sans procéder à l'analyse manuelle des données? J'ai des fichiers PNG qui stockent les métadonnées auxquelles j'aimerais accéder lorsque je les charge dans un objet UIImage, mais je n'ai pas trouvé de moyen facile de le faire.Lecture de commentaires PNG (données zTXt non compressées)

Répondre

2

Il ne semble pas y avoir de moyen facile de le faire; Je ne le vois pas mentionné dans le list of properties available from a CGImageSource, par exemple. Et il n'y a certainement pas moyen de le faire à partir d'un UIImage, cette classe ne conserve (publiquement) aucune métadonnée au-delà de l'indicateur d'orientation EXIF, et cela seulement pour que le code ne tourne pas l'image en la lisant.

Heureusement que le format PNG est well-documented et très facile à analyser, l'extraction des fragments zTXt ne devrait donc pas poser de problème.

2

Toutes les données que vous pouvez obtenir "facilement" sans écrire votre propre analyseur de données vont être dans le dictionnaire des propriétés de l'image.

UIImage* image; // assuming this exists 
NSData* pngData = UIImagePNGRepresentation(image); 

CGImageSourceRef imgSrc = CGImageSourceCreateWithData(pngData,NULL); 
CFDictionaryRef imgSrcProps = CGImageSourceCopyProperties(imgSrc,NULL); 

NSDictionary* imgSrcPropDict = (NSDictionary*)imgSrcProps; 
NSLog(@"image properties: %@", imgSrcPropDict); 

CFRelease(imgSrcProps); 
CFRelease(imgSrc); 

Hope this helps, ne sais pas si ce que vous recherchez est là

Questions connexes