效果图

1. 安装依赖

 <dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.1.0</version></dependency><dependency><groupId>com.twelvemonkeys.imageio</groupId><artifactId>imageio-jpeg</artifactId><version>3.0-rc5</version>
</dependency>

2. 生成二维码

public class ZXingCode {private static final int QRCOLOR = 0xFF000000; // 默认是黑色private static final int BGWHITE = 0xFFFFFFFF; // 背景颜色private static final int WIDTH = 200; // 二维码宽private static final int HEIGHT = 200; // 二维码高// 用于设置QR二维码参数private static Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>() {private static final long serialVersionUID = 1L;{put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);// 设置QR二维码的纠错级别(H为最高级别)具体级别信息put(EncodeHintType.CHARACTER_SET, "utf-8");// 设置编码方式put(EncodeHintType.MARGIN, 0);}};// 生成带logo的二维码图片public static void drawLogoQRCode(File logoFile, File codeFile, String qrUrl) {try {MultiFormatWriter multiFormatWriter = new MultiFormatWriter();// 参数顺序分别为:编码内容,编码类型,生成图片宽度,生成图片高度,设置参数BitMatrix bm = multiFormatWriter.encode(qrUrl, BarcodeFormat.QR_CODE, WIDTH, HEIGHT, hints);BufferedImage image = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);// 开始利用二维码数据创建Bitmap图片,分别设为黑(0xFFFFFFFF)白(0xFF000000)两色for (int x = 0; x < WIDTH; x++) {for (int y = 0; y < HEIGHT; y++) {image.setRGB(x, y, bm.get(x, y) ? QRCOLOR : BGWHITE);}}int width = image.getWidth();int height = image.getHeight();if (Objects.nonNull(logoFile) && logoFile.exists()) {// 构建绘图对象Graphics2D g = image.createGraphics();// 读取Logo图片BufferedImage logo = ImageIO.read(logoFile);// 开始绘制logo图片g.drawImage(logo, width * 2 / 5, height * 2 / 5, width * 2 / 10, height * 2 / 10, null);g.dispose();logo.flush();}image.flush();ImageIO.write(image, "png", codeFile); // TODO} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) throws WriterException {File logoFile = new File("C://Users//mayn//Desktop//型号//小米//hongmi 5A//5a9d2490N317048d9.jpg");File QrCodeFile = new File("C://Users//mayn//Desktop//05.png");String url = "https://www.baidu.com/";String note = "访问百度连接";drawLogoQRCode(logoFile, QrCodeFile, url);}

3.  合并图片和二维码

public class mergeImage {public static void mergeImage(String bigPath, String smallPath, String x, String y) throws IOException {try {BufferedImage small;BufferedImage big = ImageIO.read(new File(bigPath));if (smallPath.contains("http")) {URL url = new URL(smallPath);small = ImageIO.read(url);} else {small = ImageIO.read(new File(smallPath));}Graphics2D g = big.createGraphics();float fx = Float.parseFloat(x);float fy = Float.parseFloat(y);int x_i = (int) fx;int y_i = (int) fy;g.drawImage(small, x_i, y_i, small.getWidth(), small.getHeight(), null);g.dispose();ImageIO.write(big, "png", new File(bigPath));} catch (Exception e) {e.printStackTrace();}}
}

4, 执行

public static void main(String[] args) throws WriterException {try {mergeImage.mergeImage("C://Users//mayn//Desktop//origin.png", "C://Users//mayn//Desktop//05.png", "63", "163");} catch (IOException e) {e.printStackTrace();}}

二维码的生成加背景图片的嵌套-支付宝(Java)相关推荐

  1. 使用phpqrcode.php生成二维码并合并到背景图片上

    使用phpqrcode.php生成二维码并合并到背景图片上 1.找到phpqrcode类库的phpqrcode.php下载放进你的项目,再引入到你的开发代码中 (1)下载地址:http://phpqr ...

  2. qrcode.js 生成二维码包含logo和背景图片及IE下载二维码

    思路: 1. 通过qrcode.js 生成带logo的二维码 2. 将背景图片.logo与生成的二维码图通过canvas 绘制在一起形成一个新的canvas 3. 将canvas 转成base64的u ...

  3. php qrcode 生成二维码后变成透明背景且按需调整大小并贴到图片的指定位置

