美文网首页程序员
使用zxing生成和识别二维码

使用zxing生成和识别二维码

作者: 九命丿相柳 | 来源:发表于2017-08-03 19:02 被阅读0次

准备工作

zxing包似乎没有提供相关的Jar包下载,那么我们首先来编译生成zxing的Jar包。

下载源码

<i class="fa fa-github"></i>zxing

新建Module

在IDEA中新建Module,并把zxing的core源码拷贝进去,javase的源码也要拷贝进去

编译Jar包

打开Project Structure,选择Artifacts,选择相应的Path,勾选上Include In Project,如图所示:

最后右键zxing这个Module,选择build即可在相应的Path下找到编译好的Jar包

生成二维码

public static void WriteQRcode(String content, File file) {
    try {
        MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
        int width = 400;
        int height = 400;
        Map hints = new HashMap();
        hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");

        BitMatrix bitMatrix = multiFormatWriter.encode(content, BarcodeFormat.QR_CODE, width, height, hints);

        Path path = file.toPath();

        MatrixToImageWriter.writeToPath(bitMatrix, "jpg", path);

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

识别二维码

public static void ReadQRcode(File file) {
    try {
        MultiFormatReader multiFormatReader = new MultiFormatReader();

        BufferedImage image = ImageIO.read(file);

        LuminanceSource source = new BufferedImageLuminanceSource(image);

        Binarizer binarizer = new HybridBinarizer(source);

        BinaryBitmap binaryBitmap = new BinaryBitmap(binarizer);

        Map hints = new HashMap();
        hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");

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

        System.out.println("result: " + result.toString());
        System.out.println("resultFormat: " + result.getBarcodeFormat());
        System.out.println("resultText: " + result.getText());

    } catch (IOException e) {
        e.printStackTrace();
    } catch (NotFoundException e) {
        e.printStackTrace();
    }
}

相关文章

网友评论

    本文标题:使用zxing生成和识别二维码

    本文链接:https://www.haomeiwen.com/subject/nmzulxtx.html