Jak włączyć obrazy do multi-page TIFF w .NET
Za każdym razem, gdy muszę archiwizować lub udostępniać duży zestaw skanów, zapisów lub doku, multi-page TIFF jest nadal królem – szczególnie dla zgodności lub przekazywania rzeczy do biura szkolnego.
Dlaczego Multi-Page TIFF?
PDF są wszędzie, ale wiele systemów dziedziczenia lub przepływów pracy dokumentów Popyt TIFFs (szczególnie dla rejestrów medycznych lub prawnych). chcesz jeden plik, wszystkie strony wewnątrz, bez fuss.
My Go-to rozwiązanie
Spuszczam wszystkie moje obrazy źródłowe (JPG, PNG, nawet stare BMPs) do folderu, uruchomię ten scenariusz C# i wyświetlam czysty, wielokątny TIFF. Pracuje za każdym razem – i mogę go zautomatyzować lub dostosować, jeśli to konieczne.
Warunki
- Visual Studio 2019+ (lub tylko .NET CLI)
- Źródło: .NET Framework 4.6.2+
- Aspose.Imaging dla .NET (NuGet ułatwia życie)
- folder zdjęć do połączenia
PM> Install-Package Aspose.Imaging
Oto jak zbudować multi-page TIFF
Krok 1: Zbieraj wszystkie obrazy
Wystarczy wyciągnąć wszystkie zdjęcia z mojego ./input
w folderze:
string[] files = Directory.GetFiles("./input", "*.jpg"); // tweak pattern for PNG, BMP, etc.
Krok 2: Pobierz zdjęcia i ustaw eksport 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
Krok 3: Zapisz wszystkie strony w jednym 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());
Krok 4: Kontrola higieny i rozwiązywanie problemów
- Otwórz TIFF w programie IrfanView, Photoshop lub nawet Windows Photos. Jeśli wygląda dobrze, ustaw się.
- Jeśli otrzymasz czarne/białe strony: sprawdź formaty obrazu i głębi koloru.
Krok 5: Bonus Tweaks
- Change
Compression
doLzw
dla kolorów lubNone
dla bez strat - W przypadku pracy w zestawie, wklej kod powyżej w przewód dla wielu folderów
- Porównaj, jeśli Twoja maszyna może sobie z tym poradzić – po prostu nie otwieraj zbyt wielu plików naraz!
Co mnie czasami doprowadza
- ** Zamów plik: ** Upewnij się, że Twoje pliki są nazwane lub zorganizowane tak, jak chcesz, aby pojawiały się
- Weird formaty: Niektóre rzadkie formaty wymagają konwersji do PNG/JPG najpierw
- **Wielkie pliki: ** Wielkie pakiety lub strony o wysokiej rozdzielczości = duża pamięć; przetwarzanie w mniejszych częściach, jeśli to konieczne
Pro wskazówki
- Utrzymuję moje obrazy źródłowe - kiedy się połączycie, nie możecie ich łatwo „zjedzić”.
- Dla zgodności, trzymaj się zwykłych kompresji (Lzw, Fax4)
- Użyj wyraźnego nazwiska dla Twojego TIFF wyjścia (data, projekt itp.)
FAQ
** Q: Czy mogę łączyć kolorowe i szary obraz?**Odpowiedź: Tak, ale sprawdź wynik – TIFF może być dziwne, jeśli strony są radykalnie różne
**Q: Jak mogę zautomatyzować to dla każdego przesyłania?**Odpowiedź: Włóż tę logikę do zegarka lub zaplanowanej pracy – łatwe z zadaniami .NET lub usługami systemu Windows
** Q: Co z OCR lub wyszukiwalnymi TIFF?**Odpowiedź: Będziesz potrzebował kroku OCR – Aspose.OCR lub podobnego – przed/po łączeniu, jeśli potrzebujesz wyszukiwanego tekstu
konkluzja
Wiele stron TIFF nie musi być bólem. z Aspose.Imaging dla .NET i prosty scenariusz, można przejść od fałszywych folderów do zgodnych, archiwalnych i udostępnialnych TifF w kilka minut.
See Aspose.Imaging dla .NET API Referencje Dla więcej wskazówek TIFF, batch i multi-page.