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图片的主要内容,如果未能解决你的问题,请参考以下文章

Imagemagick合并图片批处理

如何使用 PHP 将透明 PNG 与图像合并?

使用 PHP GD 库合并两个 PNG 图像

php 将一张jpeg类型的图片复制到一个png图片上丢失色彩

大型网站高并发下前后端常用解决方案总结java

php图片合成(多张图片合成一张)