Hoe om beelden in een multi-page TIFF in .NET te combineren
Elke keer dat ik een groot aantal scans, recepten of docs moet archiveren of delen, is multi-page TIFF nog steeds koning – vooral voor naleving of aflevering aan een oudere schoolbureau.
Waarom Multi-Page TIFF?
PDF’s zijn overal, maar veel legacy-systemen of documentwerkstromen Verzoek TIFF’s (vooral voor medische of juridische documenten). u wilt één bestand, alle pagina’s binnen, geen fuss.
Mijn Go-To Solution
Ik gooi al mijn bronnen afbeeldingen (JPG’s, PNG, zelfs oude BMPs) in een map, run dit C# script, en out pops een schoon, multi-page TIFF. werkt elke keer - en ik kan het automatiseren of aanpassen indien nodig.
Voorwaarden
- Visual Studio 2019+ (of gewoon de .NET CLI)
- .NET 6.0+ (of .Net Framework 4.6.2+)
- Aspose.Imaging voor .NET (NuGet maakt het leven gemakkelijker)
- Een map van afbeeldingen om te fuseren
PM> Install-Package Aspose.Imaging
Hier is hoe ik de Multi-Page TIFF bouwen
Stap 1: Verzamel alle afbeeldingen
Ik neem alle foto’s van mijn ./input
De folder:
string[] files = Directory.GetFiles("./input", "*.jpg"); // tweak pattern for PNG, BMP, etc.
Stap 2: Afbeeldingen opladen en TIFF-export instellen
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
Stap 3: Alle pagina’s opslaan in één 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());
Stap 4: Sanitaire controle en probleemoplossing
- Open de TIFF in IrfanView, Photoshop of zelfs Windows Photos. als het goed ziet, bent u ingesteld.
- Als u zwarte/blank pagina’s krijgt: controleer de afbeeldingsformaten en kleurdichtheden.TIFF is picky over sommige kleurtypen.
Stap 5: Bonus Tweaks
- Change
Compression
om teLzw
voor kleurdocs ofNone
voor verlies - Voor batchwerkzaamheden, giet de bovenste code in een loop voor meerdere mappen
- Paralleel als uw machine het kan beheren – gewoon niet te veel bestanden tegelijk openen!
Wat mij soms trekt op
- File order: Zorg ervoor dat uw bestanden worden genoemd of gesorteerd zoals u wilt dat ze verschijnen
- Weird-formaat: Sommige zeldzame formaten moeten eerst worden omgezet naar PNG/JPG
- Hoge bestanden: Grote stukken of hoge pagina’s = grote geheugen; verwerking in kleinere stukjes indien nodig
Pro tips
- Ik hou mijn bronnen afbeeldingen in de back-up – als je fusieert, kun je ze niet gemakkelijk ‘on-bake’
- Om te voldoen aan de algemene compressie (Lzw, Fax4)
- Gebruik een duidelijke naam voor uw output TIFF’s (datum, project, enz.)
FAQ
**Q: Kan ik kleuren en grayscale beelden combineren?**A: Ja, maar controleer de output – TIFF’s kunnen vreemd zijn als pagina’s radicaal verschillend zijn
**Q: Hoe kan ik dit automatiseren voor elke upload?**A: Vul deze logica in een wachter of gepland werk – gemakkelijk met .NET taken of Windows-diensten
**Q: Hoe zit het met OCR of zoekbare TIFF’s?**A: U hebt een OCR-stap nodig – Aspose.OCR of vergelijkbaar – voor/na fusie als u zoekbare tekst nodig hebt
Conclusie
Met Aspose.Imaging voor .NET en een eenvoudige script, kunt u gaan van vervelende mappen naar compliant, archiverbaar en gedeelde TIFF’s in minuten.
See Aspose.Imaging voor .NET API Referentie Voor meer TIFF, batch en multi-page tips.