我有这样的代码保存为TIFF,PNG
using (Image image = System.Drawing.Image.FromStream(sourceStream))
{
Guid objGuid = image.FrameDimensionsList[0];
FrameDimension objDimension = new FrameDimension(objGuid);
int pageCount = image.GetFrameCount(objDimension);
for (int i = 0; i < pageCount; i++)
{
image.SelectActiveFrame(objDimension, i);
resultStream = new MemoryStream();
image.Save(resultStream, ToSystemImageFormat(outputFormat));
result.Add(resultStream.ToArray());
}
}
目的 - 每个TIFF的页面保存为PNG文件并存储为字节的数组。在我测试的两台WIN7电脑上,这个问题很好。但是我有一台WinXP电脑,并且这段代码因“参数无效”异常而失败。 TIFF文件总是一样的。有人知道问题在哪里?
我试图用ImageConverter:
ImageConverter imageConverter = new System.Drawing.ImageConverter();
using (Image image = (Image)imageConverter.ConvertFrom(sourceContent))
{
Guid objGuid = image.FrameDimensionsList[0];
FrameDimension objDimension = new FrameDimension(objGuid);
int pageCount = image.GetFrameCount(objDimension);
for (int i = 0; i < pageCount; i++)
{
image.SelectActiveFrame(objDimension, i);
resultStream = new MemoryStream();
image.Save(resultStream, ToSystemImageFormat(outputFormat));
result.Add(resultStream.ToArray());
}
}
,但它同样也异常失败。 谢谢
UPD#1:Image.FromStream()方法失败。我忘了提及大多数TIFF文档都没有任何问题地转换,它在特定的文档上失败。但在WIN7上,即使使用这些特定的东西也没问题。
哪行代码导致异常? – cadrell0
请发布整个异常消息和堆栈跟踪。 – jrummell
因为WinXP它不是开发人员的计算机,所以无法发布完整的堆栈跟踪 – nKognito