Java之—hutool工具类二维码生成跟背景图合并输出
主要是集合hutool工具的使用,简单方便。
获取二维码
/*** 根据内容 获取二维码* @param content 内容* @return*/@Overridepublic BufferedImage getQrCode(String content,int width, int height) {//二维码设置QrConfig config = QrCodeUtils.getConfig(width, height);//生成指定url对应的二维码到文件,宽和高都是300像素BufferedImage bufferedImage = QrCodeUtil.generate(content,config);// 插入图片return bufferedImage;}
我为了公用都会单独拿出来定义一个设置方法
/*** 二维码基础设置* @param width 宽 300 * @param height 长 300* @return*/public static QrConfig getConfig(int width, int height){//300,300QrConfig config = new QrConfig(width, height);// 设置边距,既二维码和背景之间的边距config.setMargin(2);// 设置前景色,既二维码颜色(青色)config.setForeColor(Color.BLACK);// 设置背景色(灰色)config.setBackColor(Color.WHITE);/**高纠错级别 :像素块小,允许遮挡一定范围,但是像素块更密集*/config.setErrorCorrection(ErrorCorrectionLevel.H);return config;}
一,该方式为文件格式,主要用于自测和获取本地文件(不适用pass平台和服务器)
/*** 两个图片合并(加文字) 文件格式* @param sourceUrl 底部背景图* @param config 二维码基础配置* @param qrContent 二维码内容* @param qrX 二维码横坐标* @param qrY 二维码纵坐标* @param textContent 文字(一般为标题)* @param textFontSize 文字大小* @param textFontX 文字的横坐标* @param textFontY 文字的纵坐标* @return*/@Overridepublic ByteArrayInputStream getQrCodeUrl(String sourceUrl,QrConfig config,String qrContent,int qrX,int qrY,String textContent,int textFontSize,int textFontX,int textFontY) {//二维码设置 // QrConfig config = QrCodeUtils.getConfig();//1,生成二维码BufferedImage qrImage = QrCodeUtil.generate(qrContent, config);// 2,将图片合成在一起Image image = ImgUtil.pressImage(//底图ImgUtil.read(sourceUrl),//二维码图(水印图)qrImage, // ImgUtil.read(codeFile),qrX,//y坐标修正值。 默认在中间,偏移量相对于中间偏移qrY,//透明度1.0f);//3,加文字Image pressTextImage = ImgUtil.pressText(image,//titletextContent,//颜色Color.WHITE,//字体 42new Font("黑体", Font.BOLD, textFontSize),//x坐标修正值。 默认在中间,偏移量相对于中间偏移textFontX,//y坐标修正值。 默认在中间,偏移量相对于中间偏移textFontY,//透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字1.0f);//转为流ByteArrayInputStream inputStream = ImgUtil.toStream(pressTextImage, QrCodeUtils.FORMAT_NAME);return inputStream;}
二,输入输出流格式(重点,常用)
1,将网图或者本地的图片转为输入流。
2,然后再创建临时的输出流文件,将生成的图片放到流中,因为在pass平台,或者服务器上读不到file的文件的,要转成流格式。
3,输出生成的图片流,用流的方式进行上传阿里云华为云都行。
/*** 网络底图转为流,返回流格式,两个图片合并(加文字) * @param sourceUrl 底部背景图* @param config 二维码基础配置* @param qrContent 二维码内容* @param qrX 二维码横坐标* @param qrY 二维码纵坐标* @param textContent 文字(一般为标题)* @param textFontSize 文字大小* @param textFontX 文字的横坐标* @param textFontY 文字的纵坐标* @return*/@Overridepublic ByteArrayInputStream getQrCodeUrl(String sourceUrl,QrConfig config,String qrContent,int qrX,int qrY,String textContent,int textFontSize,int textFontX,int textFontY) {//二维码设置
// QrConfig config = QrCodeUtils.getConfig();//1,生成二维码BufferedImage qrImage = QrCodeUtil.generate(qrContent, config);//将网络图转换成流BufferedImage image = QrCodeUtils.stringTobufferedImage(sourceUrl);InputStream inputStream = ImgUtil.toStream(image, QrCodeEnum.CodeEnum.PNG.getDesc());//定义临时输出流ByteArrayOutputStream outputStream = new ByteArrayOutputStream();// 2,将图片合成在一起ImgUtil.pressImage(inputStream,outputStream,qrImage,qrX,//y坐标修正值。 默认在中间,偏移量相对于中间偏移qrY,//透明度QrCodeUtils.ALPHA);//3,加文字ByteArrayInputStream input = new ByteArrayInputStream(outputStream.toByteArray());ByteArrayOutputStream resultOut = new ByteArrayOutputStream();ImgUtil.pressText(input,resultOut,//titletextContent,//颜色Color.WHITE,//字体 42new Font(QrCodeEnum.CodeEnum.FONT_NAME.name(), Font.BOLD, textFontSize),//x坐标修正值。 默认在中间,偏移量相对于中间偏移textFontX,//y坐标修正值。 默认在中间,偏移量相对于中间偏移textFontY,//透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字QrCodeUtils.ALPHA);ByteArrayInputStream result = new ByteArrayInputStream(resultOut.toByteArray());return result;}
Java之—hutool工具类二维码生成跟背景图合并输出相关推荐
- JAVA实现二维码生成加背景图
应用场景:比如制作海报.宣传图时需要添加扫码关注的二维码 先上效果图 ( ≧▽≦ ) POM.XML <!-- 二维码生成 --><!-- https://mvnrepository ...
- java利用core 工具实现二维码的生成与解析
java利用core 工具实现二维码的生成与解析 简单介绍下二维码:二维码其实就是一种编码技术,只是这种编码技术是用在图片上了,将给定的一些文字,数字转换为一张经过特定编码的图片,而解析二维码则相反, ...
- PHP批量生成底部带编号二维码(二维码生成+文字生成图片+图片拼接合并)
PHP批量生成带底部编号二维码(二维码生成+文字生成图片+图片拼接合并) 需求: 输入编号如 : cb05-0000001 至 cb05-0000500 批量生成 以编号为名称的下图二维码,然后压缩 ...
- java调用热敏打印机打印(包含二维码生成)
项目中需要用到热敏打印机,并且在打印的同时,要生成二维码.并且打印,先说说二维码的生成吧 package com.jinke.util; import com.google.zxing.common. ...
- Qt开发二维码工具QR二维码生成和识别支持批量生成免费使用
简介 Qt编写,使用第三方库libqrencode和QZxing,支持QR二维码生成和识别,二维码可批量生成,支持中文,还可以设置二维码大小颜色.免费使用,下载链接在本文底部,拿走不用谢,假如您慷慨大 ...
- java合成海报的工具类(二维码、头像、海报)
参考网站 https://my.oschina.net/u/2426590/blog/3027726 java Graphics2D绘制文字并居中并解决服务器乱码问题 https://blog.csd ...
- java开发微信小程序——二维码生成
https://blog.csdn.net/persistencegoing/article/details/84376427 工具类: public class TwoCode { ...
- Thinkphp5 生成二维码并与背景图、文字组合生成分享海报
自己做个记录,省的以后要去做过的项目里扒 1.下载安装包,地址: 链接:https://pan.baidu.com/s/1EBbgJYHXJp-4YQA7zDT5gw 提取码:qboc 2.下载完放到 ...
- 二维码生成并上传至七牛云 返回图片URL
背景:最近一个项目的优惠券模块,需要将优惠券的券号转换成二维码展示出来,并保证能够被扫码枪识别. 接着,简要说明下编码思路,或者说步骤: 引入 qrcode 的Jar依赖 调用API,合理配置相关属性 ...
- 通用二维码生成 API 接口
通用二维码生成 API 接口 提供通用的二维码生成接口. 1. 产品功能 支持分类字符生成: 直接返回存储在 CDN 中的二维码链接,可直接使用: 网址内容直接识别,生成网址类型的二维码,扫描后可直接 ...
最新文章
- 评分卡开发方法论scorecard
- Docker file 搭建 Nginx镜像
- linux下文件夹压缩解压.tar , .gz , .tar.gz , .bz2 , .tar.bz2 , .bz , .tar.bz , .zip , .rar
- julia(5)-变量与内部常量
- 联想p720装系统_分享联想ThinkPad X1 Carbon笔记本最稳的重装WIN10系统方法
- service zookeeper does not support chkconfig解决办法
- 某高校2006年招收学生3千人c语言,C语言程序设计例题
- copyWebpackPlugin的使用及常见问题(glob及Path ............... is not in cwd)
- pb9.0.3 8836补丁包_英语单数/复数名词傻傻分不清楚?3种不规则形态一次性搞懂!...
- 服务器系统中怎么调出dos界面,win10怎么进入dos界面_教你两种方法进入win10dos界面...
- 个人MD风格博客系统(未完成)
- 解决 AMD 卡 OBS 全屏录制黑屏
- WGS84经纬度坐标转化成UTM坐标
- centos安装7zip
- 让机器学习“如何学习”!从零开始读懂MAML!
- 【转】教你如何用手机连接电脑上网
- K8S报error: You must be logged in to the server错误
- 已有一个排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中
- 杭州辣府餐饮JAVA_超全“滨江美食必打卡list”,不收藏会后悔!年前再去搓几顿啊~...
- 途志分享几个抖音短视频拍摄技巧
热门文章
- sd卡计算机无法读取数据,怎么强制格式化sd卡-内存卡突然无法读取、数据损坏……整个人都是崩溃的!...
- 黑马程序员 HTML基础
- openvino系列 16. OpenVINO 手写字体识别 OCR
- 淘宝开源Web服务器Tengine简介
- P2525 Uim的情人节礼物·其之壱
- Cadence Allegro 差分走线单根走的方法图文教程
- java过滤器Filter
- 苹果蓝牙连接不上是什么原因_为什么无线鼠标几乎都不用蓝牙连接呢?延迟、回报率是硬伤...
- centos7:安装配置 virtualbox 增强功能 VBoxGuestAdditions,并实现物理机脚本控制虚拟机
- ISO 20088耐低温泄漏的测定_ISO20088-1/ISO20088-2/ISO20088-3