看效果图

package com.hxx.utils;import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.awt.image.ImageObserver;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import javax.imageio.ImageIO;public class HxxCodeUtils {private static final int QRCOLOR = 2105119;private static final int BGWHITE = 16777215;private static Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>() {private static final long serialVersionUID = 1L;{this.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);this.put(EncodeHintType.CHARACTER_SET, "utf-8");this.put(EncodeHintType.MARGIN, 0);}};public HxxCodeUtils() {}public static void CreatQRCode(File codeFile, File bgImgFile, Integer WIDTH, Integer HEIGHT, String qrUrl, String note, String tui, Integer size, Integer imagesX, Integer imagesY, Integer text1X, Integer text1Y, Integer text2X, Integer text2Y) {try {MultiFormatWriter multiFormatWriter = new MultiFormatWriter();BitMatrix bm = multiFormatWriter.encode(qrUrl, BarcodeFormat.QR_CODE, WIDTH, HEIGHT, hints);BufferedImage image = new BufferedImage(WIDTH, HEIGHT, 1);int y;for(int x = 0; x < WIDTH; ++x) {for(y = 0; y < HEIGHT; ++y) {image.setRGB(x, y, bm.get(x, y) ? 2105119 : 16777215);}}BufferedImage backgroundImage = ImageIO.read(bgImgFile);y = backgroundImage.getWidth();int qrWidth = image.getWidth();int disx = y - qrWidth - imagesX;int disy = imagesY;Graphics2D rng = backgroundImage.createGraphics();rng.setComposite(AlphaComposite.getInstance(10));rng.drawImage(image, disx, disy, WIDTH, HEIGHT, (ImageObserver)null);Color textColor = Color.white;rng.setColor(textColor);rng.drawImage(backgroundImage, 0, 0, (ImageObserver)null);rng.setFont(new Font("微软雅黑,Arial", 1, size));rng.setColor(Color.black);int strWidth = rng.getFontMetrics().stringWidth(note);int disx1 = y - strWidth - text1X;rng.drawString(note, disx1, text1Y);int disx2 = y - strWidth - text2X;rng.drawString(tui, disx2, text2Y);rng.dispose();backgroundImage.flush();ImageIO.write(backgroundImage, "png", codeFile);} catch (Exception var27) {var27.printStackTrace();}}//这个 你可以直接测试 生成、二维码在海报的位置你自己需要自己调public static void main(String[] args) {File bgImgFile = new File("D:/silly/lu2.jpg");//背景图片File QrCodeFile = new File("D:/silly/7.jpg");//生成图片位置String url = "http://silly.nat300.top/api/wx/login?parent_id=7";//二维码链接String note = "龙虎斗";//文字描述String tui = "龙虎斗";//文字描述//宣传二维码生成//生成图地址,背景图地址,二维码宽度,二维码高度,二维码识别地址,文字描述1,文字描述2,文字大小,图片x轴方向,图片y轴方向,文字1||2xy轴方向HxxCodeUtils.CreatQRCode(QrCodeFile, bgImgFile, 75, 75, url, note, tui, 20, 125, 420, 0, 0, 410, 210);}
}

把上面作为工具类就可以了 这个生成图片后回显到浏览器 海报推广码就生成了


package longhudou.controller.wx;import com.hxx.utils.BaseController;
import com.hxx.utils.HxxCodeUtils;import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;/*** @ClassName HuangXiangXiang* @Date 2019/11/16 17:24* @Version V1.0**/
public class QRCodeController extends BaseController {public void QRCreate() throws IOException {String parentId = get("parent_id");File bgImgFile = new File("D:/silly/lu2.jpg");//背景图片File QrCodeFile = new File("D:/silly/7.jpg");//生成图片位置String url = "http://silly.nat300.top/api/wx/login?parent_id=7";//二维码链接String note = "龙虎斗";//文字描述String tui = "龙虎斗";//文字描述//宣传二维码生成//生成图地址,背景图地址,二维码宽度,二维码高度,二维码识别地址,文字描述1,文字描述2,文字大小,图片x轴方向,图片y轴方向,文字1||2xy轴方向HxxCodeUtils.CreatQRCode(QrCodeFile, bgImgFile, 75, 75, url, note, tui, 20, 125, 420, 0, 0, 410, 210);ServletOutputStream out = null;FileInputStream ips = null;HttpServletResponse response = getResponse();//获取图片存放路径String imgPath = "D:/silly/7.jpg";ips = new FileInputStream(new File(imgPath));getResponse().setContentType("image/jpg");out = response.getOutputStream();//读取文件流int len = 0;byte[] buffer = new byte[1024 * 10];while ((len = ips.read(buffer)) != -1) {out.write(buffer, 0, len);}out.flush();renderNull();}}
使用到的pom<dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.3.3</version></dependency>

java 生成推广码 背景图和自己的二维码相关推荐

  1. 附带有背景图、文字的二维码

