Esistono diversi scenari in cui la modifica e la manipolazione delle immagini vengono eseguite a livello di codice. Nell’editing delle immagini, l’unione di immagini è una caratteristica importante che viene utilizzata per combinare due o più immagini, ad esempio per creare collage. In questo articolo imparerai come unire più immagini in un’unica immagine in Java. Dimostreremo esplicitamente come unire le immagini orizzontalmente e verticalmente.
API Java per unire le immagini - Download gratuito
Aspose.Imaging for Java è una potente API di elaborazione delle immagini che ti consente di lavorare con un’ampia gamma di formati di immagine. Fornisce una varietà di funzioni necessarie per la modifica delle immagini. Useremo questa API per unire le nostre immagini in questo post del blog. Puoi scaricare l’API o installarla utilizzando le seguenti configurazioni 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>
Unisci più immagini in Java
Puoi unire le immagini in uno dei due modi: verticalmente e orizzontalmente. Nell’unione verticale, le immagini vengono combinate una per una in direzione verticale. Mentre, nella fusione orizzontale, le immagini vengono aggiunte l’una all’altra in direzione orizzontale. Vediamo quindi come unire le immagini in entrambi i modi.
Unisci le immagini orizzontalmente in Java
Di seguito sono riportati i passaggi per unire le immagini orizzontalmente utilizzando Java.
- Innanzitutto, specifica i percorsi delle immagini in una matrice di stringhe.
- Calcola l’altezza e la larghezza dell’immagine risultante.
- Crea un oggetto della classe JpegOptions e imposta le opzioni richieste.
- Crea un oggetto della classe JpegImage e inizializzalo con l’oggetto JpegOptions e l’altezza e la larghezza dell’immagine risultante.
- Scorri l’elenco di immagini e carica ogni immagine usando la classe RasterImage.
- Crea un Rettangolo per ogni immagine e aggiungilo all’immagine risultante usando il metodo JpegImage.saveArgb32Pixels().
- Aumenta la larghezza cucita in ogni iterazione.
- Una volta terminato, salva l’immagine risultante usando il metodo JpegImage.save(string).
L’esempio di codice seguente mostra come unire le immagini orizzontalmente in Java.
// Elenco di immagini
String[] imagePaths = { "image.jpg", "image.jpg" };
// Percorso dell'immagine di output
String outputPath = "output-horizontal.jpg";
String tempFilePath = "temp.jpg";
// Ottieni la dimensione dell'immagine risultante
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());
}
}
// Combina le immagini in una nuova
try (JpegOptions options = new JpegOptions()) {
Source tempFileSource = new FileCreateSource(tempFilePath, true);
options.setSource(tempFileSource);
options.setQuality(100);
// Crea l'immagine risultante
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();
}
}
// Salva immagine di output
newImage.save(outputPath);
}
}
L’immagine seguente mostra l’output dell’unione di due immagini simili orizzontalmente.
Unisci le immagini verticalmente in Java
Per unire le immagini verticalmente, devi solo cambiare i ruoli delle proprietà di altezza e larghezza. Il resto del codice sarà lo stesso. L’esempio di codice seguente mostra come unire più immagini verticalmente in Java.
// Elenco di immagini
String[] imagePaths = { "image.jpg", "image.jpg" };
// Percorso dell'immagine di output
String outputPath = "output-vertical.jpg";
// Ottieni la dimensione dell'immagine risultante
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();
}
}
// Combina le immagini in una nuova
try (JpegOptions options = new JpegOptions()) {
options.setSource(new StreamSource()); // empty
options.setQuality(100);
// Crea l'immagine risultante
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();
}
}
// Salva l'immagine risultante
newImage.save(outputPath);
}
}
L’immagine seguente mostra l’output dell’unione di due immagini simili verticalmente.
Unisci immagini PNG in Java
Nelle sezioni precedenti, abbiamo dimostrato come unire le immagini in formato JPG. Tuttavia, potrebbe essere necessario unire anche le immagini in formato PNG. Per unire le immagini PNG, devi solo sostituire le classi JpegImage e JpegOptions rispettivamente con le classi PngImage e PngOptions e il resto del codice rimarrà lo stesso.
L’esempio di codice seguente mostra come unire più immagini in formato PNG in Java.
// Elenco di immagini
String[] imagePaths = { "image.png", "image.png" };
// Percorso dell'immagine di output
String outputPath = "output-horizontal.png";
String tempFilePath = "temp.png";
// Ottieni la dimensione dell'immagine risultante
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());
}
}
// Combina le immagini in una nuova
try (PngOptions options = new PngOptions()) {
Source tempFileSource = new FileCreateSource(tempFilePath, true);
options.setSource(tempFileSource);
// Crea l'immagine risultante
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();
}
}
// Salva immagine
newImage.save(outputPath);
}
}
API di unione di immagini Java: ottieni una licenza gratuita
Puoi ottenere una licenza temporanea gratuita e unire le immagini senza limitazioni di valutazione.
Conclusione
In questo articolo, hai imparato come unire più immagini in un’unica immagine usando Java. Gli esempi di codice Java hanno dimostrato come combinare le immagini verticalmente e orizzontalmente. Inoltre, puoi esplorare di più sull’API di elaborazione delle immagini Java utilizzando documentazione. Inoltre, puoi condividere le tue domande con noi tramite il nostro forum.
Guarda anche
- Converti immagini in scala di grigi in C#
- Aggiungi filigrana alle immagini usando C#
- Comprimi immagini PNG, JPEG e TIFF usando C#
Info: Aspose fornisce un’app Web Collage GRATUITA. Utilizzando questo servizio online, puoi unire immagini da JPG a JPG o da PNG a PNG, creare griglie di foto e così via.