у меня такой код
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 и с этими специфическими всё нормально.