Menggabungkan Gambar di Jawa

Ada berbagai skenario di mana pengeditan dan manipulasi gambar dilakukan secara terprogram. Dalam pengeditan gambar, penggabungan gambar merupakan fitur penting yang digunakan untuk menggabungkan dua gambar atau lebih, misalnya untuk membuat kolase. Pada artikel ini, Anda akan mempelajari cara menggabungkan beberapa gambar menjadi satu gambar di Java. Kami akan secara eksplisit mendemonstrasikan cara menggabungkan gambar secara horizontal dan vertikal.

Java API untuk Menggabungkan Gambar - Unduhan Gratis

Aspose.Imaging for Java adalah API pemrosesan gambar canggih yang memungkinkan Anda bekerja dengan berbagai format gambar. Ini menyediakan berbagai fitur yang diperlukan untuk mengedit gambar. Kami akan menggunakan API ini untuk menggabungkan gambar kami di posting blog ini. Anda dapat mengunduh API atau menginstalnya menggunakan konfigurasi Maven berikut.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository> 

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-imaging</artifactId>
    <version>22.7</version>
</dependency>

Menggabungkan Beberapa Gambar di Jawa

Anda dapat menggabungkan gambar dengan salah satu dari dua cara: vertikal dan horizontal. Dalam penggabungan vertikal, gambar digabungkan satu per satu dalam arah vertikal. Sedangkan, dalam penggabungan horizontal, gambar ditambahkan satu sama lain dalam arah horizontal. Jadi mari kita lihat cara menggabungkan gambar dengan kedua cara tersebut.

Menggabungkan Gambar Secara Horizontal di Jawa

Berikut langkah-langkah menggabungkan gambar secara horizontal menggunakan Java.

  • Pertama, tentukan jalur gambar dalam larik string.
  • Hitung tinggi dan lebar gambar yang dihasilkan.
  • Buat objek kelas JpegOptions dan atur opsi yang diperlukan.
  • Buat objek kelas JpegImage dan inisialisasi dengan objek JpegOptions serta tinggi dan lebar gambar yang dihasilkan.
  • Ulangi daftar gambar dan muat setiap gambar menggunakan kelas RasterImage.
  • Buat Persegi Panjang untuk setiap gambar dan tambahkan ke gambar yang dihasilkan menggunakan metode JpegImage.saveArgb32Pixels().
  • Tingkatkan lebar jahitan di setiap iterasi.
  • Setelah selesai, simpan gambar yang dihasilkan menggunakan metode JpegImage.save(string).

Contoh kode berikut menunjukkan cara menggabungkan gambar secara horizontal di Java.

// Daftar gambar
String[] imagePaths = { "image.jpg", "image.jpg" };

// Jalur gambar keluaran
String outputPath = "output-horizontal.jpg";
String tempFilePath = "temp.jpg";

// Dapatkan ukuran gambar yang dihasilkan
int newWidth = 0;
int newHeight = 0;
for (String imagePath : imagePaths) {
	try (RasterImage image = (com.aspose.imaging.RasterImage) com.aspose.imaging.Image.load(imagePath)) {
		Size size = image.getSize();
		newWidth += size.getWidth();
		newHeight = Math.max(newHeight, size.getHeight());
	}
}

// Gabungkan gambar menjadi yang baru
try (JpegOptions options = new JpegOptions()) {
	Source tempFileSource = new FileCreateSource(tempFilePath, true);
	options.setSource(tempFileSource);
	options.setQuality(100);

  	// Buat gambar yang dihasilkan
	try (JpegImage newImage = (JpegImage) Image.create(options, newWidth, newHeight)) {
		int stitchedWidth = 0;
		for (String imagePath : imagePaths) {
			try (RasterImage image = (RasterImage) Image.load(imagePath)) {
				Rectangle bounds = new Rectangle(stitchedWidth, 0, image.getWidth(), image.getHeight());
				newImage.saveArgb32Pixels(bounds, image.loadArgb32Pixels(image.getBounds()));
				stitchedWidth += image.getWidth();
			}
		}
    
    		// Simpan gambar keluaran
		newImage.save(outputPath);
	}
}

Gambar berikut menunjukkan hasil penggabungan dua gambar serupa secara horizontal.

