一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 基于google zxing的Java二維碼生成與解碼

基于google zxing的Java二維碼生成與解碼

2020-12-06 15:34二十六度半 Java教程

這篇文章主要為大家詳細介紹了基于google zxing的Java二維碼生成與解碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下

 本文實例為大家分享了Java二維碼生成與解碼的具體代碼,供大家參考,具體內容如下

一、添加Maven依賴(解碼時需要上傳二維碼圖片,所以需要依賴文件上傳包)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!-- 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)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
 * 生成二維碼
 * 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();
  }
}

三、創建二維碼解碼接口(直接返回解碼后的二維碼內容)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/**
 * 二維碼圖片解碼
 * 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;
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本在线观看免费观看完整版 | 第一国内永久免费福利视频 | 四虎影在线永久免费观看 | 欧美精品一区视频 | 4p高h三男一女 | 国产农村一一级特黄毛片 | 九九国产在线视频 | 亚洲无限 | 青草视频在线观看视频 | 日本国产最新一区二区三区 | 女人又色又爽又黄 | 亚洲AV福利天堂一区二区三 | ova巨公主催眠1在线观看 | java hd国产高清| 亚洲精品专区 | 高中生喷水喷浆 | 亚洲天堂成人在线观看 | 国产精品 色 | 国产激情影院 | 99久久中文字幕伊人 | 亚洲成在人网站天堂一区二区 | 国产情侣视频观看 | 亚洲精品第三页 | 国内精品中文字幕 | 好湿好紧太硬了我太爽了h 好湿好滑好硬好爽好深视频 | 亚洲视频久久 | 91制片厂制作传媒破解版免费 | 午夜影院免费看 | 麻豆在线观看 | 国产成人刺激视频在线观看 | 久久www免费人成_看片高清 | 色天天综合色天天看 | 我的美女奴隶 | 99福利视频导航 | 男人与禽交的方法 | 爽好舒服快想要免费看 | 国产 国语对白 露脸正在播放 | 欧美高清无砖专区欧美精品 | 天天爱综合| 国产欧美日韩精品高清二区综合区 | 亚洲电影第1页 |