如何将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需要自行添加参数。

 结语

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

猜你喜欢

转载自blog.csdn.net/ALaDingPro/article/details/82702447