当前位置: 移动技术网 > IT编程>开发语言>Java > 基于google zxing的Java二维码生成与解码

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

2019年07月19日  | 移动技术网IT编程  | 我要评论

阿芙精油,何中华老婆,螺旋洗砂机

 本文实例为大家分享了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;
}

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网