私はそのようなコードを持っています
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として保存し、バイトの配列として保存します。テストした2台のWIN7コンピューターで正常に動作するという問題。しかし、私は1台の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では、これらの特定のものでも非常に問題ありません。