报告查看器可能从表单传递图像?

lem*_*unk 5 c# qr-code image report

使用visual Studio ultimate 2012.

我正在构建一个要在报表查看器中打印的报表.到目前为止,我有一堆文本框,通过参数从我的表单文本框中获取其值.

到目前为止一切正常.

然后我遇到了一个重大问题.如何将图像从我的表单上的图像传递到报表上的图像?1数据预先存在于数据库中我相信我可以作为参数调用图像(不确定).更大的问题是另一个形象.

另一个图像使用生成QR图像的外部API.此图像在运行时显示在我的表单上的图片框中.我没有将图像保存在我不想要的任何地方.但我明白我是否需要.有什么办法我可以将QR图像从我的表格上的图像框传递到我的报告图像框吗?

更新继承错误的代码:

Microsoft.Reporting.WinForms.ReportParameter rpIMG1 = new Microsoft.Reporting.WinForms.ReportParameter("paramQRimg", base64String);
Microsoft.Reporting.WinForms.ReportParameter rpIMG2 = new Microsoft.Reporting.WinForms.ReportParameter("paramQRMi", "image/png");

reportViewer1.LocalReport.SetParameters(new Microsoft.Reporting.WinForms.ReportParameter[] { rp1, rp2, rp3, rp4, rp5, rp6, rp7, rp8, rp9, rp10, rpIMG1, rpIMG2 });
Run Code Online (Sandbox Code Playgroud)

设置参数部分出错是它所说的全部:

An error occurred during local report processing.
Run Code Online (Sandbox Code Playgroud)

不知道为什么它不喜欢这个

Tal*_*lha 8

 public string ImageToBase64(Image image, 
  System.Drawing.Imaging.ImageFormat format)
{
  using (MemoryStream ms = new MemoryStream())
  {
    // Convert Image to byte[]
    image.Save(ms, format);
    byte[] imageBytes = ms.ToArray();

    // Convert byte[] to Base64 String
    string base64String = Convert.ToBase64String(imageBytes);
    return base64String;
  }
}
Run Code Online (Sandbox Code Playgroud)

将图像转换为base64字符串,然后将其作为参数传递给报表,然后将报表图像设置为此参数.

  • @StevenSmith http://stackoverflow.com/questions/36693/how-can-i-render-a-png-image-as-a-memory-stream-onto-a-net-reportviewer-repor (2认同)