Java实现图片合成
功能
竖向合成多张大小不一致的图片,以最宽图片的为宽为合成后的宽度, 高为所有图片的总高度.图片宽度没有达到合成的宽度则填充部分使用白色画布填充.
代码
/*** 多张图片进行竖向合并成一张图片* @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实现图片合成相关推荐
- java 处理图片图片合成
最近写了一个java的图片合成相关的项目,真的是一踩一个坑,下面博主说说遇见的一些坑和怎么解决的这些问题. 本文主要讲图片合成,加文字还是比较简单的. 先讲下我的需求,把一张图片盖到另外一张图片上面, ...
- JAVA操作图片/合成/电子盖章等
JAVA操作图片/合成/电子盖章等 /**** @param mainFile* @param file1* @param f 透明度 最大为1* @param response* @return* ...
- Java 实现图片合成
2019独角兽企业重金招聘Python工程师标准>>> 图片合成 利用Java的绘图方法,实现图片合成 在开始之前,先定一个小目标,我们希望通过图片合成的方式,创建一个类似下面样式的 ...
- java进行图片合成以及写入自定义字体
由于工作需要做了一个利用java的Graphics2D进行图片合成且在图片上写入自定义字体文字的小功能, 那就顺便记录一些痕迹,有什么不好的地方请见谅 public static void main( ...
- linux centos java kumo图片合成文字 词云插件 字体乱码问题
linux下安装微软雅黑字体库 或者其他字体 jieba 词云 kumo相关 百度随便找个ttf安装就行 用winscp直接切目录 /usr/share/fonts/ 放入*.ttf字体文件 先看看f ...
- java实现图片合成gif图——输出到具体路径或流数据上传
一.多图片转gif 转存到输出流 /*** 多图片转gif 转存到输出流** @param imageList* @param os* @throws IOException*/private sta ...
- JAVA 由图片合成gif文件
1.需要四个类,直接应用到项目中,不需要做太多改动,除了导包: 2.jpgToGif函数需要传入两个参数,第一个参数为要合成的图片路径数组,第二个参数为合成的GIF图片将存在的路径. 例如: 第一个参 ...
- Java图片合成并引入外部字体写入文字
业务需要将两个图片合成,并按指定字体写入标语以及用户的经纬度,代码如下: import cn.hutool.core.img.GraphicsUtil;import javax.imageio.Ima ...
- JAVA实现基于ZXing的二维码自动生成与图片合成
JAVA实现基于ZXing的二维码自动生成与图片合成 近日做项目需要生成带有信息的二维码,并嵌入到一张图片中.实现思路采用Zxing生成二维码,java图形库进行图片的嵌入. 生成二维码 ZXing是 ...
最新文章
- 服务器技术综述(四)
- c 反编译工具_App安全检测实践基础——工具篇
- [小改进]Blog页面导航调整
- Windows下的ping
- 在抽象类中可以没有抽象方法_是否可以在最终课程中使用抽象方法?
- 征战云时代,为什么安全是关键命题?
- 深度学习基础(常见的网络2)
- Java 设计模式之 State 状态模式
- 电子厂计算机维修周记,电子厂实习周记【三篇】【完整版】
- 使用第三方插件Curvy为unity场景快速生成运动轨迹与赛道
- Chrome终极全屏模式Kiosk
- 量子计算(七):量子系统
- Python之父抛弃Python!现在学Python还有用吗?
- 通过Debug命令行清除BIOS Setup密码
- ubuntu安装samba共享文件夹并设置匿名用户登陆
- [学习笔记] 全角字符与半角字符的区别
- 陪学读书会——《定位》第⑤章:你不能由此及彼
- PyCharm基本配置:设置绿色护眼绿豆沙背景等
- 关于手机的挑选的精品帖子
- 解决VMware 16在Win7虚拟机安装VMware Tools时报 “Windows 无法验证此驱动程序软件的发布者”问题
热门文章
- STM32高级开发(15)-使用eclipse开发STM32
- 降噪蓝牙耳机哪款好?500元内半入耳降噪蓝牙耳机推荐
- 王牌战士没显示我的服务器,王牌战士号没了怎么回事 游戏档案被销号解决方法...
- Python开发mysql和mongo 连接类
- 此图形驱动程序无法找到兼容的图形硬件的解决方案(复制粘贴源于百度http://jingyan.baidu.com/article...
- Unity 3D 海水的实现2 折射与反射 离屏相机的渲染
- EndNote 20
- 图书管理系统(I/O)
- 原生webgl学习(六) WebGL写简单的汉字(一)
- 做ppt课件直播(课堂直播)使用云课堂直播软件的教程