Java合并png图片
Posted jimmyseraph
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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!");
合并前:
效果图:
以上是关于Java合并png图片的主要内容,如果未能解决你的问题,请参考以下文章