在使用 UIImagePickerController 拍照后,我正在使用 MessageUI 框架通过电子邮件发送和图像。当我拍照然后调用邮件邮件消息界面时,我得到了撰写窗口。在 iPod touch (iOS 4.3.5) 和 iPad (iOS 5.0.1) 上进行测试时,我在撰写窗口的正文中看到了图像附件。在 iPhone (4S iOS 5.0.1) 上进行测试时,图像不会出现在撰写窗口中,而是我看到一个图像附件大小的框,其中嵌入了一个带有“?”的蓝色小框。在里面。
在这两种情况下,当发送邮件消息时,图像都会出现在邮件应用程序(iOS 设备和 Mac)中收到的消息中。
我能做些什么来解决这个问题?
更新:我通过更改解决了这个问题:
NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(imageToSend)]
到:
NSData *imageDataJPG = [NSData dataWithData:UIImageJPEGRepresentation(imageToSend, 1.0)];
我在 UIKit 文档中看不到 UIImagePNGRepresentation 中有任何内容无法在 iPhone 上运行...
(Xcode 4.2.1、ARC、5.0 SDK、部署目标 4.3)
这是编写消息的代码:
-(void)displayComposerSheet
{
MFMailComposeViewController *mailPicker = [[MFMailComposeViewController alloc] init];
mailPicker.mailComposeDelegate = self;
[mailPicker setSubject:@"Photo"];
NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(imageToSend)];
[mailPicker addAttachmentData:imageData mimeType:@"image/png" fileName:@"Photo"];
// Fill out the email body text.
NSString *line1 = [NSString stringWithFormat: @"I took this photo on my %@.\n", [[UIDevice currentDevice] model]];
NSString *body = [NSString stringWithFormat:@"%@", line1];
[mailPicker setMessageBody:body isHTML:NO];
// Present the mail composition interface.
[self presentModalViewController:mailPicker animated:YES];
}