我正在创建一个应用程序,允许用户在核心数据图中拍摄和存储照片,然后从应用程序中通过电子邮件将这些照片发送到表中。
我已经能够通过将资产路径转换为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然而,这并不起作用。我如何将这些照片加载到电子邮件中?
发布于 2012-03-28 14:56:03
您是如何发送电子邮件的?通过MFMailComposeViewController?我原以为你会通过addAttachmentData:mimeType:fileName:附加文件。这可能是最简单的。
或者,如果您想构建一个自定义的、漂亮的html主体,其中包含图像,那么您可能需要对图像进行base64编码。然后在html中放入类似<img src="data:image/gif;base64,XXX">的内容,其中XXX是图像的base64编码。当我这样做的时候,我用Google GTMBase64在GTM中编码:
http://code.google.com/p/google-toolbox-for-mac/
这里也有关于base64库的文章,例如
https://stackoverflow.com/questions/9899445
复制相似问题