package com.whyc.service; import com.google.zxing.BinaryBitmap; import com.google.zxing.MultiFormatReader; import com.google.zxing.Result; import com.google.zxing.client.j2se.BufferedImageLuminanceSource; import com.google.zxing.common.HybridBinarizer; import org.springframework.stereotype.Service; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.FileInputStream; import java.io.InputStream; @Service public class QRCodeService { public String extract(byte[] data) { try { InputStream inputStream = new ByteArrayInputStream(data); BufferedImage bufferedImage = ImageIO.read(inputStream); BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(bufferedImage))); Result result = new MultiFormatReader().decode(binaryBitmap); return result.getText(); }catch (Exception e){ e.printStackTrace(); return null; } } public static String test() { try { //InputStream inputStream = new ByteArrayInputStream(data); InputStream inputStream = new FileInputStream("C:\\code\\web\\InspectionSystem\\src\\main\\resources\\lib\\t5.jpg"); BufferedImage bufferedImage = ImageIO.read(inputStream); BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(bufferedImage))); Result result = new MultiFormatReader().decode(binaryBitmap); return result.getText(); }catch (Exception e){ e.printStackTrace(); return null; } } public static void main(String[] args) { System.out.println(test()); } }