阅读PNG评论(未压缩的zTXt数据)

时间:2011-04-17 03:02:29

标签: objective-c ios

有没有办法在iOS中读取PNG注释而无需进行手动数据解析?我有PNG文件存储我想要在将它们加载到UIImage对象时访问的元数据,但我找不到任何简单的方法来执行此操作。

2 个答案:

答案 0 :(得分:2)

似乎没有任何简单的方法可以做到;例如,我没有在list of properties available from a CGImageSource中看到它。肯定没有办法从UIImage中做到这一点,该类没有(公开)保留超出EXIF方向标志的任何元数据,并且只有这样代码才能在读取时旋转图像。

幸运的是,PNG是well-documented并且很容易解析,所以提取zTXt块应该不是什么大问题。

答案 1 :(得分:2)

在不编写自己的数据解析器的情况下,您可以“轻松”获得的任何数据都将位于图像属性字典中。

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);

希望这会有所帮助,不确定你所寻找的是否在那里