我有一个多页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);
对此有何想法?谢谢你的帮助!
答案 0 :(得分:4)
检查图像的像素格式。如果它不是1位,那么这将失败 - 你不能在1位以外的任何东西上使用CCITT。也可能是特定操作系统没有CCITT4子编码,并且可能只有CCITT3(尽管这种可能性很小)。