Kaip sujungti vaizdus į daugialypį TIFF .NET
Kiekvieną kartą, kai man reikia archyvuoti ar pasidalinti didelį skanų, įrašų ar dokų rinkinį, daugialypė TIFF vis dar yra karalius – ypač dėl atitikties ar daiktų pristatymas senosios mokyklos biure.
Kodėl daugiašalis puslapis TIFF?
PDF yra visur, bet daug paveldėjimo sistemų ar dokumentų darbo srautų paklausa TIFFs (ypač medicinos ar teisiniai įrašai). norite vieno failo, visų puslapių viduje, be pjovimo.
Mūsų sprendimas
Aš nuleidau visus savo šaltinio vaizdus (JPG, PNG, net ir senus BMPs) į aplanką, paleidžiu šį C# scenarijų ir ištraukiu švarų, daugialypį TIFF. Veikia kiekvieną kartą – ir galiu automatuoti ar pritaikyti, jei reikia.
Prerequisites
- „Visual Studio 2019+“ (arba tik „ .NET CLI“)
- .NET 6.0+ (arba „NET Framework 4.6.2+“)
- Aspose.Imaging .NET (NuGet daro gyvenimą lengviau)
- Nuotraukų plokštė, kurią reikia sujungti
PM> Install-Package Aspose.Imaging
Štai kaip aš sukuriu multi-page TIFF
1 žingsnis: surinkti visas nuotraukas
Aš tiesiog paimsiu visas nuotraukas iš mano ./input
Pašto dėžutė :
string[] files = Directory.GetFiles("./input", "*.jpg"); // tweak pattern for PNG, BMP, etc.
2 žingsnis: Atsisiųskite nuotraukas ir nustatykite TIFF eksportą
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 žingsnis: išsaugoti visas puslapius viename 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 žingsnis: sanitarinis patikrinimas ir problemų sprendimas
- Atidarykite TIFF „IrfanView“, „Photoshop“ arba net „Windows“ nuotraukas.
- Jei gaunate juodą / baltą puslapius: patikrinkite vaizdo formatus ir spalvų gylį.
5 žingsnis: Bonus Tweaks
- Change
Compression
ĮLzw
Dėl spalvų daktaro arbaNone
Dėl pralaimėjimo - Atsižvelgiant į batch užduotis, įpilkite viršutinį kodą į kelių dėžutės langą
- Palyginkite, jei jūsų kompiuteris gali jį tvarkyti – tiesiog neatsidaryti per daug failų vienu metu!
Kas mane kartais sukelia
- File order: Įsitikinkite, kad jūsų failai yra pavadinti arba suskirstyti taip, kaip norite juos pasirodyti
- Weird formatus: Kai kuriems retam formatui pirmiausia reikia konvertuoti į PNG/JPG
- Dideli failai: Dideli batai arba aukšto lygio puslapiai = didelė atmintis; procesas mažesniais gabalais, jei reikia
Pro patarimai
- Aš palaikau savo šaltinio vaizdus – kai jūs sujungti, jūs negalite juos lengvai „ne-pakuoti“
- Norėdami laikytis reikalavimų, laikykitės bendrų suspaudimų (Lzw, Fax4)
- Naudokite aiškią pavadinimą savo išleidimo TIFF (data, projektas ir tt)
FAQ
**Q: Ar galiu sujungti spalvą ir pilkos spalvos vaizdus?**A: Taip, bet patikrinkite išleidimą – TIFF gali būti keista, jei puslapiai yra radikaliai skirtingi
**Q: Kaip aš automatuoju tai kiekvienam įkėlimui?**A: Įdėkite šią logiką į stebėtoją arba planuojamą darbą – lengva su .NET užduotimis ar “Windows” paslaugomis
**Q: Ką apie OCR ar paieškos TIFF?**A: Jums reikės OCR žingsnio – Aspose.OCR arba panašus – prieš / po derinimo, jei jums reikia paieškos tekstą
Conclusion
Multi-page TIFFs neturi būti skausmas. su Aspose.Imaging .NET ir paprastas scenarijus, jūs galite pereiti nuo nesąžiningų failų į suderinamų, archyvuojamų ir dalinamų Tifs per minutes. Šis požiūris sutaupė man valandas - ir aš pasitikėjau kiekvieną kartą.
See Aspose.Imaging .NET API nuoroda Daugiau TIFF, batch ir kelių puslapių patarimų.