import java.io.File;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
public class image {
public static void main(String args[]) {
try {
// 读取第一张图片
File fileOne = new File("E:\1.jpg");
BufferedImage ImageOne = ImageIO.read(fileOne);
int width = ImageOne.getWidth();// 图片宽度
int height = ImageOne.getHeight();// 图片高度
// 从图片中读取RGB
int[] ImageArrayOne = new int[width * height];
ImageArrayOne = ImageOne.getRGB(0, 0, width, height, ImageArrayOne,
0, width);
// 对第二张图片做相同的处理
File fileTwo = new File("E:\2.jpg");
BufferedImage ImageTwo = ImageIO.read(fileTwo);
int[] ImageArrayTwo = new int[width * height];
ImageArrayTwo = ImageTwo.getRGB(0, 0, width, height, ImageArrayTwo,
0, width);
// 生成新图片
// BufferedImage ImageNew = new BufferedImage(width * 2, height,
// BufferedImage.TYPE_INT_RGB);
BufferedImage ImageNew = new BufferedImage(width, height*2,
BufferedImage.TYPE_INT_RGB);
ImageNew.setRGB(0, 0, width, height, ImageArrayOne, 0, width);// 设置左半部分的RGB
// ImageNew.setRGB(width, 0, width, height, ImageArrayTwo, 0, width);// 设置右半部分的RGB
// ImageNew.setRGB(0, height, width, ImageOne.getHeight()+ImageTwo.getHeight(), ImageArrayTwo, 0, width);// 设置右半部分的RGB
ImageNew.setRGB(0, height, width, height, ImageArrayTwo, 0, width);// 设置右半部分的RGB
System.out.println("已经合成图片");
File outFile = new File("E:\out.jpg");
ImageIO.write(ImageNew, "jpg", outFile);// 写图片
} catch (Exception e) {
e.printStackTrace();
}
}
}
file.xml 为配置文件(win 7 平台)
<?xml version="1.0" encoding="UTF-8"?>
<files>
<file_first>E:\\1.jpg</file_first>
<file_second>E:\\2.jpg</file_second>
<file_out>E:\\out1.jpg</file_out>
</files>
try {
SAXReader reader = new SAXReader();
Document document = reader.read(new File("E:\\file.xml"));
Element root = document.getRootElement();
Element file_first = root.element("file_first");
Element file_second = root.element("file_second");
Element file_out = root.element("file_out");
// 读取第一张图片
File fileOne = new File(file_first.getText());
BufferedImage ImageOne = ImageIO.read(fileOne);
int width = ImageOne.getWidth();// 图片宽度
int height = ImageOne.getHeight();// 图片高度
// 从图片中读取RGB
int[] ImageArrayOne = new int[width * height];
ImageArrayOne = ImageOne.getRGB(0, 0, width, height, ImageArrayOne,
0, width);
// 对第二张图片做相同的处理
File fileTwo = new File(file_second.getText());
BufferedImage ImageTwo = ImageIO.read(fileTwo);
int[] ImageArrayTwo = new int[width * height];
ImageArrayTwo = ImageTwo.getRGB(0, 0, width, height, ImageArrayTwo,
0, width);
// 生成新图片
// BufferedImage ImageNew = new BufferedImage(width * 2, height,
// BufferedImage.TYPE_INT_RGB);
BufferedImage ImageNew = new BufferedImage(width, height*2,
BufferedImage.TYPE_INT_RGB);
ImageNew.setRGB(0, 0, width, height, ImageArrayOne, 0, width);// 设置左半部分的RGB
// ImageNew.setRGB(width, 0, width, height, ImageArrayTwo, 0, width);// 设置右半部分的RGB
// ImageNew.setRGB(0, height, width, ImageOne.getHeight()+ImageTwo.getHeight(), ImageArrayTwo, 0, width);// 设置右半部分的RGB
ImageNew.setRGB(0, height, width, height, ImageArrayTwo, 0, width);// 设置右半部分的RGB
System.out.println("已经合成图片");
File outFile = new File(file_out.getText());
ImageIO.write(ImageNew, "jpg", outFile);// 写图片
} catch (Exception e) {
e.printStackTrace();
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。