【发布时间】:2012-01-26 17:39:34
【问题描述】:
我有这样的代码
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 上,即使有这些特定的也很好。
【问题讨论】:
-
哪行代码导致异常?
-
请发布整个异常消息和堆栈跟踪。
-
无法发布完整的堆栈跟踪,因为 WinXP 它不是开发人员计算机
-
能否修改应用程序以记录完整的异常消息和 StackTrace?另外,此时 sourceStream 中有什么?
标签: c# tiff image-conversion