2

我正在尝试使用 MFMailComposeViewController 发送已添加到项目中的图像。

我在模拟器中尝试过,效果很好,我还可以在文本字段中看到图像,但是当我尝试发送邮件时,我在控制台上收到以下错误:

2 月 10 日 16:22:02 markuss-macbook-pro.speedport.ip RMC Konus[1825]:CGImageCreate:无效图像大小:0 x 0。

我的代码:

//Get the Image
UIImage *image = [UIImage imageNamed:@"image.png"];

NSData *imageData = UIImagePNGRepresentation(image);

//Create the Mail View
MFMailComposeViewController *mailCV = [[MFMailComposeViewController alloc] init];

[mailCV setMailComposeDelegate:self];



[mailCV addAttachmentData:imageData mimeType:@"image/png" fileName:@"exGraphic.png"];

//Show the View Controller
[self presentViewController:mailCV animated:YES completion:nil];
4

2 回答 2

2

问题只出现在模拟器中。我在许多不同的设备上检查了这些代码,它仍然可以正常工作。所以我会说,这是模拟器的问题......

于 2013-06-02T03:13:03.477 回答
0

UIImagePNGRepresentation 的返回值(来自苹果文档)-

包含 PNG 数据的数据对象,如果生成数据时出现问题,则返回 nil。如果图像没有数据或底层 CGImageRef 包含不受支持的位图格式的数据,此函数可能会返回 nil。

这意味着检查您的图像是否支持将其转换为具有 png 格式的 NSData,因为您在这里收到 NULL。您的错误CGImageCreate: invalid image size: 0 x 0.表明它是 NULL。
通过更改图像检查。也不要使用检查,[UIImage imageNamed:@""]因为这种方法有很多缺点。

另一件事,您已将 image.png 图像转换为 NSData 并发送另一个图像 exGraphic.png 作为附件,检查它

于 2013-02-10T17:04:39.063 回答