一、加入maven依赖

<!-- 谷歌zxing 二维码 -->
<dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.3.3</version>
</dependency>
<dependency><groupId>com.google.zxing</groupId><artifactId>javase</artifactId><version>3.3.3</version>
</dependency>

二、工具类代码

 1 package com.example.demo.utils;
 2
 3 import com.google.zxing.*;
 4 import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
 5 import com.google.zxing.common.BitMatrix;
 6 import com.google.zxing.common.HybridBinarizer;
 7 import com.google.zxing.qrcode.QRCodeReader;
 8 import com.google.zxing.qrcode.QRCodeWriter;
 9 import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
10
11 import javax.imageio.ImageIO;
12 import java.awt.*;
13 import java.awt.image.BufferedImage;
14 import java.io.*;
15 import java.util.Hashtable;
16
17 /**
18  * @author zsh
19  * @company wlgzs
20  * @create 2019-03-10 15:17
21  * @Describe 二维码生成和读的工具类
22  */
23 public class QrCodeCreateUtil {
24     /**
25      * 生成包含字符串信息的二维码图片
26      * @param outputStream 文件输出流路径
27      * @param content 二维码携带信息
28      * @param qrCodeSize 二维码图片大小
29      * @param imageFormat 二维码的格式
30      * @throws WriterException
31      * @throws IOException
32      */
33     public static boolean createQrCode(OutputStream outputStream, String content, int qrCodeSize, String imageFormat) throws WriterException, IOException{
34         //设置二维码纠错级别MAP
35         Hashtable<EncodeHintType, ErrorCorrectionLevel> hintMap = new Hashtable<EncodeHintType, ErrorCorrectionLevel>();
36         hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);  // 矫错级别
37         QRCodeWriter qrCodeWriter = new QRCodeWriter();
38         //创建比特矩阵(位矩阵)的QR码编码的字符串
39         BitMatrix byteMatrix = qrCodeWriter.encode(content, BarcodeFormat.QR_CODE, qrCodeSize, qrCodeSize, hintMap);
40         // 使BufferedImage勾画QRCode  (matrixWidth 是行二维码像素点)
41         int matrixWidth = byteMatrix.getWidth();
42         BufferedImage image = new BufferedImage(matrixWidth-200, matrixWidth-200, BufferedImage.TYPE_INT_RGB);
43         image.createGraphics();
44         Graphics2D graphics = (Graphics2D) image.getGraphics();
45         graphics.setColor(Color.WHITE);
46         graphics.fillRect(0, 0, matrixWidth, matrixWidth);
47         // 使用比特矩阵画并保存图像
48         graphics.setColor(Color.BLACK);
49         for (int i = 0; i < matrixWidth; i++){
50             for (int j = 0; j < matrixWidth; j++){
51                 if (byteMatrix.get(i, j)){
52                     graphics.fillRect(i-100, j-100, 1, 1);
53                 }
54             }
55         }
56         return ImageIO.write(image, imageFormat, outputStream);
57     }
58
59     /**
60      * 读二维码并输出携带的信息
61      */
62     public static void readQrCode(InputStream inputStream) throws IOException{
63         //从输入流中获取字符串信息
64         BufferedImage image = ImageIO.read(inputStream);
65         //将图像转换为二进制位图源
66         LuminanceSource source = new BufferedImageLuminanceSource(image);
67         BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
68         QRCodeReader reader = new QRCodeReader();
69         Result result = null ;
70         try {
71             result = reader.decode(bitmap);
72         } catch (ReaderException e) {
73             e.printStackTrace();
74         }
75         System.out.println(result.getText());
76     }
77     /**
78      * 测试代码
79      * @throws WriterException
80      */
81     public static void main(String[] args) throws IOException, WriterException {
82
83         createQrCode(new FileOutputStream(new File("d:\\qrcode.jpg")),"WE1231238239128sASDASDSADSDWEWWREWRERWSDFDFSDSDF123123123123213123",900,"JPEG");
84         readQrCode(new FileInputStream(new File("d:\\qrcode.jpg")));
85     }
86 }

效果图:

转载于:https://www.cnblogs.com/zsh-blogs/p/10505430.html

