主要是集合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工具类二维码生成跟背景图合并输出相关推荐

  1. JAVA实现二维码生成加背景图

    应用场景:比如制作海报.宣传图时需要添加扫码关注的二维码 先上效果图 ( ≧▽≦ ) POM.XML <!-- 二维码生成 --><!-- https://mvnrepository ...

  2. java利用core 工具实现二维码的生成与解析

    java利用core 工具实现二维码的生成与解析 简单介绍下二维码:二维码其实就是一种编码技术,只是这种编码技术是用在图片上了,将给定的一些文字,数字转换为一张经过特定编码的图片,而解析二维码则相反, ...

  3. PHP批量生成底部带编号二维码(二维码生成+文字生成图片+图片拼接合并)

    PHP批量生成带底部编号二维码(二维码生成+文字生成图片+图片拼接合并) 需求: 输入编号如 : cb05-0000001  至 cb05-0000500 批量生成 以编号为名称的下图二维码,然后压缩 ...

  4. java调用热敏打印机打印(包含二维码生成)

    项目中需要用到热敏打印机,并且在打印的同时,要生成二维码.并且打印,先说说二维码的生成吧 package com.jinke.util; import com.google.zxing.common. ...

  5. Qt开发二维码工具QR二维码生成和识别支持批量生成免费使用

    简介 Qt编写,使用第三方库libqrencode和QZxing,支持QR二维码生成和识别,二维码可批量生成,支持中文,还可以设置二维码大小颜色.免费使用,下载链接在本文底部,拿走不用谢,假如您慷慨大 ...

  6. java合成海报的工具类(二维码、头像、海报)

    参考网站 https://my.oschina.net/u/2426590/blog/3027726 java Graphics2D绘制文字并居中并解决服务器乱码问题 https://blog.csd ...

  7. java开发微信小程序——二维码生成

    https://blog.csdn.net/persistencegoing/article/details/84376427 工具类: public class TwoCode {         ...

  8. Thinkphp5 生成二维码并与背景图、文字组合生成分享海报

    自己做个记录,省的以后要去做过的项目里扒 1.下载安装包,地址: 链接:https://pan.baidu.com/s/1EBbgJYHXJp-4YQA7zDT5gw 提取码:qboc 2.下载完放到 ...

  9. 二维码生成并上传至七牛云 返回图片URL

    背景:最近一个项目的优惠券模块,需要将优惠券的券号转换成二维码展示出来,并保证能够被扫码枪识别. 接着,简要说明下编码思路,或者说步骤: 引入 qrcode 的Jar依赖 调用API,合理配置相关属性 ...

  10. 通用二维码生成 API 接口

    通用二维码生成 API 接口 提供通用的二维码生成接口. 1. 产品功能 支持分类字符生成: 直接返回存储在 CDN 中的二维码链接,可直接使用: 网址内容直接识别,生成网址类型的二维码,扫描后可直接 ...

最新文章

  1. 评分卡开发方法论scorecard
  2. Docker file 搭建 Nginx镜像
  3. linux下文件夹压缩解压.tar , .gz , .tar.gz , .bz2 , .tar.bz2 , .bz , .tar.bz , .zip , .rar
  4. julia(5)-变量与内部常量
  5. 联想p720装系统_分享联想ThinkPad X1 Carbon笔记本最稳的重装WIN10系统方法
  6. service zookeeper does not support chkconfig解决办法
  7. 某高校2006年招收学生3千人c语言,C语言程序设计例题
  8. copyWebpackPlugin的使用及常见问题(glob及Path ............... is not in cwd)
  9. pb9.0.3 8836补丁包_英语单数/复数名词傻傻分不清楚?3种不规则形态一次性搞懂!...
  10. 服务器系统中怎么调出dos界面,win10怎么进入dos界面_教你两种方法进入win10dos界面...
  11. 个人MD风格博客系统(未完成)
  12. 解决 AMD 卡 OBS 全屏录制黑屏
  13. WGS84经纬度坐标转化成UTM坐标
  14. centos安装7zip
  15. 让机器学习“如何学习”!从零开始读懂MAML!
  16. 【转】教你如何用手机连接电脑上网
  17. K8S报error: You must be logged in to the server错误
  18. 已有一个排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中
  19. 杭州辣府餐饮JAVA_超全“滨江美食必打卡list”,不收藏会后悔!年前再去搓几顿啊~...
  20. 途志分享几个抖音短视频拍摄技巧

热门文章

  1. sd卡计算机无法读取数据,怎么强制格式化sd卡-内存卡突然无法读取、数据损坏……整个人都是崩溃的!...
  2. 黑马程序员 HTML基础
  3. openvino系列 16. OpenVINO 手写字体识别 OCR
  4. 淘宝开源Web服务器Tengine简介
  5. P2525 Uim的情人节礼物·其之壱
  6. Cadence Allegro 差分走线单根走的方法图文教程
  7. java过滤器Filter
  8. 苹果蓝牙连接不上是什么原因_为什么无线鼠标几乎都不用蓝牙连接呢?延迟、回报率是硬伤...
  9. centos7:安装配置 virtualbox 增强功能 VBoxGuestAdditions,并实现物理机脚本控制虚拟机
  10. ISO 20088耐低温泄漏的测定_ISO20088-1/ISO20088-2/ISO20088-3