Bagaimana untuk menggabungkan imej ke dalam TIFF pelbagai halaman dalam .NET

Bagaimana untuk menggabungkan imej ke dalam TIFF pelbagai halaman dalam .NET

Setiap kali saya perlu mengarkibkan atau berkongsi sekumpulan besar pemindaian, penerimaan, atau dok, TIFF pelbagai halaman masih raja - terutamanya untuk pematuhan atau menyerahkan barang-barang ke pejabat sekolah lama.

Mengapa Multi-Page TIFF?

PDF terdapat di mana-mana, tetapi banyak sistem warisan atau aliran kerja dokumen Permintaan TIFFs (terutamanya untuk rekod perubatan atau undang-undang). anda mahu satu fail, semua halaman di dalam, tiada fuss.

Penyelesaian Go-to

Saya melemparkan semua imej sumber saya (JPG, PNG, bahkan BMPs lama) ke dalam folder, menjalankan skrip C# ini, dan keluar pops TIFF bersih, pelbagai halaman.

Prerequisites

  • Visual Studio 2019+ (atau hanya .NET CLI)
  • .NET 6.0+ (atau .Net Framework 4.6.2+)
  • Aspose.Imaging untuk .NET (NuGet menjadikan kehidupan lebih mudah)
  • folder imej untuk menggabungkan
PM> Install-Package Aspose.Imaging

Berikut Cara Saya Membina Multi-Page TIFF

Langkah 1: Mengumpul semua imej

Saya hanya mengambil semua gambar daripada saya ./input dalam folder :

string[] files = Directory.GetFiles("./input", "*.jpg"); // tweak pattern for PNG, BMP, etc.

Langkah 2: Muat turun imej dan tetapkan 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

Langkah 3: Simpan semua halaman dalam satu 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());

Langkah 4: Pemeriksaan Kesihatan dan Penyelesaian Masalah

  • Buka TIFF dalam IrfanView, Photoshop, atau Windows Photos.Jika ia kelihatan baik, anda telah ditetapkan.
  • Jika anda mendapat halaman hitam/putih: semak format imej dan kedalaman warna.

Langkah 5: Bonus Tweaks

  • Change Compression kepada Lzw untuk warna-warni atau None untuk kerugian
  • Untuk kerja-kerja batch, masukkan kod di atas ke dalam lubang untuk pelbagai folder
  • Perbandingan jika mesin anda boleh mengendalikan - hanya jangan buka terlalu banyak fail pada satu masa!

Apa yang mengganggu saya kadang-kadang

  • Perintah fail: Pastikan fail anda dinamakan atau disusun seperti yang anda mahu mereka muncul
  • Weird format: Sesetengah format yang jarang memerlukan penukaran kepada PNG/JPG terlebih dahulu
  • File besar: Bahagian besar atau halaman tinggi = memori besar; pemprosesan dalam kepingan yang lebih kecil jika perlu

Tag: tips

  • Saya mengekalkan imej sumber saya disokong—selepas anda menggabungkan, anda tidak boleh “un-bake” mereka dengan mudah
  • Untuk pematuhan, berpegang kepada kompresi biasa (Lzw, Fax4)
  • Gunakan nama yang jelas untuk TIFF output anda (tarikh, projek, dan lain-lain)

FAQ

**Q: Bolehkah saya menggabungkan warna dan imej kelabu?**A: Ya, tetapi semak output—TIFF boleh menjadi pelik jika halaman sangat berbeza

**Q: Bagaimana saya boleh mengautomatikkan ini untuk setiap upload?**A: Masukkan logik ini ke dalam pengawasan atau kerja yang dijadualkan – mudah dengan tugas .NET atau perkhidmatan Windows

**Q: Bagaimana dengan OCR atau TIFF yang boleh dicari?**A: Anda akan memerlukan langkah OCR—Aspose.OCR atau serupa—sebelum/selepas penggabungan jika anda memerlukan teks yang boleh dicari

Conclusion

Multi-page TIFFs tidak perlu menjadi kesakitan.Dengan Aspose.Imaging untuk .NET dan skrip yang mudah, anda boleh pergi dari folder memalukan kepada yang mematuhi, boleh diarkibkan, dan boleh dibahagikan dalam beberapa minit. pendekatan ini telah menyelamatkan saya jam-jam - dan saya percaya ia setiap kali.

See Aspose.Imaging untuk .NET API Rujukan untuk lebih banyak TIFF, batch, dan tip pelbagai halaman.

 Melayu