Menggabungkan Gambar Secara Horizontal di Jawa

Menggabungkan Gambar Secara Vertikal di Jawa

Untuk menggabungkan gambar secara vertikal, Anda hanya perlu mengganti peran properti tinggi dan lebar. Kode lainnya akan sama. Contoh kode berikut menunjukkan cara menggabungkan beberapa gambar secara vertikal di Java.

// Daftar gambar
String[] imagePaths = { "image.jpg", "image.jpg" };

// Jalur gambar keluaran
String outputPath = "output-vertical.jpg";

// Dapatkan ukuran gambar yang dihasilkan
int newWidth = 0;
int newHeight = 0;
for (String imagePath : imagePaths) {
	try (RasterImage image = (RasterImage) Image.load(imagePath)) {
		Size size = image.getSize();
		newWidth = Math.max(newWidth, size.getWidth());
		newHeight += size.getHeight();
	}
}

// Gabungkan gambar menjadi yang baru
try (JpegOptions options = new JpegOptions()) {
	options.setSource(new StreamSource()); // empty
	options.setQuality(100);
  
  	// Buat gambar yang dihasilkan
	try (JpegImage newImage = (JpegImage) Image.create(options, newWidth, newHeight)) {
		int stitchedHeight = 0;
		for (String imagePath : imagePaths) {
			try (RasterImage image = (RasterImage) Image.load(imagePath)) {
				Rectangle bounds = new Rectangle(0, stitchedHeight, image.getWidth(), image.getHeight());
				newImage.saveArgb32Pixels(bounds, image.loadArgb32Pixels(image.getBounds()));
				stitchedHeight += image.getHeight();
			}
		}
    		// Simpan gambar yang dihasilkan
		newImage.save(outputPath);
	}
}

Gambar berikut menunjukkan hasil penggabungan dua gambar serupa secara vertikal.

Menggabungkan Gambar Secara Vertikal di Jawa

Gabungkan Gambar PNG di Jawa

Di bagian sebelumnya, kami mendemonstrasikan cara menggabungkan gambar dalam format JPG. Namun, Anda mungkin juga perlu menggabungkan gambar dalam format PNG. Untuk menggabungkan gambar PNG, Anda hanya perlu mengganti kelas JpegImage dan JpegOptions dengan kelas PngImage dan PngOptions dan kode lainnya akan tetap sama.

Contoh kode berikut menunjukkan cara menggabungkan beberapa gambar dalam format PNG di Java.

// Daftar gambar
String[] imagePaths = { "image.png", "image.png" };

// Jalur gambar keluaran
String outputPath = "output-horizontal.png";
String tempFilePath = "temp.png";

// Dapatkan ukuran gambar yang dihasilkan
int newWidth = 0;
int newHeight = 0;
for (String imagePath : imagePaths) {
	try (RasterImage image = (com.aspose.imaging.RasterImage) com.aspose.imaging.Image.load(imagePath)) {
		Size size = image.getSize();
		newWidth += size.getWidth();
		newHeight = Math.max(newHeight, size.getHeight());
	}
}

// Gabungkan gambar menjadi yang baru
try (PngOptions options = new PngOptions()) {
	Source tempFileSource = new FileCreateSource(tempFilePath, true);
	options.setSource(tempFileSource);

  	// Buat gambar yang dihasilkan
	try (PngImage newImage = (PngImage) Image.create(options, newWidth, newHeight)) {
		int stitchedWidth = 0;
		for (String imagePath : imagePaths) {
			try (RasterImage image = (RasterImage) Image.load(imagePath)) {
				Rectangle bounds = new Rectangle(stitchedWidth, 0, image.getWidth(), image.getHeight());
				newImage.saveArgb32Pixels(bounds, image.loadArgb32Pixels(image.getBounds()));
				stitchedWidth += image.getWidth();
			}
		}
    		// Menyimpan gambar
		newImage.save(outputPath);
	}
}

API Penggabungan Gambar Java - 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 Java. Contoh kode Java telah menunjukkan cara menggabungkan gambar secara vertikal dan horizontal. Selain itu, Anda dapat mempelajari lebih lanjut tentang API pemrosesan gambar Java 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.