SSRS无法在PDF中正确呈现*某些*图像

Sta*_*ams 11 pdf image reporting-services ssrs-2008

我有一个报告,呈现从各种来源收集的图像(jpg).这在报表查看器中以及通过Excel导出时都可以正常工作.

但是,在导出为PDF时,大约5%的图像会被错误地渲染,如下图所示,左边是原始图像,右边是渲染图像.

在此输入图像描述 渲染图像图像

我发现如果我在mspaint中打开其中一个图像,只需单击"保存",则在下一个报表运行时,图像现在可以正确呈现.

对于哪些图像属性/格式对SSRS有效以在PDF中正确呈现图像,是否有任何规则?基本上我想以某种方式找到这些图像,它们会在报告运行之前呈现错误并在之前修复它们...

Sta*_*ams 6

当前的解决方法

我从来没有最终让 SSRS 按原样显示有问题的图像,但是,在运行报告之前确定哪些图像将包含在不可显示的集合中,以便它们可以转换为支持的格式(自动)也是一个解决方案.

就我而言,所有图像都是通过用户上传到网站提供的,因此我能够在图像到达时对其进行识别和转换。对于所有现有图像,我能够运行一个脚本来识别问题图像并进行转换。

识别问题图像

从我拥有的数千张图像中,我能够确定无法正确渲染的图像具有以下属性:

  1. 图像具有 CMYK 色彩空间或;
  2. 图像具有扩展的颜色配置文件或;
  3. 以上两种

转换图像

我最初使用标准的 .NET GDI ( System.Drawing) 来操作图像,但是OutOfMemoryException在处理具有额外数​​据的图像时,API 通常容易崩溃 ( )。因此,我转而使用ImageMagick,对于每个识别出的图像,我:

  1. 剥离颜色配置文件和;
  2. 转换为 RGB

请注意,在剥离颜色配置文件的情况下从 CMYK 转换为 RGB不足以让所有图像正确渲染。

在将上传的图像保存到磁盘之前,我最终只是在从用户那里收到的每个图像字节流上执行这些项目(没有首先确定问题)。之后,我再也没有遇到渲染问题。