如何将图像融入 .NET 中的多页 TIFF
如何将图像融入 .NET 中的多页 TIFF
每当我需要存档或分享大量的扫描、收件或文件时,多页 TIFF 仍然是国王 - 特别是为了遵守或向老学校办公室交付物品。
為什麼多頁 TIFF?
PDF 到处都是,但有很多遗产系统或文档工作流 需求 TIFFs(特别是医学或法律记录)。你需要一个文件,所有页面在里面,没有混乱。
我的 Go-to 解决方案
我将所有的源图像(JPG,PNG,甚至旧的BMPs)放入一个文件夹中,运行这个C#脚本,并打开一个清洁的,多页的TIFF。
原則
- Visual Studio 2019+(或仅仅是 .NET CLI)
- .NET 6.0+(或 .Net Framework 4.6.2+)
- Aspose.Imaging for .NET (NuGet 使生活更容易)
- 一张图像文件夹合并
PM> Install-Package Aspose.Imaging
此分類上一篇: How I Build the Multi-page TIFF
步骤1:收集所有图像
我只是把所有的照片从我的 ./input
文件夹:
string[] files = Directory.GetFiles("./input", "*.jpg"); // tweak pattern for PNG, BMP, etc.
步骤2:上传图像并设置 TIFF 出口
var images = files.Select(f => Image.Load(f)).ToList();
var tiffOptions = new Aspose.Imaging.ImageOptions.TiffOptions(Aspose.Imaging.FileFormats.Tiff.Enums.TiffExpectedFormat.Default);
tiffOptions.Compression = Aspose.Imaging.FileFormats.Tiff.Enums.TiffCompressions.CcittFax4; // good for scans; use Lzw or None for color
步骤3:在单一 TIFF 中保存所有页面
string outFile = "./output/merged_multipage.tiff";
using (var tiffImage = Aspose.Imaging.Image.Create(tiffOptions, images[0].Width, images[0].Height, false))
{
for (int i = 0; i < images.Count; i++)
{
var srcImg = images[i];
// For first page, just draw
if (i == 0)
{
var g = new Aspose.Imaging.Graphics(tiffImage);
g.DrawImage(srcImg, 0, 0, srcImg.Width, srcImg.Height);
}
else
{
// Add a new page for each image
tiffImage.AddPage(srcImg);
}
}
tiffImage.Save(outFile);
}
images.ForEach(img => img.Dispose());
步骤4:卫生检查和解决问题
- 在 IrfanView、Photoshop 或 Windows Photos 中打开 TIFF. 如果看起来很好,则设置了。
- 如果你得到黑色/白色页面:检查图像格式和颜色深度。
步骤5:奖金推文
- Change
Compression
到Lzw
色彩多克或None
为了失败 - 对于套件工作,将上面的代码插入多个文件夹的旋转中
- 如果您的机器可以处理它,就不要同时打开太多的文件!
有时候,我所困扰的
- 文件订单: 确保您的文件被命名或分类为您想要它们显示的方式
- Weird格式: 某些罕见格形式首先需要转换为PNG/JPG
- 大文件: 大片或高版本的页面 = 大記憶體;如果需要,在小片中處理
Pro 提示
- 我保留我的源图像备份 - 一旦你合并,你不能轻易“无包”它们
- 要遵守,坚持常见压缩(Lzw、Fax4)。
- 为您的输出 TIFF 使用清晰的名称(日期、项目等)
FAQ
Q:我可以结合颜色和灰色图像吗?答:是的,但检查输出 - 如果页面是根本不同的,TIFF可能会很奇怪
**Q:我如何在每次上传时自动化此内容?**答:将此逻辑插入观察员或计划工作 - 用 .NET 任务或 Windows 服务轻松
**Q:关于OCR或可搜索的TIFF怎么办?**答: 您需要一个 OCR 步骤 - Aspose.OCR 或类似 - 合并之前 / 之后,如果需要可搜索的文本
结论
多页 TIFF 不必是痛苦. 使用 Aspose.Imaging for .NET 和一个简单的脚本,你可以从混乱的文件夹到兼容的,存档和共享的 TifF 在几分钟内。
See Aspose.Imaging 为 .NET API 参考 更多 TIFF、Batch 和多页提示。