JavaWeb项目利用谷歌zxing实现二维码

JavaWeb项目利用谷歌zxing实现二维码存储信息


1,引入jar包

在项目的pom.xml中引入必须的jar包

<dependencies>
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>core</artifactId>
            <version>3.2.1</version>
        </dependency>
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>javase</artifactId>
            <version>3.2.1</version>
        </dependency>
    </dependencies>

2,代码实现

(1)方式一

把图片存储到本地

public class QRCodeTest {

      public static void main(String[] args) throws Exception {
          //1.二维码中的信息
          String content = "yuriDUAN";
          //2.通过zxing生成二维码(保存到本地图片,支持以data url的形式体现)

          //创建QRCodeWriter对象
          QRCodeWriter writer = new QRCodeWriter();
          //基本配置
          /**
           * 1.二维码信息
           * 2.图片类型
           * 3.宽度
           * 4.长度
           */
          BitMatrix bt = writer.encode(content, BarcodeFormat.QR_CODE, 200, 200);
          //保存二维码到本地
          Path path = new File("D:\\test.png").toPath();
          MatrixToImageWriter.writeToPath(bt,"png",path);
      }
 }

运行项目会在D盘下生成test.png,图片存储信息为"yuriDUAN",图片如下
JavaWeb项目利用谷歌zxing实现二维码_第1张图片

(2)方式二

生成dataUrl形式的二维码

public class QRCodeTest {
	//生成dataUrl形式的二维码
        public static void main(String[] args) throws Exception {
            //1.二维码中的信息
            String content = "http://www.itcast.cn";
            //2.通过zxing生成二维码(保存到本地图片,支持以data url的形式体现)
            //创建QRCodeWriter对象
            QRCodeWriter writer = new QRCodeWriter();
            //基本配置
            BitMatrix bt = writer.encode(content, BarcodeFormat.QR_CODE, 200, 200);
            //创建ByteArrayOutputstream
            ByteArrayOutputStream os = new ByteArrayOutputStream();
            //将二维码数据以byte数组的形式保存到ByteArrayOutputstream
            /**
             * 1:image对象
             * 2:图片格式
             * 3:Outputstream
             */
            BufferedImage image = MatrixToImageWriter.toBufferedImage(bt);
            ImageIO.write(image, "png", os);
            //对byte数组进行base64处理
            String encode = Base64Util.encode(os.toByteArray());
            System.out.println(new String("data:image/png;base64," + encode));
        }
}

运行项目会在生成byte数组的字符串base64格式的图片,控制台打印如下内容

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADIAQAAAACFI5MzAAABJ0lEQVR42u2YQRLDIAhFceUxvGnUm3oMV1rg26STptvCQqftVN+G8cOHhOavRZts8mdSiFeaPQ2i0GUT3JDKXz6O/Eu5p3XihHQONtXZ5LinQskb4ajxxy3J3oiqzVKH2cJDHlgSVEnt+HzXjyXB4kw8KD35jiVheYtGWuIcajOeCGU5bkGy8qa2MZlwF9ZZouZCudQ2JyhZudeo5scW6IbgUoNaC8d+6NU6ISM23h3QnNQC3RD4CprtkEu9pgBzIv1f2qxEPSTqU217UnVuylq44tDxdD57croyaQ6Wh45hRtDNUCgYo/wQTAH1PZuUD7XtyRroMDrpnOKM6Kiu+Xh1Wi+kqgUGycevJwlDompD5NXT3JBVJVGLWGzmXj+GZL8/2MSevADC7hZ5M0iZRQAAAABJRU5ErkJggg==

将这些内容复制到浏览器的地址栏可以看到
JavaWeb项目利用谷歌zxing实现二维码_第2张图片
至此,利用谷歌zxing生成二维码的两种方式介绍完毕。

你可能感兴趣的:(java后台)