TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
- import java.io.File;
- import java.awt.image.BufferedImage;
- import javax.imageio.ImageIO;
- public class test {
- public static void main(String args[]) {
- try {
- // 读取第一张图片
- File fileOne = new File("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("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(0, height, width, height, ImageArrayTwo, 0, width);// 设置右半部分的RGB
- File outFile = new File("out.jpg");
- ImageIO.write(ImageNew, "jpg", outFile);// 写图片
- }catch (Exception e) {
- e.printStackTrace();
- }
- }
- /**合并多张图片
- * Merge all pics in one
- * #############
- * # pic1 #
- * #############
- * # pic2 #
- * #############
- * # pic3 #
- * #############
- *
- * @param pics
- * @param dst_pic
- * @return
- */
- public static boolean merge(String[] pics, String dst_pic, String type) {
- int len = pics.length;
- if (len < 1) {
- System.out.println("pics len < 1");
- return false;
- }
-
- File[] src = new File[len];
- BufferedImage[] images = new BufferedImage[len];
- int[][] ImageArrays = new int[len][];
- for (int i = 0; i < len; i++) {
- try {
- src[i] = new File(pics[i]);
- images[i] = ImageIO.read(src[i]);
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- int width = images[i].getWidth();
- int height = images[i].getHeight();
- ImageArrays[i] = new int[width * height];// 从图片中读取RGB
- ImageArrays[i] = images[i].getRGB(0, 0, width, height,
- ImageArrays[i], 0, width);
- }
- int dst_height = 0;
- for (int i = 0; i < images.length; i++)
- dst_height += images[i].getHeight();
- if (dst_height < 1) {
- System.out.println("dst_height < 1");
- return false;
- }
- // 生成新图片
- try {
- int dst_width = images[0].getWidth();
- BufferedImage ImageNew = new BufferedImage(images[0].getWidth(),dst_height, BufferedImage.TYPE_INT_RGB);
- int height_i = 0;
- for (int i = 0; i < images.length; i++) {
- ImageNew.setRGB(0, height_i, dst_width, images[i].getHeight(),ImageArrays[i], 0, dst_width);
- height_i += images[i].getHeight();
- }
- File outFile = new File(dst_pic);
- ImageIO.write(ImageNew, type, outFile);// 写图片
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- return true;
- }
- }
复制代码
源码下载:http://file.javaxxz.com/2014/10/28/235545765.zip |
|