在app中创建的电子邮件jpg,包括元数据

Ted*_*Ted 1 email iphone metadata photolibrary

我已成功将元数据添加到应用程序中创建的jpg,并使用.将其保存到相机胶卷

writeImageToSavedPhotosAlbum: metadata: completionBlock: 
Run Code Online (Sandbox Code Playgroud)

方法.但是,我还想选择通过电子邮件向这个jpg发送元数据(例如位置,退出等).我用它来发邮件:

MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;
NSData *myData =  UIImageJPEGRepresentation(emailImage, 0.8);
[picker addAttachmentData:myData mimeType:@"image/jpg" fileName:@"photo"];
Run Code Online (Sandbox Code Playgroud)

但是,这不会导致元数据.
当通过Apple的照片应用程序发送保存的图像时,包含元数据.有没有办法将元数据嵌入NSData附件?有任何想法吗?

ale*_*x-i 7

UIImage不包含任何元数据.如果您有图像的路径直接从它读取数据.如果从相机胶卷中取回图像imagePickerController:didFinishPickingMediaWithInfo:,则可以使用UIImagePickerDelegate中的方法,该方法还包含信息词典中的元数据.

mimeType也应该是"image/jpeg".

编辑: 要添加元数据,UIImage您可以使用ImageIO框架:您可以CGImageDestination从UIImage 创建对象,使用它添加元数据CGImageDestinationSetProperties,然后从中获取原始数据(包括压缩图像和元数据)