Come integrare le immagini in un multi-page TIFF in .NET
Ogni volta che ho bisogno di archiviare o condividere un sacco di scansioni, ricetti o docci, TIFF multi-pagina è ancora il re - specialmente per la conformità o la consegna delle cose in un ufficio di scuola vecchia.
Perché Multi-Page TIFF?
PDF sono ovunque, ma un sacco di sistemi di eredità o flussi di lavoro di documenti La domanda TIFF (soprattutto per i documenti medici o legali).Vuoi un file, tutte le pagine all’interno, nessun fuss.
La mia soluzione Go-to
Lascio tutte le mie immagini sorgente (JPG, PNG, persino vecchi BMPs) in una cartella, eseguo questo script C# e usco un TIFF pulito e multi-pagina. funziona ogni volta - e posso automatizzare o personalizzarlo se necessario.
Prerequisiti
- Visual Studio 2019+ (o solo il .NET CLI)
- .NET 6.0+ (o .Net Framework 4.6.2+)
- Aspose.Imaging per .NET (NuGet rende la vita più semplice)
- Una cartella di immagini per fusione
PM> Install-Package Aspose.Imaging
Ecco come costruire il multi-page TIFF
Passo 1: raccogliere tutte le immagini
Ho scattato tutte le immagini da me. ./input
Il folder:
string[] files = Directory.GetFiles("./input", "*.jpg"); // tweak pattern for PNG, BMP, etc.
Passo 2: Caricare le immagini e impostare l’esportazione 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
Passo 3: Salva tutte le pagine in un unico 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());
Passo 4: Controllo sanitario e risoluzione dei problemi
- Apri il TIFF in IrfanView, Photoshop, o persino Windows Photos. Se sembra bene, sei impostato.
- Se si ottiene le pagine nero/bianco: controllare i formati di immagine e le profondità dei colori.
Passo 5: Bonus Tweaks
- Change
Compression
perLzw
per i colorati oNone
per la perdita - Per i lavori di batch, inserire il codice sopra in un loop per più cartelle
- Parallelate se la vostra macchina può gestire – semplicemente non aprire troppo file contemporaneamente!
Quello che a volte mi colpisce
- ** Ordine file:** Assicurati che i tuoi file siano nominati o classificati come vuoi che essi appaiono
- Formati Weird: Alcuni formati rari richiedono la conversione in PNG/JPG prima
- File grandi: Big batch o pagine ad alta risorsa = grande memoria; processo in pezzi più piccoli se necessario
Tipi di Pro
- Io ho le mie immagini sorgente backup – una volta che si unisce, non si può “un-bake” facilmente
- Per la conformità, rispettare le compressioni comuni (Lzw, Fax4)
- Utilizzare un chiaro nome per i TIFF di uscita (data, progetto, ecc.)
FAQ
**Q: Posso combinare immagini di colore e grigio?**A: Sì, ma controlla la produzione – i TIFF possono essere strano se le pagine sono radicalmente diverse
**Q: Come posso automatizzare questo per ogni upload?**A: Inserisci questa logica in un lavoro orizzontale o pianificato – facile con i compiti .NET o i servizi Windows
**Q: Cosa succede con OCR o TIFF di ricerca?**A: Avrai bisogno di un passo OCR—Aspose.OCR o simile—prima/dopo la fusione se hai bisogno del testo di ricerca
conclusione
Con Aspose.Imaging per .NET e un semplice script, puoi passare da cartelle sbagliate a compatibili, archiviabili e condivisibili TIFF in minuti.Questo approccio mi ha risparmiato ore - e lo fido ogni volta.
See Aspose.Imaging per .NET API Reference Per ulteriori suggerimenti TIFF, batch e multi-page.