Gabungkan Gambar dalam C#

Pada artikel ini, Anda akan mempelajari cara menggabungkan atau menggabungkan beberapa gambar menjadi satu gambar secara terprogram menggunakan C#. Panduan langkah demi langkah dan contoh kode akan menunjukkan cara menggabungkan gambar secara horizontal atau vertikal.

C# API untuk Menggabungkan Gambar - Unduhan Gratis

Untuk menggabungkan beberapa gambar menjadi satu gambar, kami akan menggunakan Aspose.Imaging for .NET. Ini adalah API pemrosesan gambar yang kuat dan kaya fitur yang memungkinkan Anda memanipulasi berbagai format gambar. Anda dapat mengunduh API atau menginstalnya menggunakan NuGet.

PM> Install-Package Aspose.Imaging

Menggabungkan Banyak Gambar dalam C#

Ada dua cara untuk menggabungkan gambar menjadi satu: secara vertikal dan horizontal. Dalam metode sebelumnya, gambar ditambahkan satu sama lain secara vertikal, sedangkan pada metode terakhir, gambar digabungkan satu demi satu secara horizontal. Di bagian berikut, Anda akan mempelajari kedua metode dengan contoh kode.

C# Menggabungkan Gambar Secara Vertikal

Berikut langkah-langkah menggabungkan gambar secara vertikal menggunakan C#.

  • Pertama, tentukan jalur gambar dalam larik string.
  • Kemudian, buat Daftar Ukuran dan simpan ukuran setiap gambar ke dalamnya.
  • Hitung tinggi dan lebar gambar yang dihasilkan.
  • Buat objek kelas StreamSource dan inisialisasi dengan MemoryStream baru.
  • Buat objek kelas JpegOptions dan atur opsinya.
  • Membuat instance JpegImage untuk gambar baru dan menginisialisasinya dengan JpegOptions dan menghitung tinggi dan lebar.
  • Ulangi melalui daftar gambar dan di setiap iterasi, muat gambar dalam objek RasterImage.
  • Buat Persegi Panjang untuk setiap gambar dan tambahkan ke gambar baru menggunakan metode JpegImage.SaveArgb32Pixels().
  • Tingkatkan tinggi jahitan di setiap iterasi.
  • Terakhir, simpan gambar baru menggunakan metode JpegImage.Save(string).

Contoh kode berikut menunjukkan cara menggabungkan gambar secara vertikal di C#.

// Buat daftar gambar
string[] imagePaths = { "image1.jpg", "image2.jpg", "image3.jpg", "image4.jpg", "image5.png" };

// Dapatkan ukuran gambar yang dihasilkan
List<Size> imageSizes = new List<Size>();
foreach (string imagePath in imagePaths)
{
    using (RasterImage image = (RasterImage)Image.Load(imagePath))
    {
        imageSizes.Add(image.Size);
    }
}

int newWidth = imageSizes.Max(size => size.Width);
int newHeight = imageSizes.Sum(size => size.Height);

// Gabungkan gambar menjadi yang baru
using (MemoryStream memoryStream = new MemoryStream())
{
    // Buat sumber keluaran
    StreamSource outputStreamSource = new StreamSource(memoryStream);
    
    // Buat opsi jpeg
    JpegOptions options = new JpegOptions() { Source = outputStreamSource, Quality = 100 };
    
    // Membuat gambar keluaran
    using (JpegImage newImage = (JpegImage)Image.Create(options, newWidth, newHeight))
    {
        int stitchedHeight = 0;
        // Gabungkan gambar
        foreach (string imagePath in imagePaths)
        {
            using (RasterImage image = (RasterImage)Image.Load(imagePath))
            {
                Rectangle bounds = new Rectangle(0, stitchedHeight, image.Width, image.Height);
                newImage.SaveArgb32Pixels(bounds, image.LoadArgb32Pixels(image.Bounds));
                stitchedHeight += image.Height;
            }
        }
        
        // Simpan gambar gabungan
        newImage.Save("merged-image.jpg");
    }
}

Menggabungkan Gambar Secara Horizontal di C#

Berikut langkah-langkah menggabungkan gambar secara horizontal menggunakan C#.

  • Pertama, tentukan jalur gambar dalam larik string.
  • Kemudian, buat Daftar Ukuran dan simpan ukuran setiap gambar ke dalamnya.
  • Hitung tinggi dan lebar gambar yang dihasilkan.
  • Buat sumber baru menggunakan FileCreateSource(String, Boolean) dan inisialisasi dengan jalur file.
  • Buat objek kelas JpegOptions dan atur opsinya.
  • Membuat instance JpegImage untuk gambar baru dan menginisialisasinya dengan JpegOptions dan menghitung tinggi dan lebar.
  • Ulangi melalui daftar gambar dan di setiap iterasi, muat gambar dalam objek RasterImage.
  • Buat Persegi Panjang untuk setiap gambar dan tambahkan ke gambar baru menggunakan metode JpegImage.SaveArgb32Pixels().
  • Tingkatkan lebar jahitan di setiap iterasi.
  • Setelah selesai, simpan gambar baru menggunakan metode JpegImage.Save(string).

Contoh kode berikut menunjukkan cara menggabungkan beberapa gambar secara horizontal.

// Buat daftar gambar
string[] imagePaths = { "image1.jpg", "image2.jpg", "image3.jpg", "image4.JPG", "image5.png" };

// Untuk membuat gambar sementara
string tempFilePath = "temp.jpg";

// Dapatkan ukuran gambar yang dihasilkan
List <Size> imageSizes = new List<Size>();
foreach (string imagePath in imagePaths)
{
    using (RasterImage image = (RasterImage)Image.Load(imagePath))
    {
        imageSizes.Add(image.Size);
    }
}

int newWidth = imageSizes.Sum(size => size.Width);
int newHeight = imageSizes.Max(size => size.Height);

// Gabungkan gambar menjadi yang baru
Source tempFileSource = new FileCreateSource(tempFilePath, isTemporal: true);

// Buat opsi jpeg
JpegOptions options = new JpegOptions() { Source = tempFileSource, Quality = 100 };
using (JpegImage newImage = (JpegImage)Image.Create(options, newWidth, newHeight))
{
    int stitchedWidth = 0;
    
    // Gabungkan gambar
    foreach (string imagePath in imagePaths)
    {
        using (RasterImage image = (RasterImage)Image.Load(imagePath))
        {
            Rectangle bounds = new Rectangle(stitchedWidth, 0, image.Width, image.Height);
            newImage.SaveArgb32Pixels(bounds, image.LoadArgb32Pixels(image.Bounds));
            stitchedWidth += image.Width;
        }
    }
    
    // Simpan gambar gabungan
    newImage.Save(outputPath);
}

C# Image Merging API - Dapatkan Lisensi Gratis

Anda bisa mendapatkan lisensi sementara gratis dan menggabungkan gambar tanpa batasan evaluasi.

Kesimpulan

Pada artikel ini, Anda telah mempelajari cara menggabungkan beberapa gambar menjadi satu gambar menggunakan C#. Contoh kode telah menunjukkan cara menggabungkan gambar secara vertikal dan horizontal. Selain itu, Anda dapat mempelajari lebih lanjut tentang API pemrosesan gambar .NET menggunakan dokumentasi. Selain itu, Anda dapat membagikan pertanyaan Anda kepada kami melalui forum kami.

Lihat juga

Info: Aspose menyediakan aplikasi web Kolase GRATIS. Dengan menggunakan layanan online ini, Anda dapat menggabungkan gambar JPG ke JPG atau PNG ke PNG, membuat kisi foto, dan seterusnya.