Heim  >  Artikel  >  Java  >  Beispiel dafür, wie Java QR-Codes basierend auf Google ZXing generiert und dekodiert

Beispiel dafür, wie Java QR-Codes basierend auf Google ZXing generiert und dekodiert

黄舟
黄舟Original
2017-07-26 15:22:231469Durchsuche

Dieser Artikel stellt hauptsächlich die Generierung und Dekodierung von Java QR-Code basierend auf Google ZXing vor. Er hat einen bestimmten Referenzwert.

Die Beispiele in diesem Artikel werden mit allen geteilt Code für die Java-QR-Code-Generierung und -Dekodierung wird als Referenz bereitgestellt. Der spezifische Inhalt lautet wie folgt:

1. Maven-Abhängigkeit hinzufügen (Sie müssen das QR-Code-Bild beim Dekodieren hochladen, also müssen Sie dies tun Verlassen Sie sich auf das Datei-Upload-Paket)


<!-- 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. Erstellen Sie eine QR-Code-Generierungsschnittstelle (der Schnittstellenparameter ist der QR-Code-Inhalt, normalerweise eine 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. Erstellen Sie eine QR-Code-Dekodierungsschnittstelle (gibt den dekodierten QR-Code-Inhalt direkt zurück)


/**
 * 二维码图片解码
 * 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;
}

Das obige ist der detaillierte Inhalt vonBeispiel dafür, wie Java QR-Codes basierend auf Google ZXing generiert und dekodiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn