Como integrar imagens em um TIFF multi-página em .NET
Sempre que eu tenha que arquivar ou compartilhar um grande conjunto de scans, receitas, ou docs, multi-página TIFF ainda é rei – especialmente para a conformidade ou entrega de coisas para um escritório da escola antiga.
Por que o Multi-Page TIFF?
PDFs estão em todos os lugares, mas muitos sistemas de herança ou fluxos de trabalho de documentos demanda TIFFs (especialmente para registros médicos ou legais). Você quer um arquivo, todas as páginas dentro, sem fuss.
Meu caminho para a solução
Eu lanço todas as minhas imagens de origem (JPGs, PNGs e até mesmo velhos BMPs) em uma pasta, executo este script C# e expondo um TIFF limpo e multi-página.
Pré-requisitos
- Visual Studio 2019+ (ou apenas o .NET CLI)
- .NET 6.0+ (ou .Net Framework 4.6.2+)
- Aspose.Imaging para .NET (NuGet torna a vida mais fácil)
- Um folheto de imagens para combinar
PM> Install-Package Aspose.Imaging
Aqui está como eu faço o multi-página TIFF
Passo 1: Coletar todas as imagens
Tirei todas as imagens da minha ./input
Arquivo da Folha:
string[] files = Directory.GetFiles("./input", "*.jpg"); // tweak pattern for PNG, BMP, etc.
Passo 2: Carregar imagens e configurar a exportação 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
Passo 3: Salve todas as páginas em um ú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());
Etapa 4: Verificação e resolução de problemas de saúde
- Abra o TIFF em IrfanView, Photoshop ou até mesmo Fotos do Windows. Se parece bom, você está configurado.
- Se você obter páginas preto/branco: verifique os formatos da imagem e as profundidades da cor. TIFF é picky sobre alguns tipos de cores.
Passo 5: Tweetes de bônus
- Change
Compression
ParaLzw
Para as cores doces ouNone
Para a perdição - Para trabalhos de batch, coloque o código acima em um loop para várias folhas
- Paralelize se a sua máquina pode lidar com isso – apenas não abra muitos arquivos de uma só vez!
O que me leva às vezes
- Comando de arquivo: Certifique-se de que seus arquivos são nomeados ou classificados como você quer que eles aparecem
- Formatos Weird: Alguns formatos raros precisam de conversão para PNG/JPG primeiro
- ** Arquivos grandes: ** Grandes partidas ou páginas de alto nível = grande memória; processamento em pedaços menores se necessário
Título Pro
- Eu mantenho minhas imagens de origem armazenadas – uma vez que você fusiona, você não pode “un-bake” elas facilmente
- Para conformidade, fique atento às compressões comuns (Lzw, Fax4)
- Use um nome claro para seus TIFFs de saída (data, projeto, etc.)
FAQ
**Q: Posso combinar imagens de cor e cinza?**A: Sim, mas verifique a saída – TIFFs podem ser estranhos se as páginas são radicalmente diferentes
**Q: Como posso automatizar isso para cada upload?**A: Insira essa lógica em um trabalho agendado ou planejado – fácil com tarefas .NET ou serviços do Windows
**Q: O que dizer de OCR ou TIFFs procuráveis?**A: Você precisará de um passo OCR – Aspose.OCR ou semelhante – antes / depois de fusão se você precisar de texto procurável
Conclusão
Com Aspose.Imaging para .NET e um script simples, você pode ir de folhetos confusos para TIFFs compatíveis, arquiváveis e compartilháveis em minutos.
See Aspose.Imaging para .NET API Referência Para mais TIFF, batch e dicas multi-páginas.