У меня есть такой код
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 все хорошо даже с этими конкретными.