JAVA
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, height2,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; } }</pre>