2009-07-16 29 views
1

首先,我使用SSRS渲染TIFF文档,发现虽然可以将颜色深度参数传递给SSRS 2005或2008,但它会丢弃它并始终生成24bpp文件。没有运气,得到这个由SSRS渲染方法生成的24bpp文件,将其加载到System.Drawing.Bitmap对象上,并成功地将它缩放到1728像素,在204dpi时以2347像素乘以196dpi(11.50英寸乘以8.82英寸),但在绘制时失败到一个新的单色(双调)System.Drawing.Bitmap对象。 .Net接受创建1bpp索引文件,但没有提供颜色深度转换,所以我必须编写一个自定义c#函数来实现它。缩放后,更改分辨率和更改颜色深度,我将System.Drawing.Bitmap对象保存到文件中,发现标记254(NewSubfileType)的值为0而不是2(FILETYPE_PAGE),标记266(FillOrder)丢失,Bitmap内容分散在多个条上。看了看Encoder和EncoderParameters,发现没有办法改变Bitmap Save和SaveAdd方法,以便它们产生我需要的正确格式(tiff-f)的文件。现在,厌倦了System.Drawing + GDI +,发现了这个System.Windows.Media.Imaging。它是否也受到GDI +的困扰或者使用了新的DirectX技术,并且可以让我以一种轻松生成兼容tiff-f文件的方式来驱动它?System.Windows.Media.Imaging是否使用DirectX(如WPF)或GDI +?

回答

1

尝试在该程序集上运行Reflector并深入该代码以找出结果。您还可以设置Visual Studio,以便在执行代码时通过调试器中的.NET源代码。

相关问题