2015-06-29 56 views
0

我有一个关于如何将exif数据转换为NSData类型的图像的问题。我得到的图像相当于在相机中捕捉图像或从相机胶卷中获取图像。转换图像与exif到NSData类型

(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 

选择图片后,我去了这里将图像与exif转换为NSData并发送到服务器数据库。不过,我尝试了很多方法,但失败了。当我得到数据库中的图片文件时,它丢失了图片的所有退出和元数据信息。

所以,我想问一下,有没有什么办法来转换图像,并保持exif和元数据在NSData类型?

谢谢大家。

回答

2

你可以做这样的事情,但如果你不需要NSData的进一步操作,我强烈建议您保存在磁盘上的图像:

  NSDictionary *metadata = [info objectForKey: UIImagePickerControllerMediaMetadata]; 
      CFURLRef url = (__bridge_retained CFURLRef)[NSURL fileURLWithPath:path]; 
      CFMutableDictionaryRef metadataImage = (__bridge_retained CFMutableDictionaryRef) metadata; 
      NSMutableData * destData = [NSMutableData data]; 
      CGImageDestinationRef destination = CGImageDestinationCreateWithData((__bridge CFMutableDataRef)destData,kUTTypeJPEG,1,NULL); 
      CGImageDestinationAddImage(destination, uiImage.CGImage, metadataImage); 
      if (!CGImageDestinationFinalize(destination)) { 
       DLog(@"Failed to write image to %@", path); 
      } 
      else { 
       DLog(@"Writing image to %@", path); 

      }