Java实现图片合成

Java实现图片合成,叠加 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;
    }

测试效果: 

 

 

ImageCombiner是一个专门用于Java服务端图片合成的工具 最近公司上了不少传播方面的需求,免不了合成各种营销图片,图片合成本身并不是什么高深的技术,但用底层api去搞确实繁琐,于是抽时间封装了一个小工具,初衷是解放生产力,后来发现挺好使,那就开源吧,花了一个整天重新整理了一下代码,作为自己从业十年第一个开源项目(打破零记录,哈哈),希望能够帮助到需要的小伙伴~ 阅读详情

相关推荐

Java实现合成图片

前言:应公司需求,需要将二维码和公司的logo进行合成。 实现步骤: 1、生成二维码。 2、切好logo图。 3、图片进行合成。 直接贴代码: /** * 生成二维码 * @param backLink 扫码回调链接 * @param savePath 二维码保存路径 * @return 返回保存路径(用于保存数据库) ...

chenmissyu的博客 5214

java实现合并图片

java实现合并图片

yushun的博客 3886

基于java实现PDF转图片图片合成PDF

PDF转高清图片,图片批量合成pdf

gfdgdshhg的博客 1382

java实现图片合成功能,两张图片合成一张

在工作中我们会常常遇到将两张图片合成为一张的需求,有时还会需要在图片上添加一些文字水印之类的,今天就和大家分享一下图片的合成功能如何实现。

初念初恋的博客 6769

【Java合并图片】使用Java实现两张图片合并成一张图片的功能(水平合并、垂直合并、透明背景颜色)

这篇文章,主要介绍如何使用Java实现两张图片合并成一张图片的功能。图片合并工具类可以实现的功能:垂直合并两个图片,水平合并两个图片(PS:可以推广到多个图片的合并)。设置合并的图片是否居中显示。设置合并图片的背景颜色,透明背景。设置合并图片的间隙。合并之后的图片输出成一个图片文件。合并之后的图片转换成base64编码字符串。

✅ Java 开发工程师 9524

利用Java程序把多张图片合成一张图片

利用Java程序把多张图片合成一张图片,利用Java程序把多张图片合成一张图片。

java中怎么合成图片_Java 实现图片合成

图片合成利用Java的绘图方法,实现图片合成在开始之前,先定一个小目标,我们希望通过图片合成的方式,创建一个类似下面样式的图片 I. 设计思路首先解析一下我们的目标实现图片合成,那么这些合成的基本组成单元有些什么?组成基本单元图片文字几何图形也就是说,我们可以将任意个图片,文字,几何图形,按照自己的意愿进行拼接,那么问题就转变成两个基本单元如何在画布上渲染基本单元之间如何配合使用II. 基本单元绘...

weixin_36051633的博客 1023

保姆级教程:用STM32CubeMX HAL库搞定ESP8266连接,附串口printf调试全流程

本文提供了一份详细的STM32CubeMX HAL库教程,指导开发者如何实现ESP8266无线模块的连接与调试。从开发环境搭建、串口配置到AT指令通信解析,涵盖了物联网开发中的关键步骤和常见问题解决方案,帮助开发者快速掌握STM32与ESP8266的集成技术。

weixin_28273593的博客 504

java 图片合成_Java 实现图片合成

图片合成利用Java的绘图方法,实现图片合成在开始之前,先定一个小目标,我们希望通过图片合成的方式,创建一个类似下面样式的图片I. 设计思路首先解析一下我们的目标实现图片合成,那么这些合成的基本组成单元有些什么?组成基本单元图片文字几何图形也就是说,我们可以将任意个图片,文字,几何图形,按照自己的意愿进行拼接,那么问题就转变成两个基本单元如何在画布上渲染基本单元之间如何配合使用II. 基本单元绘制...

weixin_39647499的博客 431

【Python 实战基础】如何绘制热力图来模拟绘制北京景区热度图

Python如何绘制热力图来模拟绘制北京景区热度图 文件读写 基础语法 字符串处理 文件生成 数据构建

菜鸟实战的博客 3401

Android11 关于三方应用获取su权限

SELinux,全称Security-Enhanced Linux,是一种基于Linux内核的安全机制。它通过强制访问控制(MAC)来增强Linux系统的安全性,如果不禁用SELinux,完成下面的修改可能会导致设备进入Recovery界面!adb shell getenforce 为Permissive(宽容模式),查看报错日志,发现是客户apk想使用su命令提权,但是没有权限!对于保护系统资源和防止未经授权访问非常有帮助!系统这边做修改,让su权限下放到三方应用.客户的apk运行报错。

sinat_37429535的博客 1902

Java实现二维码生成及图片合成

Java实现二维码生成及图片合成,使用ZXing生成二维码图片,然后合成图片。生活中一个很常见的小需求:把一个地址做成二维码码牌,比如商户收银,关注公众号等等。本文的事例就是把我的博客地址做成一个码牌。

嘉禾嘉宁papa 1万+

COMSOL介电弹性体数值仿真指南:预拉伸圆形DEA的稳态变形分析(II)

本期博客是《COMSOL介电弹性体数值仿真指南》系列博客中的一期。聚焦于介电弹性体驱动器(DEA)中最为经典的预拉伸圆形DEA驱动器构型,对其在COMSOL平台中的具体建模步骤进行介绍与讨论。

忘了面孔的Batou 354

如何使用java代码实现图片的合成

这段时间,接到了一个需求,要求用户使用手机自带相机进行自拍,然后用户自由地将照片移动到一个背景图片合适的位置,最后进行合成,要求合成后的照片右下角要加上二维码。 刚开始我使用的是h5的canvas画布实现,后来发现使用h5画布实现会带来一些弊端,最恶心的是前置摄像头拍的照片的旋转问题,弊端就不详细说了。 总之,为了降低开发难度,我只能使用java后台代码实现图片的合成。 java合成图片的原...

weixin_30338497的博客 672

AUTOSAR从入门到精通-汽车电子电气架构(EEA)(二)

需求的传递并非完全是瀑布式的单向传递,而是双向的,只有被下游接受了的需求才是有效的需求,而且,下游是可以反向对上游提出需求的。当街区的设计完成之后,接下来要做的就是每栋建筑的详细设计,建筑的设计者发布的图纸中规定了房屋的主要结构、所在位置与周边环境的相互关系,以及屋中各种组件的位置与相互之间结合的关系,比如砖混结构、房屋的具体位置和朝向、卧室与客厅的相对位置与尺寸、马桶在卫生间中的位置等,还会对各种建筑材料的选取原则给出具体的标准,比如水泥的标号,钢筋的型号,各种电线的等级要求等等。

getusushu的博客 373

多智能体记忆架构设计:从分层模型到一致性实践

多智能体记忆架构本质上是一个有状态、分布式、支持遗忘的知识系统。从分层模型入手,结合RBAC隔离、版本向量一致性以及混合存储,可以构建出既灵活又健壮的生产级方案。可微分记忆:让记忆的读写操作嵌入端到端训练。基于大模型的记忆压缩:用LLM自动生成情景摘要,取代规则式遗忘。联邦记忆:不同组织之间的多智能体系统在不共享原始数据的情况下协同记忆。希望本文能为你的多智能体项目提供一块坚实的基石。欢迎在评论区分享你在实践中遇到的记忆架构难题。

Ven%的博客 171

java实现两张图片合成一张,图片嵌套,背景图片添加二维码

两张图片合成一张 例如:一张二维码,一张背景图,把二维码放在背景图上。 Service层代码 图片保存到 @Service public class ResumeTemplateServiceImpl extends ServiceImpl<ResumeTemplateMapper, ResumeTemplate> implements IResumeTemplateService { private static String ComposeFileNameManual = "com

qq_44086060的博客 33万+

基于灰度区域生长算法的红外目标检测算法matlab仿真

基于灰度区域生长算法的红外目标检测算法是一种常用的红外目标检测技术。它通过对红外图像进行灰度区域生长,找到具有相似灰度值的像素区域来检测目标。在本文中,我们将详细介绍基于灰度区域生长算法的红外目标检测算法的原理、步骤和应用。一、原理灰度区域生长算法是一种基于像素相似性的区域分割算法。它通过对图像中具有相似灰度值的像素进行聚类,将它们组合成更大的区域。灰度区域生长算法通常包括以下步骤:1.初始化:选择一个种子点作为起始点,将其作为第一个区域的中心点。

平时工作较为繁忙,私信消息一般晚上回复,谢谢大家~~ 251

Java 实现图片合成

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34183910的博客 582

【AUTOSAR-E2E】-2.2-配置E2E:基于E2EPW配置一个TX发送的Signal Group(使用E2E Profile 2)

《共13页精讲》:此法也适用于E2E Profile 4/5/6/7/11/22 目录 1 检查CAN Matrix Arxml/DBC是否满足E2E需求 2 在DaVinci Developer中为Port添加E2E保护 3 在DaVinci Configurator settings设置 4 如何使用应用层的E2E保护 5 结尾 <--返回「Autosar_BSW高阶配置」总目录--> <--返回「Autosar_BSW高阶配置」专栏主页--> &lt.

「汽车电子助手」的博客 4219

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Java实现PDF转图片,多张合成一张图片功能

import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.rendering.PDFRenderer; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util..

zhanghj07409的专栏 1287

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

java graphics2d旋转_JAVA用Graphics2D实现图片旋转,缩放,合成

第一步:读入文件public BufferedImage loadImageLocal(String path) {try {return ImageIO.read(new File(path));} catch (IOException e) {e.printStackTrace();}return null;}第二步:缩放文件/**** @param mini 贴图* @param Scale...

weixin_36450447的博客 1172

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

java 合并png_Java实现批量PNG图片透明合成

【原由】这是我在实习时候写的程序,纯JAVA的!将来大家肯定能用到,在这里发出来分享,写的不好还希望能帮忙修改!【功能】批量PNG图片透明合成【注释】为了方便新手理解,我会和生活中绘画的逻辑结合说明,高手不要笑话我,嘿嘿!【步骤和原理】1、首先,确定我们要画什么图片,所以先File一下,在把它读取BufferedImage,这样才可以去画!就像我们有几张不同的照片(File),把它们画到一张画纸(...

weixin_30227775的博客 702

java 实现横竖向合成图片实例代码

import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.File; import java.util.ArrayList; import java.util.List; import javax.imageio.ImageIO; import com.zhuoshi.jcbigdata.util.I...

qq_40595055的博客 556

java实现图片合成,图片嵌套,背景图片添加二维码

代码仓库:picture-synthesis: 使用Java操作图片合成功能,提供底图和二维码可生成对应的邀请码海报我借鉴的一个小demo,包含生成二维码,操作多张图片合成,保存图片到本地,合成效果如下:入口:

m0_61891910的博客 471
上一篇: innodb内存结构-bufferpool
下一篇: 记一次BUG, 获取本周的第一天和最后一天
Box_clf
博客等级 码龄9年 252粉丝 84原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值