zxing生成二维码和读取二维码

简介: 当然,首先要导入zxing的jar包。  生成二维码代码:package com.imooc.zxing;import java.io.File;import java.nio.file.

 

当然,首先要导入zxing的jar包。

 

 

生成二维码代码:

package com.imooc.zxing;

import java.io.File;
import java.nio.file.Path;
import java.util.HashMap;

import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;

/**
 * java代码生成二维码<br>
 * 
 * @author Administrator
 *
 */
public class CreateQRCode {

    public static void main(String[] args) {
        int width = 300;
        int height = 300;
        String format = "png";
        String content = "http://www.hupu.com";

        // 定义二维码参数
        HashMap hints = new HashMap();
        hints.put(EncodeHintType.CHARACTER_SET, "utf-8");// 字符集
        hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);// 纠错级别
        hints.put(EncodeHintType.MARGIN, 2);// 空白

        try {
            BitMatrix bitMatrix = new MultiFormatWriter().encode(content,
                    BarcodeFormat.QR_CODE, width, height, hints);
            Path file = new File("E:/code/img.png").toPath();

            MatrixToImageWriter.writeToPath(bitMatrix, format, file);

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

}

 

 生成二维码如下:

 

 

 

 读取二维码:

package com.imooc.zxing;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;

import javax.imageio.ImageIO;

import com.google.zxing.BinaryBitmap;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.Result;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.common.HybridBinarizer;

public class ReadQRCode {

    public static void main(String[] args) {
        try {
            MultiFormatReader formatReader = new MultiFormatReader();
            File file = new File("E:/code/img.png");
            BufferedImage image = ImageIO.read(file);

            BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(
                    new BufferedImageLuminanceSource(image)));

            HashMap hints = new HashMap();
            hints.put(EncodeHintType.CHARACTER_SET, "utf-8");// 字符集

            Result result = formatReader.decode(binaryBitmap, hints);

            System.out.println("解析之后的结果:" + result.toString());
            System.out.println("二维码格式类型:" + result.getBarcodeFormat());
            System.out.println("二维码文本内容:" + result.getText());

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

}

代码运行结果:

 

相关文章
|
Java 数据库
Springboot 根据数据库表自动生成实体类和Mapper,只需三步
Springboot 根据数据库表自动生成实体类和Mapper,只需三步
8027 2
Springboot 根据数据库表自动生成实体类和Mapper,只需三步
|
XML Android开发 数据格式
Android Launcher3 修改行数和列数
Android Launcher3 修改行数和列数
251 0
|
Java 调度 C++
ANR分析总结
ANR分析总结
1552 0
ANR分析总结
|
Java 应用服务中间件 Spring
记录SpringCloudGateway的一个隐藏问题
线上生产环境中,一个SCG接口偶发性出现“Connection reset by peer”错误。排查发现问题是由于Netty的HTTP客户端连接池保持了已由服务端关闭的连接。解决方案是配置连接池以在超时后回收连接(超时时间应小于Tomcat的连接超时时间),并考虑将连接池获取策略从FIFO改为LIFO,以减少使用无效连接的可能性。通过修改Spring Cloud Gateway的HTTP客户端连接池配置和添加JVM启动参数可以实现这一修复。
3602 1
|
Android开发 API
Android Camera2 拍照(四)——对焦模式
原文:Android Camera2 拍照(四)——对焦模式 本篇将重点介绍使用Camera2 API进行手动对焦的设置,以及在手动对焦与自动对焦模式之间切换。
3963 0
|
XML Android开发 数据格式
Android 9.0 亮度调节的变化(伽马曲线)
Android 9.0 亮度调节的变化(伽马曲线)
675 0
Android 9.0 亮度调节的变化(伽马曲线)
|
存储 传感器 安全
Android11.0 增加人脸解锁功能
Android11.0 增加人脸解锁功能
1419 0
|
存储 Java 测试技术
Android10.0 压力测试--恢复出厂自动测试工具
Android10.0 压力测试--恢复出厂自动测试工具
405 0