将TIFF保存到流时,参数无效

时间:2011-04-06 19:56:25

标签: c# .net gdi+

我有一个多页TIFF,我正在使用Leadtools逐页拆分,并更改它们的压缩以与第三方兼容。当我尝试将图像保存到memoryStream时,我得到一个参数无效的异常。但是,此在他们的计算机或运行Server 2008的测试计算机上发生。我无法在我的开发计算机上重现这一点(使用VS2008的Win 7)。这是代码:

              RasterImage image = codecs.Load( file, 0, CodecsLoadByteOrder.RgbOrGray, currentPage, currentPage + (detail.Pages - 1) );
              Image newImage = RasterImageConverter.ConvertToImage( image, ConvertToImageOptions.None );
              MemoryStream memStream = new MemoryStream();

              ImageCodecInfo encoderInfo = GetEncoderInfo(  );

              EncoderParameters encoderParams = new EncoderParameters( 1 );
              EncoderParameter parameter = new EncoderParameter( System.Drawing.Imaging.Encoder.Compression, (long)EncoderValue.CompressionCCITT4 );
              encoderParams.Param[0] = parameter;
              newImage.Save(memStream, encoderInfo , encoderParams);

对此有何想法?谢谢你的帮助!

1 个答案:

答案 0 :(得分:4)

检查图像的像素格式。如果它不是1位,那么这将失败 - 你不能在1位以外的任何东西上使用CCITT。也可能是特定操作系统没有CCITT4子编码,并且可能只有CCITT3(尽管这种可能性很小)。