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>