Bilder in Java zusammenführen

Es gibt eine Reihe von Szenarien, in denen die Bildbearbeitung und -manipulation programmgesteuert durchgeführt wird. In der Bildbearbeitung ist das Zusammenführen von Bildern eine wichtige Funktion, die verwendet wird, um zwei oder mehr Bilder zu kombinieren, beispielsweise um eine Collage zu erstellen. In diesem Artikel erfahren Sie, wie Sie mehrere Bilder in Java zu einem einzigen Bild zusammenführen. Wir werden explizit zeigen, wie man Bilder horizontal und vertikal zusammenführt.

Java-API zum Zusammenführen von Bildern – kostenloser Download

Aspose.Imaging for Java ist eine leistungsstarke Bildverarbeitungs-API, mit der Sie mit einer Vielzahl von Bildformaten arbeiten können. Es bietet eine Vielzahl von Funktionen, die für die Bildbearbeitung erforderlich sind. Wir werden diese API verwenden, um unsere Bilder in diesem Blogbeitrag zusammenzuführen. Sie können die API entweder herunterladen oder sie mit den folgenden Maven-Konfigurationen installieren.

<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>

Mehrere Bilder in Java zusammenführen

Sie können die Bilder auf zwei Arten zusammenführen: vertikal und horizontal. Beim vertikalen Zusammenführen werden Bilder einzeln in vertikaler Richtung kombiniert. Während beim horizontalen Zusammenführen die Bilder in horizontaler Richtung aneinander angehängt werden. Sehen wir uns also an, wie man Bilder auf beide Arten zusammenführt.

Bilder horizontal in Java zusammenführen

Im Folgenden sind die Schritte zum horizontalen Zusammenführen von Bildern mit Java aufgeführt.

  • Geben Sie zunächst die Pfade der Bilder in einem String-Array an.
  • Berechnen Sie die Höhe und Breite des resultierenden Bildes.
  • Erstellen Sie ein Objekt der Klasse JpegOptions und legen Sie die erforderlichen Optionen fest.
  • Erstellen Sie ein Objekt der Klasse JpegImage und initialisieren Sie es mit dem JpegOptions Objekt und der Höhe und Breite des resultierenden Bildes.
  • Durchlaufen Sie die Liste der Bilder und laden Sie jedes Bild mit der Klasse RasterImage.
  • Erstellen Sie für jedes Bild ein Rechteck und fügen Sie es mit der Methode JpegImage.saveArgb32Pixels() zum resultierenden Bild hinzu.
  • Erhöhen Sie die gestickte Breite in jeder Iteration.
  • Wenn Sie fertig sind, speichern Sie das resultierende Bild mit der Methode JpegImage.save(string).

Das folgende Codebeispiel zeigt, wie Bilder in Java horizontal zusammengeführt werden.

// Liste der Bilder
String[] imagePaths = { "image.jpg", "image.jpg" };

// Bildpfad ausgeben
String outputPath = "output-horizontal.jpg";
String tempFilePath = "temp.jpg";

// Holen Sie sich die resultierende Bildgröße
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());
	}
}

// Kombinieren Sie Bilder zu neuen
try (JpegOptions options = new JpegOptions()) {
	Source tempFileSource = new FileCreateSource(tempFilePath, true);
	options.setSource(tempFileSource);
	options.setQuality(100);

  	// Ergebnisbild erstellen
	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();
			}
		}
    
    		// Ausgabebild speichern
		newImage.save(outputPath);
	}
}

Das folgende Bild zeigt die Ausgabe der horizontalen Zusammenführung zweier ähnlicher Bilder.

Bilder horizontal in Java zusammenführen

Bilder vertikal in Java zusammenführen

Um die Bilder vertikal zusammenzuführen, müssen Sie nur die Rollen der Höhen und Breiteneigenschaften tauschen. Der Rest des Codes ist gleich. Das folgende Codebeispiel zeigt, wie mehrere Bilder in Java vertikal zusammengeführt werden.

// Liste der Bilder
String[] imagePaths = { "image.jpg", "image.jpg" };

// Pfad des Ausgabebildes
String outputPath = "output-vertical.jpg";

// Holen Sie sich die resultierende Bildgröße
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();
	}
}

// Kombinieren Sie Bilder zu neuen
try (JpegOptions options = new JpegOptions()) {
	options.setSource(new StreamSource()); // empty
	options.setQuality(100);
  
  	// Ergebnisbild erstellen
	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();
			}
		}
    		// Ergebnisbild speichern
		newImage.save(outputPath);
	}
}

Das folgende Bild zeigt die Ausgabe der vertikalen Zusammenführung zweier ähnlicher Bilder.

Bilder vertikal in Java zusammenführen

PNG bilder in Java zusammenführen

In den vorherigen Abschnitten haben wir gezeigt, wie Sie Bilder im JPG-Format zusammenführen. Möglicherweise müssen Sie jedoch auch Bilder im PNG-Format zusammenführen. Um PNG bilder zusammenzuführen, müssen Sie nur die Klassen JpegImage und JpegOptions durch die Klassen PngImage bzw. PngOptions ersetzen, und der Rest des Codes bleibt gleich.

Das folgende Codebeispiel zeigt, wie mehrere Bilder im PNG-Format in Java zusammengeführt werden.

// Liste der Bilder
String[] imagePaths = { "image.png", "image.png" };

// Bildpfad ausgeben
String outputPath = "output-horizontal.png";
String tempFilePath = "temp.png";

// Holen Sie sich die resultierende Bildgröße
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());
	}
}

// Kombinieren Sie Bilder zu neuen
try (PngOptions options = new PngOptions()) {
	Source tempFileSource = new FileCreateSource(tempFilePath, true);
	options.setSource(tempFileSource);

  	// Ergebnisbild erstellen
	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();
			}
		}
    		// Bild speichern
		newImage.save(outputPath);
	}
}

Java Image Merging API – Holen Sie sich eine kostenlose Lizenz

Sie können eine kostenlose temporäre Lizenz erhalten und die Bilder ohne Evaluierungseinschränkungen zusammenführen.

Fazit

In diesem Artikel haben Sie gelernt, wie Sie mehrere Bilder mit Java zu einem einzigen Bild zusammenführen. Die Java-Codebeispiele haben gezeigt, wie die Bilder vertikal und horizontal kombiniert werden. Darüber hinaus können Sie mithilfe der Dokumentation mehr über die Java bildverarbeitungs-API erfahren. Außerdem können Sie uns Ihre Fragen über unser Forum mitteilen.

Siehe auch

Info: Aspose bietet eine KOSTENLOSE Collage-Web-App. Mit diesem Onlinedienst können Sie JPG zu JPG oder PNG zu PNG bildern zusammenführen, Fotoraster erstellen und so weiter.