记快乐符号:
利用google.zxing 获取二维码图片内容
import com.google.zxing.BarcodeFormat;import com.google.zxing.Binarizer;import com.google.zxing.BinaryBitmap;import com.google.zxing.DecodeHintType;import com.google.zxing.LuminanceSource;import com.google.zxing.Result;import com.google.zxing.client.j2se.BufferedImageLuminanceSource;import com.google.zxing.common.HybridBinarizer;import com.google.zxing.qrcode.QRCodeReader;import java.awt.image.BufferedImage;import java.io.File;import java.util.HashMap;import java.util.Map;import javax.imageio.ImageIO;/*** @description: TestQrcode <br>* @since: 2021/10/11 5:01 下午 <br>* @author: 释槐~ <br>* @version: <br>*/public class TestQrcode {public static void main(String[] args) {System.out.println(decode(new File("/WechatIMG63.jpeg")));;}/*** 解析图片文件上的二维码** @param imageFile 图片文件* @return 解析的结果,null表示解析失败*/public static String decode(File imageFile) {try {BufferedImage image = ImageIO.read(imageFile);LuminanceSource luminanceSource = new BufferedImageLuminanceSource(image);Binarizer binarizer = new HybridBinarizer(luminanceSource);BinaryBitmap binaryBitmap = new BinaryBitmap(binarizer);Map<DecodeHintType, Object> hints = new HashMap<>();hints.put(DecodeHintType.CHARACTER_SET, "utf-8");hints.put(DecodeHintType.TRY_HARDER, Boolean.TRUE);hints.put(DecodeHintType.POSSIBLE_FORMATS, BarcodeFormat.QR_CODE);Result result = new QRCodeReader().decode(binaryBitmap, hints);System.out.println(result.toString());return result.getText();} catch (Exception e) {e.printStackTrace();return null;}}}
pom 引入
<!-- 二维码支持包 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.2.0</version></dependency><dependency><groupId>com.google.zxing</groupId><artifactId>javase</artifactId><version>3.2.0</version></dependency>
