如何将C#生成的QRCode图片嵌入HTML页面?
解决C#生成二维码后在HTML中显示的问题
你需要把内存中的Image对象转换成Data URI格式(Base64编码的图片数据),HTML的img标签支持这种格式作为src值,无需依赖本地文件或网络路径。
步骤1:修改C#代码生成Data URI
在原有生成二维码的代码基础上,添加将Image转成Base64字符串的逻辑:
string text = "QRCode test"; QRCodeGenerator qr = new QRCodeGenerator(); QRCodeData data = qr.CreateQrCode(text, QRCodeGenerator.ECCLevel.Q); QRCode code = new QRCode(data); using (Image img = code.GetGraphic(5)) using (MemoryStream ms = new MemoryStream()) { // 将图片保存到内存流,选择PNG格式保证二维码清晰度 img.Save(ms, System.Drawing.Imaging.ImageFormat.Png); byte[] imageBytes = ms.ToArray(); // 构造Data URI格式的字符串 string imgDataUri = $"data:image/png;base64,{Convert.ToBase64String(imageBytes)}"; // 将imgDataUri传递给HTML渲染逻辑即可 // 比如在后端渲染页面时直接嵌入,或通过接口返回给前端 }
步骤2:在HTML中使用Data URI
把生成的imgDataUri直接赋值给img标签的src属性:
<img src='{imgDataUri}'>
注意事项
- 用
using包裹Image和MemoryStream,确保资源被正确释放,避免内存泄漏。 - 若生成的二维码尺寸过大,Data URI会增加HTML体积,此时可将图片保存到服务器磁盘,再给
src设置对应文件路径;但二维码通常体积较小,Data URI是更简便的方案。
内容的提问来源于stack exchange,提问作者Emanuel Santos
相关产品推荐
相关产品推荐

