ImageCombiner能够做什么?

ImageCombiner是一个专门用于Java服务端图片合成的工具,没有很复杂的功能,简单实用,从实际业务场景出发,提供简单的接口,几行代码即可实现图片拼合(当然用于合成水印也可以),素材上支持图片、文本、矩形三种,支持定位、缩放、旋转、圆角、透明度、颜色、字体、字号、删除线、居中绘制、文本自动换行等特性,足够覆盖图片合成的日常需求。

UML

ImageCombiner怎么使用

ImageCombiner使用起来相当简单,主要的类只用一个,new一个ImageCombiner对象,指定背景图片和输出格式,然后加入各种素材元素,设置元素的位置、大小和效果(如圆角、颜色、透明度等),调用combine()方法即可。combine()方法直接返回BufferedImage对象,也可以调用getCombinedImageStream()获得流,方便上传oss等后续操作,或者调用save()方法保存到本地,调试的时候比较方便。

版本要求

项目不依赖任何框架,完全基于JDK本身编写,没有各种花里胡哨的东西,性能还是相当不错的。

使用

只需要在项目内容引入包

<dependency><groupId>com.freewayso</groupId><artifactId>image-combiner</artifactId><version>2.3.2</version>
</dependency>

几个例子

package com.example.study.image.combiner;import com.freewayso.image.combiner.ImageCombiner;
import com.freewayso.image.combiner.enums.OutputFormat;import java.io.InputStream;/*** <h3>study</h3>* <p>最简单的例子</p>** @author : ZhangYuJie* @date : 2022-02-20 19:51**/public class SimpleDemo {public static void main(String[] args) throws Exception {//合成器(指定背景图和输出格式,整个图片的宽高和相关计算依赖于背景图,所以背景图的大小是个基准)ImageCombiner combiner = new ImageCombiner("https://sjb-oss.oss-cn-hangzhou.aliyuncs.com/atd/material/7/image/7f0afcc14e60695f0f28f2bb9801fcf5", OutputFormat.JPG);//加图片元素combiner.addImageElement("https://sjb-oss.oss-cn-hangzhou.aliyuncs.com/atd/material/7/image/7f0afcc14e60695f0f28f2bb9801fcf5", 0, 300);//加文本元素combiner.addTextElement("周末大放送", 60, 100, 960);//执行图片合并combiner.combine();//可以获取流(并上传oss等)InputStream is = combiner.getCombinedImageStream();//也可以保存到本地combiner.save("d://image.jpg");}
}
package com.example.study.image.combiner;import com.freewayso.image.combiner.ImageCombiner;
import com.freewayso.image.combiner.element.TextElement;
import com.freewayso.image.combiner.enums.OutputFormat;import java.awt.*;/*** <h3>study</h3>* <p></p>** @author : ZhangYuJie* @date : 2022-02-20 19:54**/public class DynamicWidthDemoTest {public static void main(String[] args) throws Exception {String bg = "https://sjb-oss.oss-cn-hangzhou.aliyuncs.com/atd/material/7/image/7f0afcc14e60695f0f28f2bb9801fcf5";ImageCombiner combiner = new ImageCombiner(bg, OutputFormat.JPG);String str1 = "您出征";String str2 = "某城市";     //外部传参,内容不定,宽度也不定String str3 = ",共在前线战斗了";String str4 = "365";       //外部传参,内容不定,宽度也不定String str5 = "天!";int fontSize = 60;int xxxFontSize = 80;int offsetX = 20;   //通过计算前一个元素的实际宽度,并累加这个偏移量,得到后一个元素正确的x坐标值int y = 300;//第一段TextElement element1 = combiner.addTextElement(str1, fontSize, offsetX, y);offsetX += element1.getWidth();     //计算宽度,并累加偏移量//第二段(内容不定,宽度也不定)TextElement element2 = combiner.addTextElement(str2, xxxFontSize, offsetX, y).setColor(Color.red);offsetX += element2.getWidth();//第三段TextElement element3 = combiner.addTextElement(str3, fontSize, offsetX, y);offsetX += element3.getWidth();//第四段(内容不定,宽度也不定)TextElement element4 = combiner.addTextElement(str4, xxxFontSize, offsetX, y).setColor(Color.red);offsetX += element4.getWidth();//第五段combiner.addTextElement(str5, fontSize, offsetX, y);combiner.combine();combiner.save("d://demo.jpg");}
}

具体使用文档官网地址:https://gitee.com/dromara/image-combiner

ImageCombiner图片合成工具相关推荐

  1. 百度一款前端图片合成工具库MI开源啦!

    什么是MI Mi全称mix-img,是一个前端图片合成工具库,它可以将多张图片和文字合成一个全新的图片.作为一个轻量级的图片合成解决方案,Mi支持多张图片并行加载合成,减少图片合成时间,提升前端开发者 ...

  2. java 图片合成 工具类_Java图片合成工具类

    importjava.awt.Color;importjava.awt.Graphics2D;importjava.awt.image.BufferedImage;importjava.io.File ...

  3. html雪碧图怎么设置,HTML 5开发的在线雪碧图片合成工具

    Css Sprite,有时也称为雪碧图.精灵图,是每一个前端开都会遇到的问题,也是常见的小图片加载优化手段.相信各位同学都清楚其原理,具体就不赘述了. 之前一直有动机利用html5实现一个合成雪碧图的 ...

  4. gif录屏与gif图片合成工具

    现在好多gif图片合成是收费的,而且可能还不太好用,这里分析的gif合成软件是个比较老的软件,但是用着还是挺好用的. 还有一个录屏软件,录制保存为gif文件. 百度网盘分享,无需积分: 链接:http ...

  5. Mac上好用的图片合成工具——“Morph Age”

    Morph Age for Mac是一款适用于macOS系统的图片合成软件,能够以视频的模式将两个不同的脸型图片合成变换为另一个图片.该软件的工作原理是允许在一个或多个图像上定义曲线,并且基于这些曲线 ...

  6. 【小工具】用PIL算法库制作出图片合成工具

    喜大普奔,之前写的爬歌工具,阅读超过10W,同时在线使用人数超过100人... 在众多同事及好友的邀请下,继续出炉了这个图片合成的脚本工具. 实现了分辨率.处理目录.批量处理参数的自定义,不同大小图片 ...

  7. 分享111个Java源码,总有一款适合您

    Java源码 分享111个Java源码,总有一款适合您 源码下载链接:https://pan.baidu.com/s/1fycjYHA7y6r-IH8H7v5XKA?pwd=ag8l  提取码:ag8 ...

  8. android图片分辨率改变,android 通过修改图片像素实现CircleImageView

    CircleImageView实现方法有很多种,各有优缺点,因此需要按照不同的场景使用.我们今天使用修改图片像素的方法实现CircleImageView,主要知识点无非是勾股定理和点到圆形的距离. 素 ...

  9. php|thinkphp程序合成图片+文字+图片大小调整+正方形转换圆角+去除白色边框

    /**  * 图片合成工具类  * 说明:  * 拿过来不一定可以使用,需要自行调整每一步骤的参数,  * 处理步骤分开,调整大小--改变圆角--合成图片--添加文字  * 比较清晰,也可以封装到一个 ...

最新文章

  1. Qt中禁止调节窗口大小
  2. Xml,XPath,XSLTxue 学习方法
  3. 内存管理vma_(十三)Linux内存管理之vma/malloc/mmap
  4. ElasticSearch5.x实践_day05_03_Mapping_Meta-Fields
  5. jsp+easyui+DataGrid 例子
  6. SpringBoot :cannot be cast to org.springframework.web.accept.ContentNegotiationManager
  7. Java基础:Collections集合、Map集合综合案例 —— 斗地主
  8. URL地址 长度超出限制问题解决
  9. pygame学习笔记(6)——一个超级简单的游戏
  10. java 银行卡号_java银行卡号判断银行
  11. MFC + MDI文件拖拽功能
  12. UVALive 7269 Snake Carpet
  13. ae中合成设置的快捷键_Adobe AE快捷键大全
  14. Scala入门小纸条(4)
  15. 软件测试中的心理学效应
  16. Meta-Weight-Net[NIPS‘2019]:关于元学习/域自适应(meta learning/domain adaptation)优化噪声标签与类别不平衡的问题
  17. 网络上博弈——博弈匠心——真正的匠人精神
  18. HLT外网GitLab账号申请
  19. [ITIL]-ITIL4的七大指导原则
  20. 各厂家rtsp地址格式如下:

热门文章

  1. 无人驾驶技术——Radar雷达
  2. 暴风影音 彻底彻底无无广告广告
  3. android自动拨号 代码,在Android上,是否有一种方法可以强行自动自动拨号?_android_开发99编程知识库...
  4. Visio安装问题解决:office即点即用安装程序
  5. Microsoft office professional plus2010
  6. 助力智慧医疗|解析i.MX8MM在麻醉系统中的应用方案
  7. 分享两个苹果cms10采集新闻和明星接口接口
  8. freeswitch 部署测试流程
  9. Ubuntu笔记本屏幕亮度调节问题
  10. 【公告 | 阿布扎比全球市场为中东和北非地区推出加密资产框架】