2015-06-29 112 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); 

      }