首页 > 开发 > Java > 正文

基于google zxing的Java二维码生成与解码

2024-07-13 10:10:15
字体:
来源:转载
供稿:网友

 本文实例为大家分享了Java二维码生成与解码的具体代码,供大家参考,具体内容如下

一、添加Maven依赖(解码时需要上传二维码图片,所以需要依赖文件上传包)

<!-- 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>

二、创建生成二维码接口(接口参数为二维码内容,通常是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();  }}

三、创建二维码解码接口(直接返回解码后的二维码内容)

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VeVb武林网。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表