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