Java 图片合并类
2018-07-20 来源:open-open
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
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
上一篇:php图形图像处理
下一篇:C#的序列化与反序列化
最新资讯
热门推荐