菜鳥先飛之二維碼zxing解析
阿新 • • 發佈:2018-12-21
前言
我在之前的文章中講了如何用js快速生成二維碼和怎麼用zxing工具來生成二維碼,我們的二維碼是生成了,但是我們怎麼去解析一個二維碼呢,接下來介紹用zxing解析二維碼
準備工作 需要準備的東西就和zxing生成二維碼一樣,請參考我的上一篇部落格。 傳送門: http://blog.csdn.net/happy_cloudlife/article/details/78864825
開始上程式碼 還是原來的java專案:
上程式碼:
執行結果:
總結 每一次分享都是技術的沉澱,享受分享的樂趣
準備工作 需要準備的東西就和zxing生成二維碼一樣,請參考我的上一篇部落格。 傳送門: http://blog.csdn.net/happy_cloudlife/article/details/78864825
開始上程式碼 還是原來的java專案:
package xin.shaojie.zxing; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.HashMap; import javax.imageio.ImageIO; import com.google.zxing.BinaryBitmap; import com.google.zxing.EncodeHintType; import com.google.zxing.MultiFormatReader; import com.google.zxing.NotFoundException; import com.google.zxing.Result; import com.google.zxing.client.j2se.BufferedImageLuminanceSource; import com.google.zxing.common.HybridBinarizer; /** * @ClassName: ReadQRCode * @Description: 解析QRCode碼 * @author CloudLife * @date 2017年12月21日 下午4:06:50 * */ public class ReadQRCode { public static void main(String[] args) { try { // 定義一個解析二維碼的物件 MultiFormatReader formatReader = new MultiFormatReader(); // 指定目標檔案 File file = new File("D:/CloudLife.png"); // 讀取目標檔案 BufferedImage image = ImageIO.read(file); // 生成BinaryBitmap BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(image))); // 定義二維碼的引數 HashMap hints = new HashMap<>(); // 字符集 hints.put(EncodeHintType.CHARACTER_SET, "utf-8"); //開始解析 Result result = formatReader.decode(binaryBitmap, hints); //輸出解析結果 System.out.println("解析結果:" + result.toString()); System.out.println("二維碼的型別:" + result.getBarcodeFormat()); System.out.println("二維碼的文字內容:" + result.getText()); } catch (NotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
執行結果:
總結 每一次分享都是技術的沉澱,享受分享的樂趣