java 合并类_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;

}

}

来自:http://my.oschina.net/u/2370543/blog/487821

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值