软件编程
位置:首页>> 软件编程>> java编程>> Java实现图片拼接

Java实现图片拼接

作者:Abel-Luan  发布时间:2023-02-28 23:01:27 

标签:java,图片拼接

本文实例为大家分享了Java实现图片拼接的具体代码,供大家参考,具体内容如下


/**
* 拼接图片(注:图片需长宽一致)
* @param files  img1 ,img2
* @param type  1:横向拼接 2:纵向拼接
* @param targetFile 合成新的图片地址
*/
public static void mergeImage(String[] files, int type, String targetFile) {
int len = files.length;
if (len < 1) {
 throw new RuntimeException("图片数量小于1");
}
File[] src = new File[len];
BufferedImage[] images = new BufferedImage[len];
int[][] ImageArrays = new int[len][];
for (int i = 0; i < len; i++) {
 try {
  src[i] = new File(files[i]);
  images[i] = ImageIO.read(src[i]);
 } catch (Exception e) {
  throw new RuntimeException(e);
 }
 int width = images[i].getWidth();
 int height = images[i].getHeight();
 ImageArrays[i] = new int[width * height];
 ImageArrays[i] = images[i].getRGB(0, 0, width, height, ImageArrays[i], 0, width);
}
int newHeight = 0;
int newWidth = 0;
for (int i = 0; i < images.length; i++) {
 // 横向
 if (type == 1) {
  newHeight = newHeight > images[i].getHeight() ? newHeight : images[i].getHeight();
  newWidth += images[i].getWidth();
 } else if (type == 2) {// 纵向
  newWidth = newWidth > images[i].getWidth() ? newWidth : images[i].getWidth();
  newHeight += images[i].getHeight();
 }
}
if (type == 1 && newWidth < 1) {
 return;
}
if (type == 2 && newHeight < 1) {
 return;
}
// 生成新图片
try {
 BufferedImage ImageNew = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_RGB);
 int height_i = 0;
 int width_i = 0;
 for (int i = 0; i < images.length; i++) {
  if (type == 1) {
   ImageNew.setRGB(width_i, 0, images[i].getWidth(), newHeight, ImageArrays[i], 0,
     images[i].getWidth());
   width_i += images[i].getWidth();
  } else if (type == 2) {
   ImageNew.setRGB(0, height_i, newWidth, images[i].getHeight(), ImageArrays[i], 0, newWidth);
   height_i += images[i].getHeight();
  }
 }
 //输出想要的图片
 ImageIO.write(ImageNew, targetFile.split("\\.")[1], new File(targetFile));
} catch (Exception e) {
 throw new RuntimeException(e);
}
}


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

来源:https://blog.csdn.net/qq_38114563/article/details/81408417

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com