日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

如何使用 Java 生成二维码?

發布時間:2025/3/21 java 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何使用 Java 生成二维码? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 下載jar包(QRCode.jar)

下載網址如下:

 QRCode生成二維碼網址:http://swetake.com/qrcode/index-e.html

2. maven項目手動引入jar包

mvn?install:install-file -DgroupId=包名 -DartifactId=項目名 -Dversion=版本號 -Dpackaging=jar-Dfile=jar文件所在路徑1,本地D盤中有個jar,例如:D:\work\Repository\QRCode.jar2,cmd?中執行mvn?install命令格式為:mvn?install:install-file?-Dfile=<path-to-file>?-DgroupId=<group-id>?-DartifactId=<artifact-id>?-Dversion=<version>?-Dpackaging=<packaging>例如:install-file?-Dfile=D:\work\Repository\QRCode.jar?-DgroupId=QRCode?-DartifactId=QRCode?-Dversion=3.0?-Dpackaging=jar??-DgeneratePom=true?-DcreateChecksum=true(注意空格)3,在pom.xml中增加如下語句<dependency><groupId>QRCode</groupId><artifactId>QRCode</artifactId><version>3.0</version> </dependency>

手動引入成功如下:BUILD SUCCESS

C:\Users\zhm>mvn?install:install-file?-Dfile=D:\work\Repository\QRCode.jar?-DgroupId=QRCode?-DartifactId=QRCode?-Dversion=3.0?-Dpackaging=jar??-DgeneratePom=true?-DcreateChecksum=true [INFO]?Scanning?for?projects... [INFO] [INFO]?------------------------------------------------------------------------ [INFO]?Building?Maven?Stub?Project?(No?POM)?1 [INFO]?------------------------------------------------------------------------ [INFO] [INFO]?---?maven-install-plugin:2.4:install-file?(default-cli)?@?standalone-pom?--- [INFO]?Installing?D:\work\Repository\QRCode.jar?to?D:\work\Repository\QRCode\QRCode\3.0\QRCode-3.0.jar [INFO]?Installing?C:\Users\zhm\AppData\Local\Temp\mvninstall6966241826790879082.pom?to?D:\work\Repository\QRCode\QRCode\3.0\QRCode-3.0.pom [INFO]?------------------------------------------------------------------------ [INFO]?BUILD?SUCCESS [INFO]?------------------------------------------------------------------------ [INFO]?Total?time:?0.604?s [INFO]?Finished?at:?2018-09-30T15:16:23+08:00 [INFO]?Final?Memory:?7M/123M [INFO]?------------------------------------------------------------------------或者不做以上操作引入jar包,pom文件直接指向QRCode.jar在本地路徑<dependency><groupId>QRCode</groupId><artifactId>QRCode</artifactId><version>3.0</version><scope>system</scope><systemPath>D:/work/Repository/QRCode.jar</systemPath> </dependency>

3. 編寫實體類實現二維碼的生成

