一、加入maven依赖

  1. <!-- 谷歌zxing 二维码 -->
  2. <dependency>
  3. <groupId>com.google.zxing</groupId>
  4. <artifactId>core</artifactId>
  5. <version>3.3.3</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>com.google.zxing</groupId>
  9. <artifactId>javase</artifactId>
  10. <version>3.3.3</version>
  11. </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. }

效果图:

谷歌zxing 二维码生成工具的更多相关文章

  1. 二维码生成工具类java版

    注意:这里我不提供所需jar包的路径,我会把所有引用的jar包显示出来,大家自行Google package com.net.util; import java.awt.BasicStroke; im ...

  2. vue项目条形码和二维码生成工具试用

    项目开发需要,优惠券分不同类型,简单的使用id生成条形码供店铺使用,麻烦点的需要多个字段的就需要使用二维码来展示了,对应的效果如下 条形码(一维码)使用工具code128 需引入code128.js ...

  3. java二维码生成工具

    import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.ut ...

  4. ZXing二维码生成在Unity3D中出错,数组超出界限的解决办法

    错误截图: IndexOutOfRangeException: Array index is out of range.ZXing.Color32Renderer.Render (ZXing.Comm ...

  5. Google Zxing 二维码生成与解析

    生成二维码的开源项目可谓是琳琅满目,SwetakeQRCode.BarCode4j.Zxing...... 前端有JQuery-qrcode,同样能实现生成二维码. 选择Zxing的原因可能是对 Go ...

  6. Java 二维码生成工具类

    /** * 二维码 工具 * * @author Rubekid * */ public class QRcodeUtils { /** * 默认version */ public static fi ...

  7. 开发ASP.NET MVC 开发名片二维码生成工具 (原创)

    在网上找了很多,都只能生成网址,不能生成名片二维码,于是自己动手. 第一步,写视图界面,主要代码如下: <script type="text/javascript"> ...

  8. 谷歌api 二维码生成 实例

    谷歌提供的二维码生成器接口,非常实用!分享给大家 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...

  9. 二维码生成工具——QRCode

    下载QRCode的源代码:https://github.com/davidshimjs/qrcodejs 引入项目中:<script type="text/javascript&quo ...

随机推荐

  1. 独立出properties的mybatis连接池

    jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/java505?useSSL=true&chara ...

  2. sourceInsight工具移除不掉项目 source Insight Add and Remove Project Files

    问题描述: sourceInsight创建的项目,有时候会遇到Remove Project 报错,移除不成功的情况. 解决办法: 进入到sourceinsight的安装目录.删除掉保存的工程文件信息即 ...

  3. PHP与JSP简单比较

    比较PHP和JSP这两个Web开发技术,在目前的情况是其实是比较php和Java的Web开发.以下就几个主要方面进行的比较: 一. 语言比较 PHP是解释执行的服务器脚本语言,首先php有简单容易上手 ...

  4. UGUI 打图集

    using UnityEngine; using System.Collections; using UnityEditor; using System.Collections.Generic; us ...

  5. beego 初体验 - orm

    goland Terminal运行命令: go get github.com/astaxie/beego/orm 安装go mysql驱动: go get github.com/go-sql-driv ...

  6. git 开发中的总结

    一.git是什么 1.git是一种分布式的版本管理系统, 分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库. 二.g ...

  7. CoreWebApi集成Exceptionless

    参考博客 https://www.cnblogs.com/akaxb/p/7207827.html 一. Exceptionlessr的安装部署 依乐祝,<ASP.NET Core免费开源分布式 ...

  8. c#之如何转换文本文件编码格式为utf-8

    如代码: string content = File.ReadAllText(path, Encoding.Default); File.WriteAllText(path, content, Enc ...

  9. java字符串转换总结

    1.byte[]转String String str = new String(strByte); 2.String转byte[] byte[] byteArr = str.getBytes(); 3 ...

  10. 关于nginx的安装

    今天倒腾nginx,当运用命令service nginx start 出现了这个:Job for nginx.service failed because the control process ex ...