功能

竖向合成多张大小不一致的图片,以最宽图片的为宽为合成后的宽度, 高为所有图片的总高度.图片宽度没有达到合成的宽度则填充部分使用白色画布填充.

代码

 /*** 多张图片进行竖向合并成一张图片* @param imageFiles 图片文件* @param dstPath 合成图片路径* @param hasLine 是否标识合成分割线* @return*/public static boolean mergeImages(List<File> imageFiles, String dstPath, boolean hasLine) {try {Integer allWidth = 0;Integer allHeight = 0;List<BufferedImage> imgs = new ArrayList<>();for(int i = 0; i < imageFiles.size(); i++){imgs.add(ImageIO.read(imageFiles.get(i)));//取宽数据if (allWidth < imgs.get(i).getWidth()) {allWidth = imgs.get(i).getWidth();}allHeight += imgs.get(i).getHeight();}BufferedImage combined = new BufferedImage(allWidth, allHeight, BufferedImage.TYPE_INT_RGB);Graphics2D g = combined.createGraphics();g.setColor(Color.WHITE);g.fillRect(0, 0, allWidth, allHeight);// 竖向合成Integer height = 0;for(int i = 0; i < imgs.size(); i++){g.drawImage(imgs.get(i), 0, height, null);height +=  imgs.get(i).getHeight();if (hasLine && i != imgs.size() - 1) {g.setColor(Color.RED);//line需要占用一个像素,所以height-1才能保证不被后续的image覆盖BasicStroke stroke = new BasicStroke(2.5f, BasicStroke.CAP_BUTT,BasicStroke.JOIN_ROUND, 3.5f, new float[] { 10, 5 }, 0f);g.setStroke(stroke);g.drawLine(0, height - 1, allWidth, height - 1);}}ImageIO.write(combined, "jpg", new File(dstPath));System.out.println("===合成成功====");} catch (Exception e) {System.out.println("===合成失败====");System.out.println(StringUtil.exceptionToString(e));return false;}return true;}

测试效果:

Java实现图片合成相关推荐

  1. java 处理图片图片合成

    最近写了一个java的图片合成相关的项目,真的是一踩一个坑,下面博主说说遇见的一些坑和怎么解决的这些问题. 本文主要讲图片合成,加文字还是比较简单的. 先讲下我的需求,把一张图片盖到另外一张图片上面, ...

  2. JAVA操作图片/合成/电子盖章等

    JAVA操作图片/合成/电子盖章等 /**** @param mainFile* @param file1* @param f 透明度 最大为1* @param response* @return* ...

  3. Java 实现图片合成

    2019独角兽企业重金招聘Python工程师标准>>> 图片合成 利用Java的绘图方法,实现图片合成 在开始之前,先定一个小目标,我们希望通过图片合成的方式,创建一个类似下面样式的 ...

  4. java进行图片合成以及写入自定义字体

    由于工作需要做了一个利用java的Graphics2D进行图片合成且在图片上写入自定义字体文字的小功能, 那就顺便记录一些痕迹,有什么不好的地方请见谅 public static void main( ...

  5. linux centos java kumo图片合成文字 词云插件 字体乱码问题

    linux下安装微软雅黑字体库 或者其他字体 jieba 词云 kumo相关 百度随便找个ttf安装就行 用winscp直接切目录 /usr/share/fonts/ 放入*.ttf字体文件 先看看f ...

  6. java实现图片合成gif图——输出到具体路径或流数据上传

    一.多图片转gif 转存到输出流 /*** 多图片转gif 转存到输出流** @param imageList* @param os* @throws IOException*/private sta ...

  7. JAVA 由图片合成gif文件

    1.需要四个类,直接应用到项目中,不需要做太多改动,除了导包: 2.jpgToGif函数需要传入两个参数,第一个参数为要合成的图片路径数组,第二个参数为合成的GIF图片将存在的路径. 例如: 第一个参 ...

  8. Java图片合成并引入外部字体写入文字

    业务需要将两个图片合成,并按指定字体写入标语以及用户的经纬度,代码如下: import cn.hutool.core.img.GraphicsUtil;import javax.imageio.Ima ...

  9. JAVA实现基于ZXing的二维码自动生成与图片合成

    JAVA实现基于ZXing的二维码自动生成与图片合成 近日做项目需要生成带有信息的二维码,并嵌入到一张图片中.实现思路采用Zxing生成二维码,java图形库进行图片的嵌入. 生成二维码 ZXing是 ...

最新文章

  1. 服务器技术综述(四)
  2. c 反编译工具_App安全检测实践基础——工具篇
  3. [小改进]Blog页面导航调整
  4. Windows下的ping
  5. 在抽象类中可以没有抽象方法_是否可以在最终课程中使用抽象方法?
  6. 征战云时代,为什么安全是关键命题?
  7. 深度学习基础(常见的网络2)
  8. Java 设计模式之 State 状态模式
  9. 电子厂计算机维修周记,电子厂实习周记【三篇】【完整版】
  10. 使用第三方插件Curvy为unity场景快速生成运动轨迹与赛道
  11. Chrome终极全屏模式Kiosk
  12. 量子计算(七):量子系统
  13. Python之父抛弃Python!现在学Python还有用吗?
  14. 通过Debug命令行清除BIOS Setup密码
  15. ubuntu安装samba共享文件夹并设置匿名用户登陆
  16. [学习笔记] 全角字符与半角字符的区别
  17. 陪学读书会——《定位》第⑤章:你不能由此及彼
  18. PyCharm基本配置:设置绿色护眼绿豆沙背景等
  19. 关于手机的挑选的精品帖子
  20. 解决VMware 16在Win7虚拟机安装VMware Tools时报 “Windows 无法验证此驱动程序软件的发布者”问题

热门文章

  1. STM32高级开发(15)-使用eclipse开发STM32
  2. 降噪蓝牙耳机哪款好?500元内半入耳降噪蓝牙耳机推荐
  3. 王牌战士没显示我的服务器,王牌战士号没了怎么回事 游戏档案被销号解决方法...
  4. Python开发mysql和mongo 连接类
  5. 此图形驱动程序无法找到兼容的图形硬件的解决方案(复制粘贴源于百度http://jingyan.baidu.com/article...
  6. Unity 3D 海水的实现2 折射与反射 离屏相机的渲染
  7. EndNote 20
  8. 图书管理系统(I/O)
  9. 原生webgl学习(六) WebGL写简单的汉字(一)
  10. 做ppt课件直播(课堂直播)使用云课堂直播软件的教程