
Existuje řada scénářů, ve kterých se úpravy a manipulace s obrázky provádějí programově. Při úpravách obrázků je slučování obrázků důležitou funkcí, která se používá ke spojení dvou nebo více obrázků, například za účelem vytvoření koláže. V tomto článku se dozvíte, jak sloučit více obrázků do jednoho obrázku v Javě. Explicitně si ukážeme, jak sloučit obrázky horizontálně a vertikálně.
Java API pro sloučení obrázků – ke stažení zdarma
Aspose.Imaging for Java je výkonné rozhraní API pro zpracování obrázků, které umožňuje pracovat s širokou škálou formátů obrázků. Poskytuje řadu funkcí, které jsou nutné pro úpravu obrázků. Toto rozhraní API použijeme ke sloučení našich obrázků v tomto příspěvku na blogu. Rozhraní API si můžete buď stáhnout, nebo jej nainstalovat pomocí následujících konfigurací Maven.
<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>
Sloučit více obrázků v Javě
Obrázky můžete sloučit jedním ze dvou způsobů: vertikálně a horizontálně. Při vertikálním slučování se obrázky spojují jeden po druhém ve vertikálním směru. Kdežto při horizontálním slučování se obrázky k sobě připojují v horizontálním směru. Pojďme se tedy podívat, jak sloučit obrázky oběma způsoby.
Sloučit obrázky vodorovně v Javě
Níže jsou uvedeny kroky pro horizontální sloučení obrázků pomocí Java.
- Nejprve zadejte cesty k obrázkům v poli řetězců.
- Vypočítejte výšku a šířku výsledného obrázku.
- Vytvořte objekt třídy JpegOptions a nastavte požadované možnosti.
- Vytvořte objekt třídy JpegImage a inicializujte jej objektem JpegOptions a výškou a šířkou výsledného obrázku.
- Projděte seznam obrázků a načtěte každý obrázek pomocí třídy RasterImage.
- Vytvořte Rectangle pro každý obrázek a přidejte jej do výsledného obrázku pomocí metody JpegImage.saveArgb32Pixels().
- Zvětšete šířku šití v každé iteraci.
- Po dokončení uložte výsledný obrázek pomocí metody JpegImage.save(string).
Následující ukázka kódu ukazuje, jak horizontálně sloučit obrázky v Javě.
// Seznam obrázků
String[] imagePaths = { "image.jpg", "image.jpg" };
// Cesta výstupního obrazu
String outputPath = "output-horizontal.jpg";
String tempFilePath = "temp.jpg";
// Získejte výslednou velikost obrázku
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());
}
}
// Spojte obrázky do nového
try (JpegOptions options = new JpegOptions()) {
Source tempFileSource = new FileCreateSource(tempFilePath, true);
options.setSource(tempFileSource);
options.setQuality(100);
// Vytvořte výsledný obrázek
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();
}
}
// Uložit výstupní obrázek
newImage.save(outputPath);
}
}
Následující obrázek ukazuje výstup sloučení dvou podobných obrázků vodorovně.

Sloučit obrázky vertikálně v Javě
Chcete-li obrázky sloučit vertikálně, musíte pouze přepnout role vlastností výšky a šířky. Zbytek kódu bude stejný. Následující ukázka kódu ukazuje, jak sloučit více obrázků vertikálně v Javě.
// Seznam obrázků
String[] imagePaths = { "image.jpg", "image.jpg" };
// Cesta výstupního obrázku
String outputPath = "output-vertical.jpg";
// Získejte výslednou velikost obrázku
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();
}
}
// Spojte obrázky do nového
try (JpegOptions options = new JpegOptions()) {
options.setSource(new StreamSource()); // empty
options.setQuality(100);
// Vytvořte výsledný obrázek
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();
}
}
// Uložte výsledný obrázek
newImage.save(outputPath);
}
}
Následující obrázek ukazuje výstup sloučení dvou podobných obrázků svisle.

Sloučit obrázky PNG v Javě
V předchozích částech jsme si ukázali, jak sloučit obrázky ve formátu JPG. Možná však budete muset sloučit i obrázky ve formátu PNG. Chcete-li sloučit obrázky PNG, stačí nahradit třídy JpegImage a JpegOptions třídami PngImage a PngOptions a zbytek kódu zůstane stejný.
Následující ukázka kódu ukazuje, jak sloučit více obrázků ve formátu PNG v Javě.
// Seznam obrázků
String[] imagePaths = { "image.png", "image.png" };
// Cesta výstupního obrazu
String outputPath = "output-horizontal.png";
String tempFilePath = "temp.png";
// Získejte výslednou velikost obrázku
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());
}
}
// Spojte obrázky do nového
try (PngOptions options = new PngOptions()) {
Source tempFileSource = new FileCreateSource(tempFilePath, true);
options.setSource(tempFileSource);
// Vytvořte výsledný obrázek
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();
}
}
// Uložit obrázek
newImage.save(outputPath);
}
}
Java Image Merging API – Získejte bezplatnou licenci
Můžete získat bezplatnou dočasnou licenci a sloučit obrázky bez omezení hodnocení.
Závěr
V tomto článku jste se naučili, jak sloučit více obrázků do jednoho obrázku pomocí Java. Ukázky kódu Java ukázaly, jak kombinovat obrázky vertikálně a horizontálně. Kromě toho můžete prozkoumat více o rozhraní API pro zpracování obrazu Java pomocí dokumentace. Své dotazy s námi můžete sdílet také prostřednictvím našeho fóra.
Viz také
- Převést obrázky do stupňů šedi v C#
- Přidat vodoznak do obrázků pomocí C#
- Komprimujte obrázky PNG, JPEG a TIFF pomocí C#
Informace: Aspose poskytuje bezplatnou webovou aplikaci Collage. Pomocí této online služby můžete sloučit obrázky JPG do JPG nebo PNG do PNG, vytvářet mřížky fotografií a tak dále.