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,它讨论了这个问题以及可能的解决方案。除了快速搜索以找到它之外,我没有做任何其他事情,因此可能会有更好的解决方案
我目前正尝试在 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,它讨论了这个问题以及可能的解决方案。除了快速搜索以找到它之外,我没有做任何其他事情,因此可能会有更好的解决方案