目标C:拍摄一张照片并附在电子邮件中



我正在尝试制作一个应用程序,使用设备的相机拍摄照片,然后将其附加到电子邮件中。我试着给它编码,但图像没有附加。我所做的是,拍完照片后,它将首先在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"];

可能出了什么问题?

[UIImage imageNamed:]不加载任意图像。它可以从你的捆绑包中加载图像(你在Xcode中添加的图像),就这样

代替UIImage *myImage = [UIImage imageNamed:jpgPath];

您希望使用imageWithContentsOfFile:从磁盘加载映像。

UIImage *myImage = [UIImage imageWithContentsOfFile:jpgPath];

还有:

您正在创建一个png图像,并将其附加为jpeg。

而且,不必将NSData保存到磁盘,只需在几秒钟后加载即可。将imgData引用传递给邮件编写器。

还有。你可以用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];

最新更新