Java二維碼生成與解析

使用 Google Zxing 二維碼生成與解析java

ZXing是一個開放源碼的,用Java實現的多種格式的1D/2D條碼圖像處理庫,它包含了聯繫到其餘語言的端口。Zxing能夠實現使用手機的內置的攝像頭完成條形碼的掃描及解碼。google

import java.io.File;
import java.io.FileInputStream;
import java.util.HashMap;
import java.util.Map;

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;

public class QRCodeUtils {
    public static void main(String[] args) {
        File file = new File("d://qrcode.png");
        FileInputStream fis = null;
        try {

            String url = "https://www.baidu.com";
            int width = 200; // 圖像寬度
            int height = 200; // 圖像高度
            String format = "png";// 圖像類型

            Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();
            hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
            hints.put(EncodeHintType.MARGIN, 0);
            BitMatrix bitMatrix;
            bitMatrix = new MultiFormatWriter().encode(url, BarcodeFormat.QR_CODE, width, height, hints);
            if (!file.getParentFile().exists()) {
                file.getParentFile().mkdirs();
            }
            if (!file.exists()) {
                file.createNewFile();
            } else {
                file.delete();
                file.createNewFile();
            }
            MatrixToImageWriter.writeToFile(bitMatrix, format, file);
            fis = new FileInputStream(file);
        } catch (Exception e) {
            // TODO: handle exception
        }finally{
            try {
                fis.close();
            } catch (Exception e) {
            }
        }
    }

}
相關文章
相關標籤/搜索