package?com.st.project.common;import?com.swetake.util.Qrcode; import?jp.sourceforge.qrcode.QRCodeDecoder; import?jp.sourceforge.qrcode.data.QRCodeImage; import?jp.sourceforge.qrcode.exception.DecodingFailedException;import?java.awt.Color; import?java.awt.Graphics2D; import?java.awt.image.BufferedImage; import?java.io.File; import?java.io.IOException; import?javax.imageio.ImageIO;/***?二維碼工具類*/ public?class?CreateQRCode?{/***?創建二維碼*?@param?qrData?生成二維碼中要存儲的信息*?@param?path???二維碼圖片存儲路徑?eg:"D:/qrcode.png"*?@throws?Exception*/public?static?boolean?creatQrcode(String?qrData,?String?path)?{try?{Qrcode?qrcode?=?new?Qrcode();qrcode.setQrcodeErrorCorrect('M');//糾錯等級(分為L、M、H三個等級)qrcode.setQrcodeEncodeMode('B');//N代表數字,A代表a-Z,B代表其它字符qrcode.setQrcodeVersion(7);//版本//設置一下二維碼的像素int?width?=?67?+?12?*?(7?-?1);int?height?=?67?+?12?*?(7?-?1);BufferedImage?bufferedImage?=?new?BufferedImage(width,?height,?BufferedImage.TYPE_INT_RGB);//繪圖Graphics2D?gs?=?bufferedImage.createGraphics();gs.setBackground(Color.WHITE);gs.setColor(Color.BLACK);gs.clearRect(0,?0,?width,?height);//清除下畫板內容//設置下偏移量,如果不加偏移量,有時會導致出錯。int?pixoff?=?2;byte[]?d?=?qrData.getBytes("utf-8");if?(d.length?>?0?&&?d.length?<?120)?{boolean[][]?s?=?qrcode.calQrcode(d);for?(int?i?=?0;?i?<?s.length;?i++)?{for?(int?j?=?0;?j?<?s.length;?j++)?{if?(s[j][i])?{gs.fillRect(j?*?3?+?pixoff,?i?*?3?+?pixoff,?3,?3);}}}}gs.dispose();bufferedImage.flush();ImageIO.write(bufferedImage,?"png",?new?File(path));return?true;}?catch?(IOException?e)?{e.printStackTrace();return?false;}}/***?解析二維碼(QRCode)**?@param?imgPath?圖片路徑*?@return*/public?static?String?decoderQRCode(String?imgPath)?{//QRCode?二維碼圖片的文件File?imageFile?=?new?File(imgPath);BufferedImage?bufImg?=?null;String?content?=?null;try?{bufImg?=?ImageIO.read(imageFile);QRCodeDecoder?decoder?=?new?QRCodeDecoder();content?=?new?String(decoder.decode(new?TwoDimensionCodeImage(bufImg)),?"utf-8");}?catch?(IOException?e)?{System.out.println("Error:?"?+?e.getMessage());e.printStackTrace();}?catch?(DecodingFailedException?dfe)?{System.out.println("Error:?"?+?dfe.getMessage());dfe.printStackTrace();}return?content;}}/***?二維碼基礎類*/ class?TwoDimensionCodeImage?implements?QRCodeImage?{//BufferedImage作用將一幅圖片加載到內存中BufferedImage?bufImg;public?TwoDimensionCodeImage(BufferedImage?bufImg)?{this.bufImg?=?bufImg;}@Overridepublic?int?getWidth()?{return?bufImg.getWidth();//返回像素寬度}@Overridepublic?int?getHeight()?{return?bufImg.getHeight();//返回像素高度}@Overridepublic?int?getPixel(int?i,?int?i1)?{return?bufImg.getRGB(i,?i1);//得到長寬值,即像素值,i,i1代表像素值} }

4. controller調用

package?com.st.project.controller;import?com.st.project.common.AjaxResult; import?org.springframework.beans.factory.annotation.Value; import?org.springframework.stereotype.Controller; import?org.springframework.web.bind.annotation.PostMapping; import?org.springframework.web.bind.annotation.RequestMapping; import?org.springframework.web.bind.annotation.ResponseBody;import?javax.servlet.http.HttpServletRequest;import?static?com.st.project.common.CreateQRCode.creatQrcode; import?static?com.st.project.common.CreateQRCode.decoderQRCode;/***?創建二維碼*/ @Controller @RequestMapping("/qrcode") public?class?QrcodeController?{@Value("${portals.upload.image.path}")private?String?qrcodePath;?//二維碼存儲路徑/***?創建二維碼*?@return*/@ResponseBody@PostMapping("/add.dd")public?AjaxResult?addQrcode(HttpServletRequest?request){AjaxResult?ajaxResult?=?new?AjaxResult();ajaxResult.setState(false);String?qrData=request.getParameter("qrData");String?qrSuffix=request.getParameter("qrSuffix");String?qrcode=System.currentTimeMillis()+"."+qrSuffix;String?path=qrcodePath+qrcode;boolean?getQrcode=creatQrcode(qrData,path);if(getQrcode==true){ajaxResult.setState(true);ajaxResult.setData(qrcode);}return?ajaxResult;}/***?解析二維碼*?@return*/@ResponseBody@PostMapping("/decoder.dd")public?AjaxResult?decoderQrcode(HttpServletRequest?request){AjaxResult?ajaxResult?=?new?AjaxResult();ajaxResult.setState(false);String?qrcode=request.getParameter("qrcode");String?qrData=decoderQRCode(qrcodePath+qrcode);if(qrData!=null?&&?!"".equals(qrData)){ajaxResult.setState(true);ajaxResult.setData(qrData);}return?ajaxResult;}}

此時已生成一張名為qrcode.png的二維碼圖片:

總結

以上是生活随笔為你收集整理的如何使用 Java 生成二维码?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品影院在线观看 | 俄罗斯黄色录像 | 韩国一级片在线观看 | 又黄又爽无遮挡 | 国产精品8888 | 欧美性区 | 色不卡| 成人黄性视频 | av色图在线 | 欧美日韩不卡视频 | 国产区二区 | 免费成年人视频在线观看 | 亚洲欧美综合视频 | 中文字幕人妻熟女在线 | 国产喷水吹潮视频www | 精品福利一区 | 毛片3| 国产精品综合网 | 亚洲第1页 | xxxwww黄色 | 国内视频自拍 | 日韩毛片一区二区三区 | 久久午夜剧场 | 国产激情视频在线 | 国产精品麻豆欧美日韩ww | 亚洲精品美女久久久 | av资源部| 亚洲狠狠婷婷综合久久久久图片 | 亚洲综合首页 | 荫蒂被男人添免费视频 | 免费处女在线破视频 | 亚洲综合色自拍一区 | 性生活毛片| 中文字幕亚洲精品在线 | 91久色蝌蚪| 欧美日韩在线免费播放 | 欧美性生活精品 | 污动漫网站 | 91午夜剧场 | 毛片高清免费 | 国精产品一区一区三区有限公司杨 | 国产成人av一区二区三区不卡 | 亚洲一本在线观看 | 国产精品无码久久久久高潮 | 九九九九色| 亚洲午夜精品久久 | 成人做爰www免费看视频网站 | 69视频在线 | 五月综合激情 | 欧美射射| 日韩高清不卡在线 | 日本精品视频在线播放 | 天天色影 | 日韩大片免费观看视频播放 | 男操女视频网站 | 97精品免费视频 | 在线视频观看免费 | 一本久道久久综合无码中文 | 婷婷五月综合缴情在线视频 | 午夜看片在线 | 日韩综合另类 | 亚洲一二三区在线观看 | 欧美美女性生活视频 | 日本一区二区三区久久 | 720url在线观看免费版 | 四虎网站在线观看 | 欧美黄色a视频 | av男人的天堂在线观看 | 黄色在线观看免费视频 | 懂色一区二区三区免费观看 | 粉嫩av蜜桃av蜜臀av | 性欧美巨大乳 | 国产色啪 | 色婷婷婷婷 | 一级激情片| 国产欧美日韩精品区一区二污污污 | 国产成人精品一区二区三区视频 | 亚洲精品色图 | 一级伦理农村妇女愉情 | 亚洲午夜一区二区 | 精品国产美女 | 99国产精品一区二区三区 | 97视频免费在线 | www.爱操| a爱视频| 春宵av | 亚洲欧洲在线播放 | 精品一区二区三区四区 | yjizz视频| 欣赏asian国模裸体pics | 亚洲精品一区三区三区在线观看 | 日本wwwwwww| www黄色网址 | 国产男女视频 | 爱臀av| 欧美性生活一级 | 日韩欧美久久精品 | 欧美日韩国产精品成人 | 特大巨交吊性xxxx |