我正在使用java web服务和c#客户端。我已经在Base64 / jpeg格式中嵌入了图像。不幸的是,Lotus Notes(电子邮件客户端)中收到的图像(嵌入在邮件中)正在被修剪。
在我使用Alternateview(在c#中)之前,它工作正常且完美地显示图像。 但现在我修改了代码并在邮件正文中使用了Base64 / Jpg转换。
string base64String = null;
var matches = Regex.Matches(html, @"<img[^>]*?src\s*=\s*([""']?[^'"">]+?['""])[^>]*?>", RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace | RegexOptions.Multiline);
foreach (Match match in matches)
{
string src = match.Groups[1].Value;
src = src.Trim('\"');
using (System.Drawing.Image image = System.Drawing.Image.FromFile(src))
{
if (File.Exists(src))
{
var ext = Path.GetExtension(src);
if (ext.Length > 0)
{
ext = ext.Substring(1);
using (MemoryStream m = new MemoryStream())
{
image.Save(m, image.RawFormat);
byte[] imageBytes = m.ToArray();
base64String = Convert.ToBase64String(imageBytes);
src = string.Format("'data:image/{0};base64,{1}'", ext, base64String);
html = html.Replace(match.Groups[1].Value, src);
// return base64String;
}
}
}
}
`
请帮助。
PS ::抱歉我的英语不好。!!
EDIT ::
添加测试邮件正文(也添加了标记)