gpt4 book ai didi

c# - 在 .NET Framework 中创建的多页 TIFF 图像文件具有更大的尺寸

转载 作者:行者123 更新时间:2023-11-30 20:48:54 25 4
gpt4 key购买 nike

我在 c# (.net framework 4.0) 中创建了用于创建多页 TIFF 文件的 Windows 服务。Windows 服务监控目录并将目录中的单页 Tiff 文件合并或划分为多页 TIFF 文件。服务在 Windows 2012 服务器上运行。

当我在另一个图像应用程序(例如 Irfan)中打开并保存上述服务创建的 TIFF 文件时。保存的文件较小。在 Irfan 中,我使用与原始文件相同的分辨率和压缩率保存它。当我在资源管理器中比较文件的属性时,它们具有相同的尺寸、dpi 和压缩类型。

例如我在 .NET 中创建的多页 Tiff 文件有 426kB,当我在 Irfan 中打开并保存相同的文件时,它有 407kB。大约相差 20kB。只有一个文件并不重要,但我的目录中有 60 万个文件:(

对于 TIFF 创建,我使用的是 System.Windows.Media.Imaging,它应该比 System.Drawing.Imaging (GDI+) 更好。

...

// load frontside of document
decoder = new TiffBitmapDecoder(imageStreamSource,BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);

bitmapSourceFrontSide = decoder.Frames[currentFrame];

// load backside of document

//...

encoder = new TiffBitmapEncoder();
encoder.Compression = TiffCompressOption.Ccitt4;

CroppedBitmap tiffPage;

//...

// TIFF image can be divided to multipage tiff
tiffPage = new CroppedBitmap(bitmapSourceFrontSide, new Int32Rect(pagePosition, 0, pageFrameWidth, (int)bitmapSourceFrontSide.PixelHeight));

encoder.Frames.Add(BitmapFrame.Create(tiffPage));

if (bitmapSourceBackSide != null)
{
tiffPage = new CroppedBitmap(bitmapSourceBackSide, new Int32Rect(pagePosition, 0, pageFrameWidth, (int)bitmapSourceBackSide.PixelHeight));

encoder.Frames.Add(BitmapFrame.Create(tiffPage));
}

//... created and add all pages to tiff file let's save it

using(FileStream stream = new FileStream(FileName, FileMode.Create))
{
encoder.Save(stream);
}

你知道为什么在 .NET 中创建的 TIFF 文件有更大的尺寸吗?

谢谢

最佳答案

我看到您正在使用 BitmapCreateOptions.PreservePixelFormatTiffCompressOption.Ccitt4
MSDN说一下TiffCompressOption Enumeration :

The Ccitt3, Ccitt4, and Rle require that the PixelFormat value be set to BlackWhite. Setting the PixelFormat to any other value resets the Compression property value to Default.

也许这正在发生?图片是黑白的吗?如果不尝试使用 LzwZip 明确地查看它们是否比系统决定使用的默认值更好地处理您的图像!

此外,imo,5% 的差异并不是什么值得生气的事情。这意味着您只能容纳 570,000 张图片,而不是 600,000 张图片。

关于c# - 在 .NET Framework 中创建的多页 TIFF 图像文件具有更大的尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24115906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com