    发现自己快两个月没写博客,最近搞定毕业的相关事情了,稍微松点了,可以全身心地投入到工作中来,今天想起写写博客,记录下最近工作过的内容,供以后查看温习.打算建立个栏目专门存放工作的记录内容,希望能坚持下 ...

  4. .net core 的图片处理及二维码的生成及解析

    写代码这事,掐指算来已经十有余年. 从html到css到javascript到vbscript到c#,从兴趣到职业,生活总是失落与惊喜并存. 绝大部分时候,出发并不是因为知道该到哪里去,只是知道不能再 ...

  5. JS生成二维码以及保存页面为图片的解决方案:html2Canvas+file-saver+qrcodejs2的使用心得以及解决图片失真,保存不完整的解决办法

    前言 最近因为工作需求,需要前端根据后端传过来的链接生成二维码,并且要使用JS保存页面为图片.然后网上搜了很多解决办法.最终都是用h5的canvas进行绘制然后保存为图片.其中,又以html2Canv ...

  6. JAVA实现基于ZXing的二维码自动生成与图片合成

    JAVA实现基于ZXing的二维码自动生成与图片合成 近日做项目需要生成带有信息的二维码,并嵌入到一张图片中.实现思路采用Zxing生成二维码,java图形库进行图片的嵌入. 生成二维码 ZXing是 ...

  7. 二维码的生成和解析原理

    二维码结构 1.版本信息:version1(21*21),version2,...,version40,一共40个版本.版本代表每行有多少模块,每一个版本比前一个版本增加4个码元,计算公式为(n-1) ...

  8. [Android开源]一个非常简单易用用来花式展示二维码样式生成的库QRCodeStyle

    类库说明 一个非常简单易用用来花式展示二维码样式生成的库 自由组合二维码样式 使用范例 设置带圆边圈的logo Bitmap logo = BitmapFactory.decodeResource(g ...

  9. asp.net 后台生成二维码及生成带logo的二维码

    asp.net 后台生成二维码及生成带logo的二维码,此处将生成二维码和带Logo的二维码写在一起的,需要自己区分一下. 直接上代码 using System; using System.Colle ...

最新文章

  1. python套接字编程_Python套接字编程(1)——socket模块与套接字编程
  2. python四十四:面向对象特性:继承
  3. linux系统下使用xampp 丢失mysql root密码【xampp的初始密码为空】
  4. 【机器学习】机器学习基础知识常见问题详解!
  5. java 框架mvc_JAVA框架-MVC模式
  6. html jq移到出现内容,jquery操作html元素之( 获得内容和属性)
  7. 三维触控测试软件,10 条小技巧,告诉你 iPhone XS Max 的三维触控功能怎么用
  8. springMVC 后端代码 如何用 @requestParam() 接收前台传过来的数组
  9. 卸载源码安装mysql_CentOS7下源码安装MySQL5.7.6+
  10. [转]centos7下yum安装mysql
  11. Java代码动态分析JProfiler 13 for Mac
  12. PhantomJS+Selenium+Scrapy抓取巨潮资讯网企业信息
  13. 股票走势图php源码下载,flex实现股票行情走势图示例代码
  14. 《孙子兵法》对现代战争还适用吗?为什么?
  15. 从两个和尚挑水的故事得到的启发
  16. 自然语言处理(二)基于CNN的新闻文本分类
  17. PointNet 翻译:
  18. java 虚函数_Java的虚方法
  19. FlexRay通信机制
  20. linux查看IP端口占用情况

热门文章

  1. 华硕主板win10 使用固态硬盘,机械硬盘不显示解决
  2. python 英语分词_如何用Python做中文分词?
  3. Python地理数据处理 六:使用OGR过滤数据
  4. 负零和正零在内存中的表示方法
  5. D1. Coffee and Coursework (Easy version) and D2. Coffee and Coursework (Hard Version)
  6. 计算机二级C语言操作题怎么做?注意事项(难点易错点总结笔记)
  7. C语言获取左键鼠标点击的次数,c语言在控制台判定鼠标左键的小例子
  8. js vue 下载excel(.xls)文件
  9. 工欲善其事必先利其器--MyEclipse
  10. 【经验分享】AVI文件打开只有音频无视频的解决方案