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

IronBarCode生成QRCode转Stream/Byte[]报错问题咨询

解决IronBarCode生成二维码转Stream/Byte[]时的路径语法错误问题

问题原因

你遇到的报错并非因为传入URL格式字符串,而是可能对ToJpegStream()和ToJpegBinaryData()方法的使用存在误解,或是旧版本IronBarCode的方法实现存在异常。这两个无参方法本应直接返回内存流或字节数组,无需传入文件路径。

解决方案

方案1:使用SaveAsJpeg方法写入内存流(替代原方法)

绕过可能存在问题的ToJpegStream()和ToJpegBinaryData(),直接通过SaveAsJpeg将二维码写入MemoryStream,再转换为所需类型:

var absolute = Request.Scheme + "://" + Request.Host + url;
var qrcode = IronBarCode.QRCodeWriter.CreateQrCode(absolute);
qrcode.AddAnnotationTextAboveBarcode(device.Name);
qrcode.AddBarcodeValueTextBelowBarcode(absolute);

// 获取Byte[]
byte[] byteArray;
using (var ms = new MemoryStream())
{
    qrcode.SaveAsJpeg(ms);
    byteArray = ms.ToArray();
}

// 获取Stream(使用前需重置流位置)
Stream qrStream = new MemoryStream();
qrcode.SaveAsJpeg(qrStream);
qrStream.Position = 0;

方案2:更新IronBarCode至最新版本

如果坚持使用ToJpegStream()和ToJpegBinaryData(),尝试更新IronBarCode到最新稳定版,旧版本的方法可能存在参数解析异常的bug:

  • 通过NuGet包管理器更新IronBarCode包

额外检查项

确认device.Name和absolute变量中不存在系统路径敏感字符(如\、/、:等),虽然注释文本不应影响路径解析,但极端情况可能触发异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 20:35:18