JAVA

13年前
import java.io.File;  import java.awt.image.BufferedImage;  import javax.imageio.ImageIO;  public class test {   public static void main(String args[]) {    try {     // 读取第一张图片     File fileOne = new File("1.jpg");     BufferedImage ImageOne = ImageIO.read(fileOne);     int width = ImageOne.getWidth();// 图片宽度     int height = ImageOne.getHeight();// 图片高度     // 从图片中读取RGB      int[] ImageArrayOne = new int[width * height];      ImageArrayOne = ImageOne.getRGB(0, 0, width, height, ImageArrayOne,0, width);     // 对第二张图片做相同的处理     File fileTwo = new File("2.jpg");     BufferedImage ImageTwo = ImageIO.read(fileTwo);     int[] ImageArrayTwo = new int[width * height];     ImageArrayTwo = ImageTwo.getRGB(0, 0, width, height, ImageArrayTwo,0, width);     // 生成新图片     // BufferedImage ImageNew = new BufferedImage(width * 2, height,     // BufferedImage.TYPE_INT_RGB);     BufferedImage ImageNew = new BufferedImage(width, height*2,BufferedImage.TYPE_INT_RGB);     ImageNew.setRGB(0, 0, width, height, ImageArrayOne, 0, width);// 设置左半部分的RGB     ImageNew.setRGB(0, height, width, height, ImageArrayTwo, 0, width);// 设置右半部分的RGB     File outFile = new File("out.jpg");     ImageIO.write(ImageNew, "jpg", outFile);// 写图片     }catch (Exception e) {        e.printStackTrace();     }    }  /**合并多张图片  * Merge all pics in one  * #############  * # pic1 #  * #############  * # pic2 #  * #############  * # pic3 #  * #############  *  * @param pics  * @param dst_pic  * @return  */  public static boolean merge(String[] pics, String dst_pic, String type) {   int len = pics.length;   if (len < 1) {    System.out.println("pics len < 1");    return false;    }      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(pics[i]);     images[i] = ImageIO.read(src[i]);    } catch (Exception e) {      e.printStackTrace();      return false;    }   int width = images[i].getWidth();   int height = images[i].getHeight();   ImageArrays[i] = new int[width * height];// 从图片中读取RGB   ImageArrays[i] = images[i].getRGB(0, 0, width, height,   ImageArrays[i], 0, width);  }  int dst_height = 0;  for (int i = 0; i < images.length; i++)  dst_height += images[i].getHeight();  if (dst_height < 1) {   System.out.println("dst_height < 1");   return false;  }  // 生成新图片  try {   int dst_width = images[0].getWidth();   BufferedImage ImageNew = new BufferedImage(images[0].getWidth(),dst_height, BufferedImage.TYPE_INT_RGB);   int height_i = 0;   for (int i = 0; i < images.length; i++) {   ImageNew.setRGB(0, height_i, dst_width, images[i].getHeight(),ImageArrays[i], 0, dst_width);   height_i += images[i].getHeight();  }   File outFile = new File(dst_pic);   ImageIO.write(ImageNew, type, outFile);// 写图片  } catch (Exception e) {   e.printStackTrace();   return false;  }   return true;  }  }