谷歌zxing 二维码生成工具相关推荐

  1. zxing二维码生成工具类

    图片生成工具生成 1.支持多中形式的图片,二维码,条形码 2.支持一张图片多个二维码 3.支持二维码图片上加logo 4.支持图片头部底部添加文字描述 public class ZxingEncode ...

  2. 谷歌zxing 二维码后台生成,并在前端展示以及下载

    一.展示效果 数据表格row按钮 点击查看二维码:跳转新窗口,也可以做弹窗,新窗口是为了方便直接通过浏览器打印 点击下载:保存到浏览器下载路径 二.后台代码 1. pom引入依赖 <depend ...

  3. 支付宝支付 第五集:二维码生成工具

    支付宝支付 第五集:二维码生成工具 一.代码 目录结构 BufferedImageLuminanceSource.java package com.dzy.alipay.qrcode;import c ...

  4. zxing 二维码生成深度定制

    二维码生成服务之深度定制 之前写了一篇二维码服务定制的博文,现在则在之前的基础上,再进一步,花样的实现深度定制的需求,我们的目标是二维码上的一切都是可以由用户来随意指定 设计 1. 技术相关 zxin ...

  5. 二维码 生成工具类(文件转Base64字符串,Base64字符串转文件)

    希望我的知识榨干了能帮到你解除困难,要是没有帮助你的,问度娘和知爹 一.POM.xml依赖下载 二.工具类提供 一.POM.xml依赖下载 <!-- 生成二维码依赖 --><depe ...

  6. Java:二维码生成工具类

    java 二维码生成工具类 需要引入的maven <!--Java 生成二维码 --> <dependency><groupId>com.google.zxing& ...

  7. 二维码生成工具微信小程序源码下载

    二维码生成工具 支持上传二维码logo和调整尺寸背景颜色等等 无需域名与服务器 使用教程,用HBuilder X软件打卡项目然后运行到微信小程序即可 下方是演示图: 小程序源码下载地址: (已更新)二 ...

  8. 软件推荐——二维码生成工具(绿色版)

    Simple Code Generator 二维码生成工具 软件介绍: Simple Code Generator是一款适用于Windows的简单工具,它允许您快速生成二维码,以便在智能手机上使用应用 ...

  9. QT-C++二维码生成工具(支持中文等任何字符的使用)

    QT-C++二维码生成工具 前言 1.效果预览 1.核心程序 全部程序 前言 QT/C++生成二维码程序,支持二维码图片本地保存功能. 1.效果预览 1.核心程序 如下: // 生成二维码图片QStr ...

最新文章

  1. 介绍 9 款 MySQL 常见的图形化工具,第三款我用了 10 年
  2. Centos 7 安装 Haproxy
  3. 【Pygame小游戏】首月破亿下载 一款高度融合了「超休闲游戏特性」的佳作~
  4. mysql重装远程服务未_CentOS 7系统安装与远程连接MySQL(5.7)
  5. Android数据库升级实例
  6. input type=file 实现上传、预览、删除等功能
  7. Java高级补充(Socket服务端、客户端)、Handler类、安卓Socket传数据、WebView
  8. mysql二进制方式_MySQL数据库之MySql二进制连接方式详解
  9. 单片机实验-定时中断
  10. linux中磁盘的iused,Linux 磁盘与文件系统管理
  11. 一次shell脚本小事故,从中学习排错过程-软件测试
  12. 5.Docker之镜像的使用
  13. could not connect to server: No route to host Is the server running on host 192.168.163.181 and a
  14. mysql 分页拦截器_MyBatis 拦截器 (实现分页功能)
  15. HotSpot VM运行时02---VM生命周期
  16. .net 平台下的File.Exists和directory .Exists()
  17. 著名TED演讲 《用肢体语言塑造你自己》 - Amy Cuddy
  18. 游戏辅助,python制作王者荣耀刷金币脚本!
  19. Excel如何快速在指定字符后面插入文本
  20. 安装了本地MySQL后,小皮面板上的MySQL就一直启动失败

热门文章

  1. MySQL第7天:MySQL的架构介绍之存储引擎
  2. C#之windows桌面软件第十课:电脑ADC值显示(上位机)(单通道显示)
  3. STM32固件库文件树及构成详解
  4. JMP跳转指令的指令长度、直接转移与间接转移、段内跳转与段间跳转
  5. centos下载速度很慢解决办法
  6. 简简单单的正则表单验证练习
  7. lamp wordpress
  8. 上传文件到 Web 服务器
  9. 50个Android开发人员必备UI效果源码[转载]
  10. 用perl 实现 svn 差异备份