在 SSRS 报告中显示 Tiff 文件

发布于 2024-07-06 13:00:57 字数 292 浏览 10 评论 0原文

我需要能够将扫描的 tiff 图像嵌入到一些 SSRS 报告中。

当我在 VS2005 中设计报告并添加图像控件时,tiff 图像显示得很好,但是当我构建它时。 我收到警告:

警告 2 [rsInvalidMIMEType] 图像“image1”的 MIMEType 属性值为“image/tiff”,这不是有效的 MIMEType。 c:\SSRSStuff\TestReport.rdl 0 0

并且我得到的不是图像,而是小红色 x。

有人克服这个问题了吗?

I have a requirement to be be able to embed scanned tiff images into some SSRS reports.

When I design a report in VS2005 and add an image control the tiff image displays perfectly however when I build it. I get the warning :

Warning 2 [rsInvalidMIMEType] The value of the MIMEType property for the image ‘image1’ is “image/tiff”, which is not a valid MIMEType. c:\SSRSStuff\TestReport.rdl 0 0

and instead of an image I get the little red x.

Has anybody overcome this issue?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

鸠书 2024-07-13 13:00:57

假设您通过 IIS 传递图像文件,请使用 ASP.NET 页面将图像格式和 mime 类型更改为您可以使用的内容。

Response.ContentType = "image/png";
Response.Clear();
using (Bitmap bmp = new Bitmap(tifFilepath))
  bmp.Save(Response.OutputStream, ImageFormat.Png);
Response.End();

Assuming you're delivering the image file via IIS, use an ASP.NET page to change image formats and mime type to something that you can use.

Response.ContentType = "image/png";
Response.Clear();
using (Bitmap bmp = new Bitmap(tifFilepath))
  bmp.Save(Response.OutputStream, ImageFormat.Png);
Response.End();
时光是把杀猪刀 2024-07-13 13:00:57

我一直在寻找有关如何在 SSRS 报告中显示 TIFF 图像的解决方案,但我找不到任何解决方案,并且由于 SSRS 不支持 TIFF,我认为将 TIFF 转换为支持的格式之一即可解决问题。 确实如此。 我不知道是否有类似的实现,但我只是发布这样其他人也可以受益。
请注意,这仅适用于数据库中保存有 TIFF 图像的情况。

Public Shared Function ToImage(ByVal imageBytes As Byte()) As Byte()
    Dim ms As System.IO.MemoryStream = New System.IO.MemoryStream(imageBytes)
    Dim os As System.IO.MemoryStream = New System.IO.MemoryStream()
    Dim img As System.Drawing.Image = System.Drawing.Image.FromStream(ms)

    img.Save(os, System.Drawing.Imaging.ImageFormat.Jpeg)

    Return os.ToArray()
End Function

以下是使用该代码的方法:
1. 在报告属性中,选择引用,单击添加并浏览 System.Drawing,版本=2.0.0.0
2.选择Code Property,复制粘贴上面的函数
3. 单击“确定”
4. 从工具箱中删除 Image 控件
4.1. 右键单击图像并选择图像属性
4.2. 将图像源设置为数据库
4.3. 在使用此字段中,单击表达式并粘贴下面的代码
=Code.ToImage(Fields!FormImage.Value)
4.4. 将适当的 Mime 设置为 Jpeg

Regards,
富尔伯特

I have been goggling fora solution on how to display a TIFF image in a SSRS report but I couldn't find any and since SSRS doesn's support TIFF, I thought converting the TIFF to one of the suppported format will do the trick. And it did. I don't know if there are similar implementation like this out there, but I am just posting so others could benefit as well.
Note this only applies if you have a TIFF image saved on database.

Public Shared Function ToImage(ByVal imageBytes As Byte()) As Byte()
    Dim ms As System.IO.MemoryStream = New System.IO.MemoryStream(imageBytes)
    Dim os As System.IO.MemoryStream = New System.IO.MemoryStream()
    Dim img As System.Drawing.Image = System.Drawing.Image.FromStream(ms)

    img.Save(os, System.Drawing.Imaging.ImageFormat.Jpeg)

    Return os.ToArray()
End Function

Here’s how you can use the code:
1. In the Report Properties, Select Refereneces, click add and browse System.Drawing, Version=2.0.0.0
2. Select the Code Property, Copy paste the function above
3. Click Ok
4. Drop an Image control from the toolbox
4.1. Right-Click the image and select Image Properties
4.2. Set the Image Source to Database
4.3. In the Use this field, Click expression and paste the code below
=Code.ToImage(Fields!FormImage.Value)
4.4. Set the appropriate Mime to Jpeg

Regards,
Fulbert

油饼 2024-07-13 13:00:57

谢谢 Peter 你的代码没有编译,但这个想法是合理的。

这是我的尝试,对我有用。

protected void Page_Load(object sender, EventArgs e)
{
    Response.ContentType = "image/jpeg";
    Response.Clear();        
    Bitmap bmp = new Bitmap(tifFileLocation);
    bmp.Save(Response.OutputStream, ImageFormat.Jpeg);
    Response.End();

}

Thanks Peter your code didn't compile but the idea was sound.

Here is my attempt that works for me.

protected void Page_Load(object sender, EventArgs e)
{
    Response.ContentType = "image/jpeg";
    Response.Clear();        
    Bitmap bmp = new Bitmap(tifFileLocation);
    bmp.Save(Response.OutputStream, ImageFormat.Jpeg);
    Response.End();

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文