在将 TIFF 转换为 PDF 时,我注意到一些 PDF 已损坏。经过一番研究,问题似乎出在 System.Drawing.Image 类中。为了测试这一点,我没有转换为 PDF,而是让程序读取图像文件并重新保存它们。一些新保存的文件在程序的不同运行之间具有不一致的文件大小。基本步骤是:
- 我将 TIFF 图像读入字节数组。
- 我使用 System.Drawing.Image.FromStream() 方法从字节数组创建图像对象。
- 然后我调用 System.Drawing.Image.Save(stream) 方法将图像保存到新流中。
- 然后我检查 stream.ToArray() 方法的长度。
相同的输入文件会导致连续程序执行之间的输出长度不同。输出长度变化几百字节。此外,生成的输出长度是输入长度的两倍多,但我认为这是由于压缩或缺乏压缩造成的。我在带有 .net 4 的 Windows 7 32 位上运行它。
为什么输出长度会这样变化?
更新:
在查看此连接问题 ( https://connect.microsoft.com/VisualStudio/feedback/details/584681/system-drawing-image-flags-has-different-value-in-vista-and-windows-7 ) 和对此 MSDN 页面 ( http://msdn.microsoft.com/en-us/library/system.drawing.image.save.aspx ) 的社区评论,看来该问题与 Windows 7 中的操作系统级错误有关。任何人都可以确认这一点或提供解决方法吗?