Cet article présente principalement en détail la génération et le décodage de code QR Java basé sur Google zxing. Il a une certaine valeur de référence. Les amis intéressés peuvent s'y référer
Les exemples de cet article sont partagés avec tout le monde. Le code pour la génération et le décodage du code QR Java est fourni pour votre référence. Le contenu spécifique est le suivant
1. Ajoutez une dépendance Maven (vous devez télécharger l'image du code QR lors du décodage, vous devez donc le faire. comptez sur le package de téléchargement de fichiers)
<!-- 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. Créez une interface de génération de code QR (le paramètre d'interface est le contenu du code QR, généralement une 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. Créer une interface de décodage de code QR (renvoie directement le contenu du code QR décodé)
/** * 二维码图片解码 * 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; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!