You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用C#转换含Base64图片的HTML为图片失败,恳请协助解决

解决HtmlRenderer转换带Base64图片的HTML为空的问题

我看了你的代码,发现几个关键问题导致渲染出来的图片是空的,咱们一步步来修复:

1. 不要使用转义的HTML实体

你把HTML标签写成了&lt;html&gt;这种转义形式,HtmlRenderer会把这些当成普通文本处理,根本不会解析成HTML标签——这是内容为空的核心原因。直接使用原始的尖括号<>就行。

2. 正确管理Graphics资源

创建Graphics.FromImage(m_Bitmap)后没有释放资源,可能导致渲染过程中出现异常或资源占用问题。用using语句自动释放资源是更稳妥的做法。

3. 让渲染尺寸匹配Bitmap

你的Bitmap是400x600,但maxSize设成了500x500,尺寸不匹配可能导致渲染范围异常,建议让两者保持一致。

下面是修复后的完整代码:

using System.Drawing;
using System.Drawing.Imaging;
using HtmlRenderer;

public void ConvertHtmlToImage()
{
    // 统一Bitmap和渲染区域的尺寸
    int canvasWidth = 400;
    int canvasHeight = 600;
    
    using (Bitmap m_Bitmap = new Bitmap(canvasWidth, canvasHeight))
    using (Graphics graphics = Graphics.FromImage(m_Bitmap))
    {
        // 先把画布背景设为白色,避免生成黑底图片
        graphics.Clear(Color.White);
        
        PointF renderStartPoint = new PointF(0, 0);
        SizeF renderMaxSize = new SizeF(canvasWidth, canvasHeight);
        
        // 直接使用原始HTML,不用转义实体
        string htmlContent = @"<html><body>
            <p>This is a test html code</p>
            <p>This is another html line</p>
            <span style='left:356px;top:34px;position:absolute;'>
                <img src='data:image/gif;base64,R0lGODlhFABgAJEAAAAAAP///////wAAACH5BAEAAAIALAAAAAAUAGAAAAKKjI+py+0Po5y02ouz3rz7nwAiMJHXaEZphYJMK60UrGK0i9yPXI6l7cNxeAeUbsFLBXMKkzLUNDyhxaJRdpxdQ1dnFfmdRqVWIvkcE+XUP7S0i8aO4e46mLpj2rnszbK29/IVE2Dm8gchljio0iekYSiUJWgR2WD0WDZ5p2WJ55kZKjpKWmp66lIAADs='/>
            </span>
        </body></html>";
        
        HtmlRender.Render(graphics, htmlContent, renderStartPoint, renderMaxSize);
        m_Bitmap.Save(@"C:\Test.png", ImageFormat.Png);
    }
}

额外提醒

  • 确保你已经正确安装了对应的NuGet包(比如HtmlRenderer.WinForms),版本和你的.NET框架兼容;
  • 图片设置的left:356px在400px宽的画布上,可能会超出显示范围,如果需要完整显示,建议调整画布宽度或者图片的定位样式;
  • 渲染前清除画布背景为白色,避免生成的图片出现黑底问题。

内容的提问来源于stack exchange,提问作者Sharad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 09:09:54