>  기사  >  Java  >  Java가 google zxing을 기반으로 QR 코드를 생성하고 디코딩하는 방법의 예

Java가 google zxing을 기반으로 QR 코드를 생성하고 디코딩하는 방법의 예

黄舟
黄舟원래의
2017-07-26 15:22:231430검색

이 글은 주로 google zxing을 기반으로 한 Java QR 코드 생성 및 디코딩을 자세히 소개합니다. 관심 있는 친구들이 참고할 수 있습니다.

이 글은 Java QR 코드 생성을 모든 사람과 공유합니다. 구체적인 내용은 다음과 같습니다

1. Maven 종속성 추가(디코딩 시 QR 코드 이미지를 업로드해야 하므로 파일 업로드 패키지에 의존해야 함)


<!-- google二维码工具 -->
<dependency>
 <groupId>com.google.zxing</groupId>
 <artifactId>javase</artifactId>
 <version>3.1.0</version>
</dependency>

<!-- 文件上传 -->
<dependency>
 <groupId>commons-fileupload</groupId>
 <artifactId>commons-fileupload</artifactId>
 <version>1.3.1</version>
</dependency>
<dependency>
 <groupId>commons-io</groupId>
 <artifactId>commons-io</artifactId>
 <version>2.4</version>
</dependency>

2. 생성 2개의 QR 코드 인터페이스 생성(인터페이스 매개변수는 QR 코드 콘텐츠, 일반적으로 URL임)


/**
 * 生成二维码
 * google zxing 实现
 * @param text
 * @return
 */
@RequestMapping(value = "/qrcode/encode", method = RequestMethod.POST)
public void encodeQrCode(String text, HttpServletResponse response) {
  try {
   // 设置二维码参数
   Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();
   hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
   BitMatrix bitMatrix = new MultiFormatWriter().encode(text, BarcodeFormat.QR_CODE, 150, 150, hints);
   //返回二维码
   MatrixToImageWriter.writeToStream(bitMatrix, "jpg", response.getOutputStream());
  } catch (Exception e) {
   e.printStackTrace();
  }
}

3. QR 코드 디코딩 인터페이스 생성(디코딩된 QR 코드 콘텐츠를 직접 반환)


/**
 * 二维码图片解码
 * google zxing 实现
 * @param qrImg
 * @return
 */
@RequestMapping(value = "/qrcode/decode", method = RequestMethod.POST)
public String decodeQrCode(MultipartFile qrImg) {
  if (!qrImg.isEmpty()) {
   try {
     BufferedImage image = ImageIO.read(qrImg.getInputStream());

     BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(image)));

     // 定义二维码的参数:
     HashMap<DecodeHintType, Object> hints = new HashMap<>();
     // 定义字符集
     hints.put(DecodeHintType.CHARACTER_SET, "utf-8");

     Result result = new MultiFormatReader().decode(binaryBitmap, hints);

     return result.getText();
   } catch (Exception e) {
     e.printStackTrace();
   }
  }

  return null;
}

위 내용은 Java가 google zxing을 기반으로 QR 코드를 생성하고 디코딩하는 방법의 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.