cs代码:
右击项目-管理Nuget程序包,搜索:orcoder
QRCodeGenerator qrGenerator = new QRCodeGenerator();
QRCodeData qrCodeData = qrGenerator.CreateQrCode(strcode, QRCodeGenerator.ECCLevel.Q);
QRCode qrCode = new QRCode(qrCodeData);
Bitmap qrCodeImage = qrCode.GetGraphic(20);
//qrCodeImage.Save(filePath);
//先把图片,转成字节数组
byte[] bt = ImageToBytes(qrCodeImage );//Image.FromFile(imgfile)
//再把字节数组,转换成Base64String
string path = Convert.ToBase64String(bt);
List<ReportParameter> list = new List<ReportParameter>();
//图片Base64String添加到报表字符类型的参数path里
list.Add(new ReportParameter("path", path));
rptview.LocalReport.SetParameters(list);
/// <summary>
/// image对象转byte数组
/// </summary>
/// <param name="img"></param>
/// <returns></returns>
public static byte[] ImageToBytes(Image img)
{
ImageConverter imgconv = new ImageConverter();
byte[] b = (byte[])imgconv.ConvertTo(img, typeof(byte[]));
return b;
}
#region 返回图片的字节流
/// <summary>
/// 返回图片的字节流
/// </summary>
/// <param name="img">图片</param>
/// <returns></returns>
private byte[] BitmapToByte(Image img)
{
byte[] buf = null;
MemoryStream ms = new MemoryStream();
img.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
buf = ms.GetBuffer();
return buf;
}
#endregion
#region 返回图片
/// <summary>
/// 返回图片
/// </summary>
/// <param name="bt">图片字节</param>
/// <returns></returns>
public static System.Drawing.Image ByteToImage(byte[] bt)
{
MemoryStream buf = new MemoryStream(bt);
return System.Drawing.Image.FromStream(buf, true);
}
#endregion
rdlc部分:
1、添加报表项目“图片”
2、选中图片,右击“属性”,将参数path值转换下:System.Convert.FromBase64String(Parameters!path.Value)
3、效果如下: