Java 圖片合并類

eg756 9年前發布 | 1K 次閱讀 Java

package com.loyom.mp.handle;

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

public class ImageHandle {

public BufferedImage marge(String first, String last, boolean isVertical) {
    BufferedImage one = this.readImage(first);
    BufferedImage two = this.readImage(last);
    if (isVertical) {
        return this.mergeTwoImageByVertical(one, two);
    } else {
        return this.mergeTwoImageByHorizontal(one, two);
    }
}

public void saveImage(String savePath, BufferedImage image) {
    try {
        File file = new File(savePath);
        ImageIO.write(image, "jpg", file);// 寫圖片  
    } catch (IOException ex) {
        ex.printStackTrace();
    }
}

private BufferedImage mergeTwoImageByVertical(BufferedImage one, BufferedImage two) {
    int width = this.getWidth(one);
    int height = this.getHeight(one);

    int[] oneRPG = this.readImageRPG(one);
    int[] twoRPG = this.readImageRPG(two);

    BufferedImage result = new BufferedImage(width, height * 2, BufferedImage.TYPE_INT_RGB);
    result.setRGB(0, 0, width, height, oneRPG, 0, width);
    result.setRGB(0, height, width, height, twoRPG, 0, width);
    return result;
}

private BufferedImage mergeTwoImageByHorizontal(BufferedImage one, BufferedImage two) {
    int width = this.getWidth(one);
    int height = this.getHeight(one);

    int[] oneRPG = this.readImageRPG(one);
    int[] twoRPG = this.readImageRPG(two);

    BufferedImage result = new BufferedImage(width * 2, height, BufferedImage.TYPE_INT_RGB);
    result.setRGB(0, 0, width, height, oneRPG, 0, width);
    result.setRGB(width, 0, width, height, twoRPG, 0, width);
    return result;
}

private int[] readImageRPG(BufferedImage image) {
    int width = this.getWidth(image);
    int height = this.getHeight(image);
    int[] imageRPG = new int[width * height];// 從圖片中讀取RGB  
    imageRPG = image.getRGB(0, 0, width, height, imageRPG, 0, width);
    return imageRPG;
}

private int getWidth(BufferedImage image) {
    if (image == null) {
        return 0;
    }
    return image.getWidth();

}

private int getHeight(BufferedImage image) {
    if (image == null) {
        return 0;
    }
    return image.getHeight();
}

private BufferedImage readImage(String path) {
    try {
        File file = new File(path);
        return ImageIO.read(file);
    } catch (IOException ex) {
        ex.printStackTrace();
    }
    return null;
}

}</pre>
來自:http://my.oschina.net/u/2370543/blog/487821

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