SSRS - 访问 System.Drawing.Image.FromStream

SSRS - Accessing System.Drawing.Image.FromStream

我目前正尝试在 SSRS 中将图像居中显示在屏幕上。虽然不直接支持此功能,但可以根据图像大小提供自定义填充。这是数据库提供的外部图像,所以图像反复变化,我不能硬编码填充。我正在尝试使用以下方法检索图像的宽度:

=System.Drawing.Image.FromStream(new System.IO.MemoryStream(CType(System.Convert.FromBase64String(Fields!HomeLogoImage.Value), Byte()))).Width

但是,当将其输入到表达式占位符中时,无法识别“FromStream”。

我可以确认我已经添加了对 system.drawing 程序集的引用并且我使用的是版本 4.0.0.0。

我很长一段时间以来第一次回到 SSRS,因此我们将非常欢迎任何对此的建议。或者即使有一种方法可以在不使用 System.Drawing 方法的情况下使图像居中,我也很想听听。

非常感谢。

尝试以下操作。我已经根据我周围的一些 .png 数据库图像对此进行了测试,它似乎有效。

=System.Drawing.Image.FromStream
                    (new System.IO.MemoryStream(CType(Fields!Image.Value,Byte())))
                    .Width

OP 更新后编辑

要对外部图像执行相同操作,您可以使用以下方法

=System.Drawing.Image.FromStream
                    (new System.IO.FileStream(Fields!HomeLogoImage.Value, IO.FileMode.Open))
                    .Width

这假定 HomeLogoImage 字段包含图像的有效路径和文件名。

但是您可能会遇到权限错误。我自己并没有这样做,所以我只能向您指出 link,它讨论了这个问题以及可能的解决方案。除了快速搜索以找到它之外,我没有做任何其他事情,因此可能会有更好的解决方案

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/31490332-c2f7-48a4-9928-29916ce002b4/request-for-the-permission-of-type-systemsecuritypermissionssecuritypermission-mscorlib?forum=sqlreportingservices