Java合并png图片
package org.jimmy.autosearch2019.test; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.util.ArrayList; import javax.imageio.ImageIO; public class TestMergePic2019080801 { private static final String DIR_PATH = "D:/Document/201908/20190808/Pic/Test/"; private static final String PIC_NAME = "test201908081221"; private static final String MERGED_PIC_PATH = DIR_PATH + "testPic2019080801.png"; private static final String SUFFIX = "png"; public static void main(String[] args) { test(); } public static ArrayList<File> getAllFiles(String path,String fileName, String suffix, int size) { ArrayList<File> fileList = new ArrayList<File>(); for(int i = 1; i <= size; i++) { File file = new File(path + fileName + "_" + i + "." + suffix); if(file.exists()) { fileList.add(file); } } return fileList; } public static void mergeImagetogeter(String path, ArrayList<BufferedImage> picList, String suffix) { try { BufferedImage firstImage = picList.get(0); int w1 = firstImage.getWidth(); int h1 = firstImage.getHeight(); int width = w1; int height = h1 * picList.size(); BufferedImage newImage = new BufferedImage(width, height, firstImage.getType()); Graphics g = newImage.getGraphics(); int x = 0; int y = 0; for(int i = 0; i < picList.size(); i++) { BufferedImage currentImage = picList.get(i); y = i * h1; g.drawImage(currentImage, x, y, w1, h1, null); } ImageIO.write(newImage, suffix, new FileOutputStream(path)); g.dispose(); } catch (Exception e) { System.out.println(e.getMessage()); } } public static BufferedImage loadImageLocal(String imgName) { try { return ImageIO.read(new File(imgName)); } catch (Exception e) { System.out.println(e.getMessage()); } return null; } public static void test() { ArrayList<BufferedImage> picList = new ArrayList<BufferedImage>(); ArrayList<File> fileList = getAllFiles(DIR_PATH, PIC_NAME, SUFFIX, 52); for(int i = 0; i < fileList.size(); i++) { BufferedImage currentPic = loadImageLocal(fileList.get(i).getAbsolutePath()); picList.add(currentPic); } mergeImagetogeter(MERGED_PIC_PATH, picList, SUFFIX); //将多张图片合在一起 System.out.println("Successfully!"); } }
合并前:
效果图:
2015年10月-2023年6月 总计7年.
所有总计:7年.
我是唯物唯心二元论的,暂时主学法语.
学习打卡交流QQ群:946556683
所有总计:7年.
我是唯物唯心二元论的,暂时主学法语.
学习打卡交流QQ群:946556683