【发布时间】:2020-06-24 11:11:04
【问题描述】:
我需要将单个 tiff 文件合并为一个。网上有很多例子看起来都很相似,比如这个Merge multiple multi-page tiff images to a single tiff C#。
问题是,所有这些解决方案都会使单个页面文件的组合文件大小增加一倍或三倍。
我只是尝试了一个在线 tiff 合并工具,文件大小没有增加,所以我知道它是可能的。
有人知道如何在 c# 代码中减小文件大小吗?
这是我使用的代码。
Bitmap firstImage = new Bitmap(images[0].bitmap);
encoder = System.Drawing.Imaging.Encoder.SaveFlag;
encoderInfo = ImageCodecInfo.GetImageEncoders()[3];
encoderParameters = new EncoderParameters(1); //(2)
encoderParameters.Param[0] = new EncoderParameter(encoder, (long)EncoderValue.MultiFrame);
// encoderParameters.Param[1] = new EncoderParameter(Encoder.Compression, (long)EncoderValue.CompressionCCITT4);
firstImage.Save(path, encoderInfo, encoderParameters);
encoderParameters.Param[0] = new EncoderParameter(encoder, (long)EncoderValue.FrameDimensionPage);
// Add the remaining images to the tiff
for (int i = 1; i < images.Count; i++)
{
firstImage.SaveAdd(images[i].bitmap, encoderParameters);
}
// Close out the file
encoderParameters.Param[0] = new EncoderParameter(encoder, (long)EncoderValue.Flush);
firstImage.SaveAdd(encoderParameters);
【问题讨论】:
-
我没有解决方案,但我想我看到了问题所在。 TIFF 是一种压缩格式,C# 将文件转换为未压缩的位图,然后将它们保存为 TIFF。我会寻找 EncoderParameter 选项来设置压缩比
-
是的,它是压缩。现在,多页 tiff 甚至比单个 tiff 的组合文件大小还要小。我编辑了我的帖子以显示解决方案,以防有人在某个时候找到它。
-
不要编辑您的问题以包含解决方案 - 写一个答案。在 Stack Overflow 上回答您自己的问题非常好:)