如何在RDLC图像控件中使用System.Drawing.Image?

Jak*_*ake 6 image rdlc

是否可以System.Drawing.Image在RDLC Image控件中使用?我读过的只有3种方法:

  • 数据库
  • 嵌入资源
  • 外部文件

谢谢谢谢.

编辑:从.NET或C#库继续CGM(计算机图形图元文件)格式?我现在得到System.Drawing.Image格式的图像,并希望将其显示为报告的一部分(作为图像)---这就是我想要做的.

HCL*_*HCL 5

不确定这是否是您正在寻找的,但是如果您在代码中有一个图像并且想要在报告中显示它,请创建一个包装对象,该对象具有一个以字节数组形式返回图像的属性,然后给出一个实例此包装类的有效图像作为 ReportDataSource 发送到报告。

就像是:

 ReportDataSource logoDataSource = new ReportDataSource();
 logoDataSource.Name = "LogoDS";
 logoDataSource.Value = new List<LogoWrapper>() { yourLogoWrapper };
 localReport.DataSources.Add(logoDS);
Run Code Online (Sandbox Code Playgroud)

在报告中,您可以查看数据库中的图像

 =First(Fields!LogoByteArrayProperty.Value, "LogoDS")
Run Code Online (Sandbox Code Playgroud)

包装看起来像这样:

 class LogoWrapper{
   ...
   public byte[] LogoByteArrayProperty{
      get{ 
         // Return here the image data
      }
   }
 }
Run Code Online (Sandbox Code Playgroud)

我经常使用这个。它的优点是我不必将图像添加到数据库或将其添加为每个报告的资源。此外,该应用程序可以说明应该使用哪个图像。请注意,rdlc 引擎必须知道给定的图像格式。最后一个问题是,如何将 system.drawing.image 转换为字节数组。我使用 WPF,因此我不知道。但我确信谷歌会非常可靠地回答这个问题。