UIImagePickerController并從現(xiàn)有照片中提取EXIF數(shù)據(jù)眾所周知,UIImagePickerController在選擇后不會返回照片的元數(shù)據(jù)。但是,應(yīng)用程序商店中的一些應(yīng)用程序(Mobile Fotos,PixelPipe)似乎能夠讀取原始文件和存儲在其中的EXIF數(shù)據(jù),使應(yīng)用程序能夠從所選照片中提取地理數(shù)據(jù)。他們似乎是通過從/ private / var / mobile / Media / DCIM / 100APPLE /文件夾中讀取原始文件并通過EXIF庫運(yùn)行它來完成此操作。但是,我無法找到一種方法來匹配從UIImagePickerController返回的照片到磁盤上的文件。我已經(jīng)探索了文件大小,但原始文件是JPEG,而返回的圖像是原始UIImage,因此無法知道所選圖像的文件大小。我正在考慮制作一個哈希表并匹配每個圖像的前x個像素。雖然這看起來有點(diǎn)過頭了,但可能很慢。有什么建議?
3 回答

長風(fēng)秋雁
TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個贊
這適用于iOS5(beta 4)和相機(jī)膠卷(你需要為.h中的塊輸入defs):
-(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{ NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType]; if ([mediaType isEqualToString:(NSString*)kUTTypeImage]) { NSURL *url = [info objectForKey:UIImagePickerControllerReferenceURL]; if (url) { ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *myasset) { CLLocation *location = [myasset valueForProperty:ALAssetPropertyLocation]; // location contains lat/long, timestamp, etc // extracting the image is more tricky and 5.x beta ALAssetRepresentation has bugs! }; ALAssetsLibraryAccessFailureBlock failureblock = ^(NSError *myerror) { NSLog(@"cant get image - %@", [myerror localizedDescription]); }; ALAssetsLibrary *assetsLib = [[ALAssetsLibrary alloc] init]; [assetsLib assetForURL:url resultBlock:resultblock failureBlock:failureblock]; }}

蕭十郎
TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個贊
有一種方法 iOS 8
不使用任何第三方EXIF
庫。
#import <Photos/Photos.h>- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { NSURL *url = [info objectForKey:UIImagePickerControllerReferenceURL]; PHFetchResult *fetchResult = [PHAsset fetchAssetsWithALAssetURLs:@[url] options:nil]; PHAsset *asset = fetchResult.firstObject; //All you need is //asset.location.coordinate.latitude //asset.location.coordinate.longitude //Other useful properties of PHAsset //asset.favorite //asset.modificationDate //asset.creationDate}
添加回答
舉報(bào)
0/150
提交
取消