生成普通二维码测试例子

创建二维码

package com.sun.test.QRcode;

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;

import java.io.File;
import java.nio.file.Path;
import java.util.HashMap;
//生成二维码
public class CreateQRcode {

    public static void main(String[] args){
        final int width = 300;
        final int height = 300;
        final String format = "png";
        final String content = "我爱你,中国121";

        //定义二维码的参数
        HashMap hints = new HashMap();
        hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
        hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
        hints.put(EncodeHintType.MARGIN, 2);

        //生成二维码
        try{
            //OutputStream stream = new OutputStreamWriter();
            BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hints);
//            http://shenghuoplus.oss-cn-shenzhen.aliyuncs.com/菜品图片/
            Path file = new File("F:/play.png").toPath();

            MatrixToImageWriter.writeToPath(bitMatrix, format, file);
            //MatrixToImageWriter.writeToStream(bitMatrix, format, stream);
        }catch(Exception e){
            System.out.println("出错了-------------------------------");
            e.printStackTrace();
        }

    }
}

读取二维码的内容

package com.sun.test.QRcode;

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;

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

public class ReadQRcode {

    public static void main(String[] args) throws Exception {
        MultiFormatReader formatReader = new MultiFormatReader();
        File file = new File("F:/play.png");


        BufferedImage image = null;
        try {
            image = ImageIO.read(file);
        } catch (IOException e) {
            System.out.println("出错了---------------");
            return;
        }
        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());
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_41825468/article/details/90771955