我有这样的代码
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 上,即使有这些特定的也很好。