使用 Google Zxing 二维码生成与解析

ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。Zxing可以实现使用手机的内置的摄像头完成条形码的扫描及解码。

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) {
            }
        }
    }

}

ifyouknow
23 声望2 粉丝

everyday


引用和评论

0 条评论