מיזוג תמונות ב-Java

יש מגוון של תרחישים שבהם עריכת תמונות ומניפולציה מבוצעות באופן פרוגרמטי. בעריכת תמונות, מיזוג תמונות הוא תכונה חשובה המשמשת לשילוב שתי תמונות או יותר, למשל, ליצירת קולאז’. במאמר זה תלמדו כיצד למזג תמונות מרובות לתמונה אחת ב-Java. נדגים במפורש כיצד למזג תמונות אופקית ואנכית.

Java API למיזוג תמונות - הורדה חינם

Aspose.Imaging for Java הוא ממשק API רב עוצמה לעיבוד תמונה המאפשר לך לעבוד עם מגוון רחב של פורמטים של תמונה. הוא מספק מגוון תכונות הנדרשות לעריכת תמונות. אנו נשתמש ב-API זה כדי למזג את התמונות שלנו בפוסט זה בבלוג. אתה יכול להוריד את ה-API או להתקין אותו באמצעות התצורות הבאות של 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>

מיזוג תמונות מרובות ב-Java

אתה יכול למזג את התמונות בכל אחת משתי הדרכים: אנכית ואופקית. במיזוג אנכי, תמונות משולבות אחת אחת בכיוון אנכי. בעוד שבמיזוג אופקי, התמונות מצורפות זו לזו בכיוון האופקי. אז בואו נראה איך למזג תמונות בשתי הדרכים.

מיזוג תמונות אופקית ב-Java

להלן השלבים למיזוג תמונות אופקית באמצעות Java.

  • ראשית, ציין את הנתיבים של התמונות במערך מחרוזות.
  • חשב את הגובה והרוחב של התמונה המתקבלת.
  • צור אובייקט במחלקה JpegOptions והגדר את האפשרויות הנדרשות.
  • צור אובייקט במחלקה JpegImage ואתחול אותו עם אובייקט JpegOptions והגובה והרוחב של התמונה שנוצרה.
  • עברו בלולאה ברשימת התמונות וטען כל תמונה באמצעות המחלקה RasterImage.
  • צור מלבן עבור כל תמונה והוסף אותו לתמונה שנוצרה באמצעות שיטת JpegImage.saveArgb32Pixels().
  • הגדל את רוחב התפירה בכל איטרציה.
  • לאחר שתסיים, שמור את התמונה שנוצרה בשיטת JpegImage.save(string).

דוגמת הקוד הבאה מראה כיצד למזג תמונות אופקית ב-Java.

// רשימת תמונות
String[] imagePaths = { "image.jpg", "image.jpg" };

// נתיב תמונה פלט
String outputPath = "output-horizontal.jpg";
String tempFilePath = "temp.jpg";

// קבל את גודל התמונה המתקבל
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());
	}
}

// שלב תמונות לאחד חדש
try (JpegOptions options = new JpegOptions()) {
	Source tempFileSource = new FileCreateSource(tempFilePath, true);
	options.setSource(tempFileSource);
	options.setQuality(100);

  	// צור תמונה שהתקבלה
	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();
			}
		}
    
    		// שמור תמונת פלט
		newImage.save(outputPath);
	}
}

התמונה הבאה מציגה את הפלט של מיזוג שתי תמונות דומות בצורה אופקית.

מיזוג תמונות אופקית ב-Java

מיזוג תמונות אנכית ב-Java

כדי למזג את התמונות בצורה אנכית, אתה רק צריך להחליף את התפקידים של מאפייני גובה ורוחב. שאר הקוד יהיה זהה. דגימת הקוד הבאה מדגימה כיצד למזג מספר תמונות בצורה אנכית ב-Java.

// רשימת תמונות
String[] imagePaths = { "image.jpg", "image.jpg" };

// נתיב תמונת הפלט
String outputPath = "output-vertical.jpg";

// קבל את גודל התמונה המתקבל
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();
	}
}

// שלב תמונות לאחד חדש
try (JpegOptions options = new JpegOptions()) {
	options.setSource(new StreamSource()); // empty
	options.setQuality(100);
  
  	// צור תמונה שהתקבלה
	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();
			}
		}
    		// שמור את התמונה שנוצרה
		newImage.save(outputPath);
	}
}

התמונה הבאה מציגה את הפלט של מיזוג שתי תמונות דומות בצורה אנכית.

מיזוג תמונות אנכית ב-Java

מיזוג תמונות PNG ב-Java

בסעיפים הקודמים, הדגמנו כיצד למזג תמונות בפורמט JPG. עם זאת, ייתכן שתצטרך למזג תמונות גם בפורמט PNG. כדי למזג תמונות PNG, אתה רק צריך להחליף את מחלקות JpegImage ו-JpegOptions במחלקות PngImage ו-PngOptions בהתאמה ושאר הקוד יישאר זהה.

דוגמת הקוד הבאה מראה כיצד למזג תמונות מרובות בפורמט PNG ב-Java.

// רשימת תמונות
String[] imagePaths = { "image.png", "image.png" };

// נתיב תמונה פלט
String outputPath = "output-horizontal.png";
String tempFilePath = "temp.png";

// קבל את גודל התמונה המתקבל
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());
	}
}

// שלב תמונות לאחד חדש
try (PngOptions options = new PngOptions()) {
	Source tempFileSource = new FileCreateSource(tempFilePath, true);
	options.setSource(tempFileSource);

  	// צור תמונה שהתקבלה
	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();
			}
		}
    		// שמור תמונה
		newImage.save(outputPath);
	}
}

Java Image Merging API - קבל רישיון חינם

אתה יכול לקבל רישיון זמני בחינם ולמזג את התמונות ללא מגבלות הערכה.

סיכום

במאמר זה, למדת כיצד למזג מספר תמונות לתמונה אחת באמצעות Java. דוגמאות הקוד של Java הדגימו כיצד לשלב את התמונות בצורה אנכית ואופקית. בנוסף, אתה יכול לחקור עוד על ה-API לעיבוד תמונה של Java באמצעות תיעוד. כמו כן, אתה יכול לשתף אותנו בשאילתות שלך דרך הפורום שלנו.

ראה גם

מידע: Aspose מספקת אפליקציית אינטרנט קולאז’ בחינם. באמצעות שירות מקוון זה, אתה יכול למזג תמונות JPG ל-JPG או PNG ל-PNG, ליצור רשתות תמונות וכן הלאה.