C# 压缩多帧Tiff
我目前正在生成多个图像并将其保存到多帧tiff 我正在使用此代码保存tiffC# 压缩多帧Tiff,c#,compression,tiff,multipage,C#,Compression,Tiff,Multipage,我目前正在生成多个图像并将其保存到多帧tiff 我正在使用此代码保存tiff System.Drawing.Imaging.Encoder encoder = System.Drawing.Imaging.Encoder.SaveFlag; ImageCodecInfo encoderInfo = ImageCodecInfo.GetImageEncoders().First(i => i.MimeType == "image/tiff"); EncoderParameters encod
System.Drawing.Imaging.Encoder encoder = System.Drawing.Imaging.Encoder.SaveFlag;
ImageCodecInfo encoderInfo = ImageCodecInfo.GetImageEncoders().First(i => i.MimeType == "image/tiff");
EncoderParameters encoderParameters = new EncoderParameters(1);
encoderParameters.Param[0] = new EncoderParameter(encoder, (long)EncoderValue.MultiFrame);
// Save the first frame of the multi page tiff
Bitmap firstImage = (Bitmap)_imageList[0];
firstImage.Save(System.IO.Directory.GetCurrentDirectory() + @"\ChargeInvoice Images\" + OrderNumber + "_Invoice.tiff", encoderInfo, encoderParameters);
encoderParameters.Param[0] = new EncoderParameter(encoder, (long)EncoderValue.FrameDimensionPage);
// Add the remining images to the tiff
for (int i = 1; i < _imageList.Count; i++)
{
Bitmap img = (Bitmap)_imageList[i];
firstImage.SaveAdd(img, encoderParameters);
}
// Close out the file
encoderParameters.Param[0] = new EncoderParameter(encoder, (long)EncoderValue.Flush);
firstImage.SaveAdd(encoderParameters);
System.Drawing.Imaging.Encoder编码器=System.Drawing.Imaging.Encoder.SaveFlag;
ImageCodecInfo encoderInfo=ImageCodecInfo.GetImageEncoders().First(i=>i.MimeType==“image/tiff”);
EncoderParameters EncoderParameters=新的EncoderParameters(1);
encoderParameters.Param[0]=新的EncoderParameter(编码器,(长)EncoderValue.MultiFrame);
//保存多页tiff的第一帧
位图firstImage=(位图)u imageList[0];
firstImage.Save(System.IO.Directory.GetCurrentDirectory()++“\ChargeInvoice Images\”+OrderNumber+“\u Invoice.tiff”、encoderInfo、encoderParameters);
encoderParameters.Param[0]=新的EncoderParameter(编码器,(长)EncoderValue.FrameDimensionPage);
//将重新录制的图像添加到tiff
对于(int i=1;i<\u imageList.Count;i++)
{
位图img=(位图)u图像列表[i];
SaveAdd(img、encoderParameters);
}
//结案
encoderParameters.Param[0]=新的EncoderParameter(encoder,(long)EncoderValue.Flush);
SaveAdd(编码器参数);
一些TIFF的页面超过18页,文件大小为11MB+
有没有一种方法可以压缩TIFF以节省或缩小尺寸
如果我失去了一些图像质量也没关系 添加一个编码器参数进行压缩:
System.Drawing.Imaging.Encoder encoder = System.Drawing.Imaging.Encoder.SaveFlag;
System.Drawing.Imaging.Encoder compressionEncoder = System.Drawing.Imaging.Encoder.Compression;
EncoderParameters encoderParameters = new EncoderParameters(2);
encoderParameters.Param[0] = new EncoderParameter(encoder, (long)EncoderValue.MultiFrame);
encoderParameters.Param[1] = new EncoderParameter(compressionEncoder, (long)EncoderValue.CompressionLZW);