Cómo integrar imágenes en un TIFF de múltiples páginas en .NET
Cada vez que necesito archivar o compartir un gran conjunto de escaneos, recipientes o doces, TIFF de múltiples páginas sigue siendo el rey -especialmente para el cumplimiento o la entrega de cosas a una oficina de la escuela antigua.
¿Por qué Multi-Page TIFF?
PDFs están en todas partes, pero muchos sistemas de herencia o flujos de trabajo de documentos demanda TIFFs (especialmente para los registros médicos o legales).Quieres un archivo, todas las páginas dentro, no fuss.
La solución Go-to
Dejo todas mis imágenes de fuente (JPG, PNG, incluso antiguos BMPs) en una carpeta, ejecutando este script C#, y empuesto un TIFF limpio, multi-página.
Prerequisitos
- Visual Studio 2019+ (o sólo el .NET CLI)
- .NET 6.0+ (o .Net Framework 4.6.2+)
- Aspose.Imaging para .NET (NuGet hace la vida más fácil)
- Un paquete de imágenes para combinar
PM> Install-Package Aspose.Imaging
Aquí está cómo construyo el TIFF multi-páginas
Paso 1: Recoger todas las imágenes
Sólo he tomado todas las imágenes de mi ./input
El folleto:
string[] files = Directory.GetFiles("./input", "*.jpg"); // tweak pattern for PNG, BMP, etc.
Paso 2: Cargar imágenes y configurar la exportación de 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
Paso 3: Salva todas las páginas en un único 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());
Paso 4: Control de Sanidad y Resolución de Problemas
- Abra el TIFF en IrfanView, Photoshop, o incluso fotos de Windows. Si se ve bien, está configurado.
- Si obtiene páginas negras/blancas: verifique los formatos de imagen y las profundidades de color. TIFF es picky sobre algunos tipos de colores.
Paso 5: Tweaks de bonificación
- Change
Compression
paraLzw
para los coloridos oNone
por las pérdidas - Para las tareas de batch, envuelve el código de arriba en un círculo para varias carpetas
- Paralelize si su máquina puede gestionarlo – simplemente no abre demasiados archivos a la vez!
Lo que me atrae a veces
- Orden de archivo: Asegúrese de que sus archivos son nombrados o clasificados como desea que aparezcan
- Formatos Weird: Algunos formatos raros necesitan la conversión a PNG/JPG primero
- Ficheros grandes: Páginas de gran tamaño o de alto tamaño = memoria grande; procesamiento en piezas más pequeñas si es necesario
Título Pro
- Mantengo mis imágenes de fuente protegidas – una vez que se fusionan, no se pueden “un-bake” fácilmente
- Para el cumplimiento, adhiere a las compresiones comunes (Lzw, Fax4)
- Utilice un nombre claro para tus TIFFs de salida (data, proyecto, etc.)
FAQ
**Q: ¿Puedo combinar imágenes de color y gris?**A: Sí, pero vea la salida — los TIFFs pueden ser extraños si las páginas son radicalmente diferentes
**Q: ¿Cómo puedo automatizar esto para cada descarga?**A: Envuelve esta lógica en un horario o trabajo programado – fácil con las tareas .NET o los servicios de Windows
**Q: ¿Qué es OCR o TIFFs buscables?**A: Usted necesitará un paso OCR—Aspose.OCR o similar—antes/después de la fusión si necesita texto buscable
Conclusión
Con Aspose.Imaging para .NET y un sencillo guión, puedes ir de las carpetas desagradables a TIFFs compatibles, archivables y comparables en minutos.Este enfoque me ha salvado horas -y lo confío cada vez.
See Aspose.Imaging para .NET API Referencia Para más TIFF, batch y consejos multi-páginas.