java創(chuàng)建二維碼并賦予url鏈接的功能實(shí)現(xiàn)
首先在pom文件中導(dǎo)入有關(guān)依賴
<dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.0</version> </dependency> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.3.0</version> </dependency>
工具類
public class YmtUtil { public static byte[] getQRCodeImage(String text, int width, int height) throws WriterException, IOException { QRCodeWriter qrCodeWriter = new QRCodeWriter(); BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height); ByteArrayOutputStream pngOutputStream = new ByteArrayOutputStream(); MatrixToImageWriter.writeToStream(bitMatrix, "PNG", pngOutputStream); byte[] pngData = pngOutputStream.toByteArray(); return pngData; }
功能實(shí)現(xiàn)
此處是寫在service中的代碼,調(diào)用過后就可以在指定的存儲位置中找到對應(yīng)的二維碼
//獲取要賦值給二維碼的鏈接后綴如 192.168.0.21/erweima String url = erweima; //獲取本機(jī)ip地址,也可以找一指定ip地址寫死 InetAddress localhost = StrUtil.getLocalHostExactAddress(); //設(shè)置二維碼訪問路徑 String URL= "http://localhost"+ url; //設(shè)置二維碼流 qrcode = YmtUtil.getQRCodeImage(URL, 360, 360); final HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.IMAGE_PNG); //設(shè)置生成的二維碼存儲地址 linux路徑:(/root/D:/opt/upFiles) window路徑(D:/opt/upFiles)此處使用的是linux路徑 File path = new File("/root/D:/opt/upFiles", 二維碼名稱 + ".jpg"); //將二進(jìn)制數(shù)組轉(zhuǎn)為文件 ByteArrayInputStream inputStream = new ByteArrayInputStream(qrcode); MockMultipartFile file = new MockMultipartFile(ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream); file.transferTo(path);
以上就是java創(chuàng)建二維碼并賦予url鏈接的詳細(xì)內(nèi)容,更多關(guān)于java創(chuàng)建二維碼的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
特殊數(shù)據(jù)結(jié)構(gòu)之使用Java實(shí)現(xiàn)單調(diào)棧示例
這篇文章主要為大家介紹了特殊數(shù)據(jù)結(jié)構(gòu)之使用Java實(shí)現(xiàn)單調(diào)棧示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09Java連接Mysql數(shù)據(jù)庫詳細(xì)代碼實(shí)例
這篇文章主要介紹了Java連接Mysql數(shù)據(jù)庫詳細(xì)代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-02-02Java高級之HashMap中的entrySet()方法使用
這篇文章主要介紹了Java高級之HashMap中的entrySet()方法使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03詳解springboot整合ehcache實(shí)現(xiàn)緩存機(jī)制
這篇文章主要介紹了詳解springboot整合ehcache實(shí)現(xiàn)緩存機(jī)制,ehcache提供了多種緩存策略,主要分為內(nèi)存和磁盤兩級,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01半小時實(shí)現(xiàn)Java手?jǐn)]網(wǎng)絡(luò)爬蟲框架(附完整源碼)
最近在做一個搜索相關(guān)的項目,需要爬取網(wǎng)絡(luò)上的一些鏈接存儲到索引庫中,自己寫了一個簡單的網(wǎng)絡(luò)爬蟲,感興趣的可以了解一下2021-06-06JMeter連接Mysql數(shù)據(jù)庫的實(shí)現(xiàn)步驟
本文主要介紹了JMeter操作Mysql數(shù)據(jù)庫,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-12-12Java數(shù)據(jù)類型Integer與int的區(qū)別詳細(xì)解析
這篇文章主要介紹了Java數(shù)據(jù)類型Integer與int的區(qū)別詳細(xì)解析,Ingeter是int的包裝類,int的初值為0,Ingeter的初值為null,int和integer(無論new否)比,都為true,因?yàn)闀袸nteger自動拆箱為int再去比,需要的朋友可以參考下2023-12-12