Как да се сливат изображения в мулти-страница TIFF в .NET
Всеки път, когато имам нужда да архивирам или споделям голям набор от скани, записи или докове, многостранен TIFF все още е крал – особено за съответствие или предаване на неща на стар училищен офис. Ето как го правя с Aspose.Imaging за .NET.
Защо Multi-Page 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 за .NET (NuGet прави живота по-лесен)
- Снимки, които трябва да се сливат
PM> Install-Package Aspose.Imaging
Ето как да изградим мулти-страницата 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: Здравословна проверка и решаване на проблеми
- Отворете TIFF в IrfanView, Photoshop или дори Windows Photos. Ако изглежда добре, сте зададени.
- Ако получавате черни/бели страници: проверете формата на изображението и цветовите дълбочини.
Стъпка 5: Бонус Tweaks
- Change
Compression
заLzw
за цветни докове илиNone
За загуба - За работа в комплект, вградете кода по-горе в кръг за няколко папки
- Паралелно, ако машината ви може да се справи с него – просто не отваряйте твърде много файлове наведнъж!
Какво ме кара понякога
- ** Поръчка на файла:** Уверете се, че вашите файлове са наречени или сортирани така, както искате да се появят
- Weird формати: Някои редки формати се нуждаят от конверсия към PNG/JPG първо
- **Велики файлове: ** Големи пакети или страници с високи размери = голяма памет; обработка в по-малки части, ако е необходимо
Про типове
- Аз поддържам моите източни изображения защитени – веднага щом се сливате, не можете лесно да ги „не печете“
- За съответствие, придържайте се към общи компреси (Lzw, Fax4)
- Използвайте ясно наименование за вашия изход TIFF (датум, проект и т.н.)
FAQ
Q: Мога ли да комбинирам цветове и грейскални изображения?**A: Да, но проверете резултата – TIFFs могат да бъдат странни, ако страниците са радикално различни
**Q: Как мога да автоматизирам това за всяко изтегляне?**Отговор: Вградете тази логика в часовник или планирана работа – лесна с .NET задачи или услуги на Windows
**Q: Какво е OCR или търсените TIFFs?**A: Ще ви е необходим OCR стъпка — Aspose.OCR или подобно — преди / след сливане, ако имате нужда от търсещ текст
заключение
С Aspose.Imaging за .NET и прост скрипт, можете да отидете от месни папки до съответни, архивиращи и споделящи TIFF в минути.
See Aspose.Imaging за .NET API референтност За повече TIFF, пакет и многострани съвети.