JAVA

crashwall 13年前發布 | 2K 次閱讀 B2C

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>

 本文由用戶 crashwall 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!