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; } }