如何将PNG图像(作为一个内存流)输出到.NET ReportViewer报表里(RDLC文件)

简介:

常用微软提供的ReportViewer控件生成报表,我在工作中遇到新的需求:需要将动态生成的二维码显示在RDLC报表文件里面。动态生成的二维码保存在内存中。可以参考stackoverflow

步骤一:将图像转换为Base64编码

private static string ConvertImageToBase64(Image image, ImageFormat format)
{
    byte[] imageArray;

    using (System.IO.MemoryStream imageStream = new System.IO.MemoryStream())
    {
        image.Save(imageStream, format);
        imageArray = new byte[imageStream.Length];
        imageStream.Seek(0, System.IO.SeekOrigin.Begin);
        imageStream.Read(imageArray, 0, imageStream.Length);
    }

    return Convert.ToBase64String(imageArray);
}

步骤二:将图像和MIME类型传递给报表

reportParams[0] = new ReportParameter("ReportLogo", base64Logo);
reportParams[1] = new ReportParameter("ReportLogoMimeType", "image/png");

_reportViewer.LocalReport.SetParameters(reportParams);

步骤三:在报告中,在图像上设置了以下属性(没有引号)

在RDLC文件中插入图像,设置属性为数据库。

  • MIMEType: "=Parameters!ReportLogoMimeType.Value"
  • Value: "=System.Convert.FromBase64String(Parameters!ReportLogo.Value)"

 注意:ReportLogoMimeType和ReportLogo需要自行添加参数。

 结语

关于二维码那一方面,如果有需要的可以留言,再出教程。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值