zxing 生成二維碼


一、zxing介紹

  zxing是google提供生成、解析一維碼、二維碼的開源庫。

二、使用

2.1 maven pom 配置

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

2.2 二維碼生成

      /**
     * 編碼
     * 
     * @param contents
     * @param width
     * @param height
     * @param imgPath
     */
    public static void encode(String contents, int width, int height, String imgPath) {
        try {
            BitMatrix bitMatrix = new MultiFormatWriter().encode(contents, BarcodeFormat.QR_CODE, width, height);

            MatrixToImageWriter.writeToFile(bitMatrix, "png", new File(imgPath));

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

 

    /** 
     * @param args 
     */  
    public static void main(String[] args) {  
        String imgPath = "/Users/xupengwei/tool/yuanmeng/zxing.png";  
        String contents = "http://taobao.com";  
        int width = 300, height = 300;  
        QrCode.encode(contents, width, height, imgPath);  
    } 

結果 

 

2.3 二維碼解碼

    /**
     * @param imgPath
     * @return String
     */
    public static String decode(String imgPath) {
        BufferedImage image = null;
        Result result = null;
        try {
            image = ImageIO.read(new File(imgPath));
            LuminanceSource source = new BufferedImageLuminanceSource(image);
            BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));

            result = new MultiFormatReader().decode(bitmap);
            return result.getText();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

 

 

    public static void main(String[] args) {
        
        String imgPath = "/Users/xupengwei/tool/yuanmeng/zxing.png";  
        String decodeContent = QrCode.decode(imgPath);  
        System.out.println(decodeContent);  
    }

 

結果:

http://taobao.com

 

 

三、參考文獻

1、https://github.com/zxing/zxing

2、API 文檔 : https://zxing.github.io/zxing/apidocs/ 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM