c#在html代码中使用ressource图像

时间:2017-11-21 14:16:42

标签: c# html

我需要发送带有Outlook的外部电子邮件,正文是html,它的工作正常,除了我尝试在我的资源中使用图像包含它并且它不起作用。

我的代码:

var Logo = Properties.Resources.Logo;
oMsg.HTMLBody = oMsg.HTMLBody + "<img src = \"" + Logo + "\">";

没有错误,但也没有图像!有人可以帮我吗?

由于

这里有新信息:

这是我的新代码:

    public static byte[] ExtractResource(Bitmap image)
{
    MemoryStream ms = new MemoryStream();

    image.Save(ms, ImageFormat.Jpeg);
    if (ms == null)
        return null;
    byte[] imageByteArray = ms.ToArray();
    return imageByteArray;
}
private static string Base64FromByteArray(byte[] image)
{
    return Convert.ToBase64String(image);
}

,电话是:

        String imgBase64 = Base64FromByteArray(ExtractResource(Properties.Resources.Logo));

    oMsg.HTMLBody = oMsg.HTMLBody + "<table><td><img src = \"data:image/jpeg;base64," + imgBase64 + "\" /></td></table>";

没有错误,但我的邮件中仍然没有Logo !!有人在我的代码中看到错误吗?

1 个答案:

答案 0 :(得分:2)

您需要使用数据网址方案在HTML正文的IMG标记中内联使用Base64编码的图像。

来自Embed BASE64-Encoded Images Inline In HTML

  

<img src=”data:<MIMETYPE>;base64,<BASE64_ENCODED_IMAGE>”>

     

<img src=”data:image/png;base64,iVBORw0KGgoAAAANS… (see source for full base64 encoded image) …8bgAAAAASUVORK5CYII=”>

上述链接中的其他有用链接:

RFC2397 - The "data" URI Scheme

Wikipedia - Data URI Scheme