java創(chuàng)建二維碼并賦予url鏈接的功能實(shí)現(xiàn)
首先在pom文件中導(dǎo)入有關(guān)依賴(lài)
<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>
工具類(lèi)
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)
此處是寫(xiě)在service中的代碼,調(diào)用過(guò)后就可以在指定的存儲(chǔ)位置中找到對(duì)應(yīng)的二維碼
//獲取要賦值給二維碼的鏈接后綴如 192.168.0.21/erweima
String url = erweima;
//獲取本機(jī)ip地址,也可以找一指定ip地址寫(xiě)死
InetAddress localhost = StrUtil.getLocalHostExactAddress();
//設(shè)置二維碼訪問(wèn)路徑
String URL= "http://localhost"+ url;
//設(shè)置二維碼流
qrcode = YmtUtil.getQRCodeImage(URL, 360, 360);
final HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.IMAGE_PNG);
//設(shè)置生成的二維碼存儲(chǔ)地址 linux路徑:(/root/D:/opt/upFiles) window路徑(D:/opt/upFiles)此處使用的是linux路徑
File path = new File("/root/D:/opt/upFiles", 二維碼名稱(chēng) + ".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)建二維碼的資料請(qǐ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-09
Java連接Mysql數(shù)據(jù)庫(kù)詳細(xì)代碼實(shí)例
這篇文章主要介紹了Java連接Mysql數(shù)據(jù)庫(kù)詳細(xì)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
Java高級(jí)之HashMap中的entrySet()方法使用
這篇文章主要介紹了Java高級(jí)之HashMap中的entrySet()方法使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
詳解springboot整合ehcache實(shí)現(xiàn)緩存機(jī)制
這篇文章主要介紹了詳解springboot整合ehcache實(shí)現(xiàn)緩存機(jī)制,ehcache提供了多種緩存策略,主要分為內(nèi)存和磁盤(pán)兩級(jí),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
半小時(shí)實(shí)現(xiàn)Java手?jǐn)]網(wǎng)絡(luò)爬蟲(chóng)框架(附完整源碼)
最近在做一個(gè)搜索相關(guān)的項(xiàng)目,需要爬取網(wǎng)絡(luò)上的一些鏈接存儲(chǔ)到索引庫(kù)中,自己寫(xiě)了一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)爬蟲(chóng),感興趣的可以了解一下2021-06-06
JMeter連接Mysql數(shù)據(jù)庫(kù)的實(shí)現(xiàn)步驟
本文主要介紹了JMeter操作Mysql數(shù)據(jù)庫(kù),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
Java數(shù)據(jù)類(lèi)型Integer與int的區(qū)別詳細(xì)解析
這篇文章主要介紹了Java數(shù)據(jù)類(lèi)型Integer與int的區(qū)別詳細(xì)解析,Ingeter是int的包裝類(lèi),int的初值為0,Ingeter的初值為null,int和integer(無(wú)論new否)比,都為true,因?yàn)闀?huì)把Integer自動(dòng)拆箱為int再去比,需要的朋友可以參考下2023-12-12

