我正在创建一个应用程序,允许用户在Core Data图表中拍摄和存储照片,然后通过应用程序在桌面上发送这些照片。
我已经能够通过将资产路径转换为NSURL值并引用它们来保存SQlite数据库中的照片 - 以防止数据库遭受内存问题。
我的最后一项任务是允许用户在精美的桌子上发送照片,并附上照片说明。这是从显示图像的UITableView自动生成的。
我正在使用以下内容生成HTML电子邮件:
- (NSString *)generateHTMLBody {
NSString *res = @"<HTML><body><table border=""1"">\n";
for (int i=0; i < [self.fetchedResultsController.fetchedObjects count]; i++) {
NSString *rowCount = [NSString stringWithFormat:@"%d.", i+1];
NSString *tmp = (NSString *)[imageList objectAtIndex:0];
NSString *imageString = [NSString stringWithFormat:@"<img src=""%@"" />",tmp];
res = res = [res stringByAppendingString:@"<tr><td>"];
res = res = [res stringByAppendingString:rowCount];
res = res = [res stringByAppendingString:@"</td>\n"];
res = res = [res stringByAppendingString:@"<td>"];
res = res = [res stringByAppendingString:imageString];
res = res = [res stringByAppendingString:@"</td>\n"];
res = res = [res stringByAppendingString:@"<td>"];
res = res = [res stringByAppendingString:tmp];
res = res = [res stringByAppendingString:@"</td></tr>\n"];
}
res = [res stringByAppendingString:@"</table></body></html>\n"];
return res;
}
我要做的是将Core Data图中的图像加载到HTML img标记中。我将以下资产路径拉入var tmp:
assets-library://asset/asset.JPG?id=2F62642E-00B3-4D85-82D2-A6A1F064F2CE&ext=JPG
但是,这不起作用。如何将这些照片加载到电子邮件中?
答案 0 :(得分:1)
您是如何发送电子邮件的?通过MFMailComposeViewController
?我原以为你会通过addAttachmentData:mimeType:fileName:
附加文件。这可能是最简单的。
或者,如果你想构建一个包含图像的自定义,漂亮的html主体,你可能想要对你的图像进行base64编码。然后在html中添加<img src="data:image/gif;base64,XXX">
之类的内容,其中XXX
是图像的base64编码。当我这样做时,我在GTM中使用Google GTMBase64编码:
http://code.google.com/p/google-toolbox-for-mac/
这里也有关于base64库的文章,例如