来自:http://my.oschina.net/u/2370543/blog/487821
- 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;
- }
- }
来源: http://www.phpxs.com/code/1001641/