如何使用StringBuilder在HTML中追加图像字节数组

时间:2018-04-05 09:32:33

标签: c# arrays

我无法在动态HTML中附加图片。我以byte []形式获取图像, 所以我试图将它转换为图像,并希望在字符串构建器中将其附加到HTML中。

但我无法这样做。 我的代码在

之下
public StringBuilder getEmailBackGroundTemplate(string CompanyName, byte[] CompanyLogo, string CompanyURL, string ContactPersonName)
{
    StringBuilder sb = new StringBuilder();
    sb.Append("<table cellpadding='0' cellspacing='0' border='0' width='100%'>");
    sb.Append("<tr>");
    sb.Append("<td style='width: 10%;'></td>");
    sb.Append("<td width='75%'>");
    sb.Append("<table width='100%' border='0' cellpadding='0' cellspacing='0' style='border: 1px solid #00497c;'>");
    sb.Append("<tr>");
    sb.Append("<td><a href='" + CompanyURL + "'>");

    if (CompanyLogo != null && CompanyLogo.Length > 0)
    {
        //Mohan: if Company logo exist then Attach in email
        MemoryStream ms = new MemoryStream(CompanyLogo, 0 ,CompanyLogo.Length);
        ms.Write(CompanyLogo, 0, CompanyLogo.Length);
        Image LogoImage = Image.FromStream(ms, true);

        sb.Append("<img src='" + LogoImage + "' border='0' style='margin-top: 5px; width: 175px; height: 53px; margin-left: 5px; margin-bottom: 5px;'></a></td>");
    }

    sb.Append("<td ></td>");
    sb.Append("</tr>");
    sb.Append("</table>");

    return sb;
}

我无法追加,请任何人都可以帮助我如何在不保存为文件的情况下将其附加到我想要将其附加到stringbuilder中。

2 个答案:

答案 0 :(得分:1)

您可以将字节数组直接转换为base64字符串并用作数据URI,例如

var imageString = string.Format("data:image/png;base64,{0}", Convert.ToBase64String(CompanyLogo));
sb.Append("<img src='" + imageString + "' border='0' style='margin-top: 5px; width: 175px; height: 53px; margin-left: 5px; margin-bottom: 5px;'></a></td>");

答案 1 :(得分:0)

您需要将图片保存为文件并指向其来源,或者阅读“数据URI”。

请看This回答。