我正在尝试创建一个使用设备相机拍摄照片然后将其附加到电子邮件的应用。我试图编码但图像没有附加。我正在做的是拍摄照片后,它将首先在UIImageView
上查看,然后点击“完成”按钮将图像保存到沙箱并检索它以便附件。
这是我的代码: 用于保存图像...
NSData *imgData = UIImageJPEGRepresentation(attachingImage, 1);
jpgPath = [NSHomeDirectory() stringByAppendingPathComponent:@"defectImg.jpg"];
[imgData writeToFile:jpgPath atomically:YES];
附件......
UIImage *myImage = [UIImage imageNamed:jpgPath];
NSData *myImageData = UIImagePNGRepresentation(myImage);
[tempMailCompose addAttachmentData:myImageData mimeType:@"image/jpeg" fileName:@"defectImage.jpg"];
可能出现什么问题?
答案 0 :(得分:2)
[UIImage imageNamed:]
不会加载任意图片。它可以从你的包中加载图像(你在Xcode中添加的图像),就是这样。
而不是UIImage *myImage = [UIImage imageNamed:jpgPath];
您想使用imageWithContentsOfFile:
从磁盘加载图片。
UIImage *myImage = [UIImage imageWithContentsOfFile:jpgPath];
另外:
您正在创建一个png图像并将其作为jpeg附加。
并且没有必要将NSData保存到磁盘,只需在几秒钟后加载它。将imgData引用传递给邮件编辑器。
答案 1 :(得分:0)
另外。你可以用html写一封信。所以你决定把图片放在哪里。
MFMailComposeViewController *mailController = [MFMailComposeViewController new];
mailController.mailComposeDelegate = self;
NSString *subject = [NSString stringWithFormat:@"%@ by %@", m_art.title, [m_art.author authorFullNameByReverse:NO]];
[mailController setSubject:subject];
NSString *body = [NSString stringWithFormat:@"<html><body>Hi,<br>"];
body = [body stringByAppendingFormat:@"<img src='%@' width = '50%%' height = '50%%'><br>", [Utils urlAtArtPath:m_art.url]];
body = [body stringByAppendingFormat:@"More info here: <a href='%@'>%@</a></body></html>", m_art.url, m_art.url];
m_mail.enabled = NO;
[mailController setMessageBody:body isHTML:YES];