Java橫向、縱向合并圖片代碼

jopen 10年前發布 | 20K 次閱讀 Java Java開發

進行圖片對比時候想把兩張有差異的圖片放到一起。

將縱向合并的自己調整了下,源碼如下:

import java.io.File;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;

public class TestPic {
    public static void main(String[] args) {
        xPic();
    }

    public static void xPic(){//橫向處理圖片
        try {
            /* 1 讀取第一張圖片*/ 
            File fileOne = new File("E:\\1.png");
            BufferedImage imageFirst = ImageIO.read(fileOne);
            int width = imageFirst.getWidth();// 圖片寬度
            int height = imageFirst.getHeight();// 圖片高度
            int[] imageArrayFirst = new int[width * height];// 從圖片中讀取RGB
            imageArrayFirst = imageFirst.getRGB(0, 0, width, height, imageArrayFirst, 0, width);

            /* 1 對第二張圖片做相同的處理 */
            File fileTwo = new File("E:\\2.png");
            BufferedImage imageSecond = ImageIO.read(fileTwo);
            int[] imageArraySecond = new int[width * height];
            imageArraySecond = imageSecond.getRGB(0, 0, width, height, imageArraySecond, 0, width);

            // 生成新圖片 
            BufferedImage imageResult = new BufferedImage(width * 2 , height,BufferedImage.TYPE_INT_RGB);
            imageResult.setRGB(0, 0, width, height, imageArrayFirst, 0, width);// 設置左半部分的RGB
            imageResult.setRGB(width, 0, width, height, imageArraySecond, 0, width);// 設置右半部分的RGB
            File outFile = new File("D:\\out.jpg");
            ImageIO.write(imageResult, "jpg", outFile);// 寫圖片
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void yPic(){//縱向處理圖片
        try {
            /* 1 讀取第一張圖片*/ 
            File fileOne = new File("D:\\1.GIF");
            BufferedImage imageFirst = ImageIO.read(fileOne);
            int width = imageFirst.getWidth();// 圖片寬度
            int height = imageFirst.getHeight();// 圖片高度
            int[] imageArrayFirst = new int[width * height];// 從圖片中讀取RGB
            imageArrayFirst = imageFirst.getRGB(0, 0, width, height, imageArrayFirst, 0, width);

            /* 1 對第二張圖片做相同的處理 */
            File fileTwo = new File("D:\\1.GIF");
            BufferedImage imageSecond = ImageIO.read(fileTwo);
            int[] imageArraySecond = new int[width * height];
            imageArraySecond = imageSecond.getRGB(0, 0, width, height, imageArraySecond, 0, width);

            // 生成新圖片 
            BufferedImage imageResult = new BufferedImage(width, height * 2,BufferedImage.TYPE_INT_RGB);
            imageResult.setRGB(0, 0, width, height, imageArrayFirst, 0, width);// 設置左半部分的RGB
            imageResult.setRGB(0, height, width, height, imageArraySecond, 0, width);// 設置右半部分的RGB
            File outFile = new File("D:\\out.jpg");
            ImageIO.write(imageResult, "jpg", outFile);// 寫圖片
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

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