我们如何从UIImagePickerController中选择UIImage获取Exif信息?
我为此做了很多研发并获得了很多回复,但仍未能实现这一点.
请帮我解决这个问题.
提前致谢..
我需要获取iOS设备相机拍摄的图像的GPS坐标.我不关心相机胶卷图像,只关心用UIImagePickerControllerSourceTypeCamera拍摄的图像.
我已经阅读了很多stackoverflow的答案,比如来自UIImage的Get Exif数据 - UIImagePickerController,它假设你正在使用AssetsLibrary框架,它似乎不适用于相机图像,或者使用CoreLocaiton从应用程序获取纬度/经度本身,而不是图像.
使用CoreLocation 不是一种选择.按下快门按钮时,这不会给我坐标.(借助基于CoreLocation解决方案,您可能需要你带了相机视图之前或之后记录COORDS,当然,如果设备在移动坐标将是错误的.这个方法应该用固定设备工作).
我只是iOS5,所以我不需要支持旧设备.这也适用于商业产品,因此我无法使用http://code.google.com/p/iphone-exif/.
那么,从iOS5中相机返回的图像中读取GPS数据有哪些选择?我现在能够想到的是将图像保存到相机胶卷,然后使用AssetsLibrary,但这看起来很糟糕.
谢谢!
这是我根据Caleb的答案编写的代码.
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
NSData *jpeg = UIImageJPEGRepresentation(image,1.0);
CGImageSourceRef source ;
source = CGImageSourceCreateWithData((__bridge CFDataRef)jpeg, NULL);
NSDictionary *metadataNew = (__bridge NSDictionary *) CGImageSourceCopyPropertiesAtIndex(source,0,NULL);
NSLog(@"%@",metadataNew);
Run Code Online (Sandbox Code Playgroud)
我的控制台显示:
2012-04-26 14:15:37:137 ferret[2060:1799] {
ColorModel = RGB;
Depth = 8;
Orientation = 6;
PixelHeight = 1936;
PixelWidth = 2592;
"{Exif}" = {
ColorSpace = 1;
PixelXDimension = 2592;
PixelYDimension = 1936;
};
"{JFIF}" = {
DensityUnit = 0; …Run Code Online (Sandbox Code Playgroud)