    前端生成附带有背景图.可添加文字的二维码 下载 npm install jr-qrcod --save 引入 const qrcode = require('jr-qrcode'); 使用 <i ...

  2. 怎么用python生成带二维码的照片_怎么制作二维码图片-Python 生成个性二维码

    一.实验介绍1.1 实验内容 本课程通过调用MyQR接口来实现生成个人所需二维码,并可以设置二维码的大小.是否在现有图片的基础上生成.是否生成动态二维码. 1.2 知识点 Python3基础 MyQR ...

  3. TP5使用二维码PHP QR Code生成带LOGO和不带LOGO的二维码

    TP5使用二维码PHP QR Code生成带LOGO和不带LOGO的二维码 1.下载二维码插件Phpqrcode,地址 https://sourceforge.net/projects/phpqrco ...

  4. 生成有时间限制的二维码_微信公众号渠道二维码怎么制作?监测渠道效果的利器来了...

    每逢营销节点,各种渠道推广少不了,非常时刻需要能够统计不同渠道二维码的数据情况. 微信引流效果好不好怎么判断?新增人数为什么一团乱麻?粉丝又分别是从哪个渠道来的? 用渠道二维码就能搞定这些问题. 一. ...

  5. zxing 生成二维码,可设置logo、二维码颜色、白边大小

    主要是使用google的zxing 生成二维码,可设置logo.二维码前景色/后景色.白边大小.二维码大小 1.用到jar包 <dependency><groupId>com. ...

  6. 扫描二维码、扫描条形码、相册获取图片后识别、生成带 Logo 二维码、支持微博微信 QQ 二维码扫描样式

    GitHub项目的链接地址 目录 功能介绍 常见问题 效果图与示例 apk Gradle 依赖 布局文件 自定义属性说明 接口说明 关于我 功能介绍 ZXing 生成可自定义颜色.带 logo 的二维 ...

  7. Java微信公众号开发之创建带参数二维码

    生成带参数二维码接口文档:生成带参数二维码 一.介绍 1.1.目前有2种类型的二维码: 1. 临时二维码:临时二维码,是有过期时间的,最长可以设置为在二维码生成后的30天(即2592000秒)后过期, ...

  8. ZXing是一个开源Java类库用于解析多种格式的条形码和二维码

    ZXing是一个开源Java类库用于解析多种格式的条形码和二维码 2014年05月07日 17:30:37 shine4j 阅读数 5677 blog迁移至:http://www.micmiu.com ...

  9. Java实现一行代码生成二维码,可传输到前端展示,可自定义二维码样式,可设置图片格式,可对二维码添加图片,可对二维码添加文字,可以设置二维码大小、字体大小、字体颜色、边框颜色、边框大小等等

    Java实现一行代码生成二维码,可传输到前端展示,可自定义二维码样式,可设置图片格式,可对二维码添加图片,可对二维码添加文字,可以设置二维码大小.字体大小.字体颜色.边框颜色.边框大小等等. 0.准备 ...

最新文章

  1. bootstrap4简单使用和入门01-简单表单的使用
  2. python语言入门n-Python基础语法学习笔记
  3. boost::minimum_degree_ordering用法的测试程序
  4. 日本码农为了萝莉,竟然在GitHub上做这种事,“警察,快来抓我啊!”
  5. 1026. Table Tennis (30)
  6. 爬虫时安装的newspaper 新闻包
  7. matlab自带同步电机数学模型,永磁同步电机的数学模型及方程
  8. Microsoft Visual Studio 的下载与安装(傻瓜式)
  9. win10分屏快捷键无法使用_Win10系统Win快捷键不能用怎么办_win10 Win快捷键无法使用如何解决-系统城...
  10. u盘pe启动盘怎么制作?
  11. 一个函数叫random.sample
  12. 碰撞的小球(100分)
  13. 经典管理学定律3 - 鳄鱼法则
  14. 数据逻辑结构 的 二元组表示法
  15. 腾讯云轻量应用服务器器使用技巧-腾讯云OrcaTerm的上传下载
  16. [Ajax]ajax入门
  17. 沟通的技巧--爱因斯坦如何向老太太解释相对论
  18. 手机网游制造之请求处理篇(已发《电脑报》)
  19. BGP线路是什么意思?BGP三线的优点是什么?
  20. 这些实用技巧你会吗?

热门文章

  1. 新Android反编译教程
  2. Embedding了解
  3. ASP.NET基于web的视频点播系统的设计与实现1629源码、说明文档
  4. 4.3 pytorch数据预处理:transforms图像增强方法
  5. 断点续传java代码
  6. 【算法】阿里校招2021(8.21)
  7. MUI开发APP文本框获得焦点并弹出软键盘
  8. Refit 实现文件上传
  9. 100M宽带网速慢如蜗牛?其实主要原因在这,破解后网速不输200M
  10. 2021全球城市500强非洲上榜城市排行榜:南非6个城市上榜,其中2个跻身总榜百强(附年榜TOP35详单)