1. 程式人生 > 實用技巧 >zxing生成二維碼

zxing生成二維碼

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

package com.test;

import com.google.zxing.BarcodeFormat;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import com.sun.org.apache.xml.internal.security.utils.Base64; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import java.nio.file.Path; public class QRCodeUtil { /** * 生成Base64 二維碼
*/ public String crateQRCode(String content) throws IOException { ByteArrayOutputStream os = new ByteArrayOutputStream(); try { QRCodeWriter writer = new QRCodeWriter(); BitMatrix bitMatrix = writer.encode(content, BarcodeFormat.QR_CODE, 200, 200); BufferedImage bufferedImage = MatrixToImageWriter.toBufferedImage(bitMatrix); ImageIO.write(bufferedImage, "png", os); //新增圖片格式標識 return new String("data:image/png;base64," + Base64.encode(os.toByteArray())); } catch (Exception e) { e.printStackTrace(); } finally { os.close(); } return null; } public static void main(String[] args) throws Exception { //String qrCode = new QRCodeUtil().crateQRCode(new String("測試生成二維碼".getBytes(), "ISO-8859-1")); //String qrCode = new QRCodeUtil().crateQRCode("https://www.baidu.com"); //System.out.println(qrCode); //1.二維碼中的資訊 String content = "https://www.baidu.com"; //2.通過zxing生成二維碼(儲存到本地圖片,支援以data url的形式體現) QRCodeWriter writer = new QRCodeWriter(); //引數1:二維碼資訊;引數2:圖片型別;引數3:寬度;引數4:長度 BitMatrix bt = writer.encode(content, BarcodeFormat.QR_CODE, 200, 200); //儲存二維碼到本地 Path path = new File("C:\\Users\\admin\\Desktop\\test.png").toPath(); MatrixToImageWriter.writeToPath(bt,"png",path); } }