使用IDEA创建一个通过url链接生成二维码的java程序|自动生成二维码
????????平時使用了那么多的二維碼,今天我們自己做一個二維碼。今天剛安裝了IDEA,學會了用法,就來通過IDEA做一個生成二維碼的程序。
? ? ? ? 首先新建一個項目
????????設置項目名稱
????????點擊Next之后,出現(xiàn)下圖所示頁面:
?????????這里要注意,都是默認的就行(但是記住框出的文件目錄,之后會有用?),然后Finish完成項目創(chuàng)建。項目創(chuàng)建成功之后是要下載? jar 包到項目中的,但是,默認的下載路徑是一個國外的下載網(wǎng)站,會比減慢,所以要配置下載路徑,這時候就需要剛才的目錄了,在剛才的目錄下放入settings.xml,文件下載參考https://download.csdn.net/download/m0_53197131/20337849。文件放入如圖目錄實例:
????????放入文件之后,在進入IDEA,等待下載完成就行了。
????????那么問題來了,如果下載失敗怎么辦呢?
????????下載失敗沒事,一般添加配置文件更改下載地址之后第一次容易出錯,以后就不會了。鼠標放到項目名稱上,右鍵? ----? Open In? ----? Explorer? ----? 選中創(chuàng)建的項目刪掉,然后關閉IDEA再重新進入,按照上邊的過程再建立一個項目就可以了。第一次已經(jīng)添加過,這時候并不需要再次添加配置文件,等待下載即可,下載完成后的界面如圖:
? ? ? ? 然后打開項目下的pom.xml文件,添加如下配置:
<dependency><groupId>com.google.zxing</groupId><artifactId>javase</artifactId><version>3.3.3</version> </dependency>????????保存文件,然后點擊右上角的圖標再次下載jar包,等待下載完成。
????????然后就是開始創(chuàng)建java類,導包之類的了。
????????創(chuàng)建java類的步驟就不多做描述了,新建Javaclass類Code,直接上圖
????????然后就是在Code 文件中寫java代碼了,先上代碼:
import java.awt.Color; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.HashMap; import java.util.Map; import javax.imageio.ImageIO; import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.MultiFormatWriter; import com.google.zxing.WriterException; import com.google.zxing.client.j2se.MatrixToImageConfig; import com.google.zxing.client.j2se.MatrixToImageWriter; import com.google.zxing.common.BitMatrix; import com.google.zxing.common.CharacterSetECI; import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;/*** QRCode工具類** @author: GaoHuanjie*/ public class Code {/*** 生成二維碼** @author GaoHuanjie**/public static boolean createQRCode(String content, int width, int height, int margin, String filePath,String fileName, String formatName) throws Exception {if (content == null || content.equals("")) {throw new Exception("二維碼內(nèi)容不能為空。");}// 二維碼基本參數(shù)設置Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();hints.put(EncodeHintType.CHARACTER_SET, CharacterSetECI.UTF8);// 設置編碼字符集utf-8hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);// 設置糾錯等級L/M/Q/H,當二維碼被損毀一部分時,糾錯等級越高,越可能讀取成功;同樣的,糾錯等級越高,單位面積內(nèi)點陣的點越多,機器掃描時,識別所需時間越長,當前設置等級為最高等級Hhints.put(EncodeHintType.MARGIN, margin);// 可設置范圍為0-10,但僅四個變化0 1(2) 3(4 5 6) 7(8 9 10)// 生成圖片類型為QRCodeBarcodeFormat format = BarcodeFormat.QR_CODE;// 創(chuàng)建位矩陣對象BitMatrix matrix = null;try {// 生成二維碼對應的位矩陣對象matrix = new MultiFormatWriter().encode(content, format, width, height, hints);} catch (WriterException e) {e.printStackTrace();}// 設置位矩陣轉圖片的參數(shù)MatrixToImageConfig config = new MatrixToImageConfig(Color.black.getRGB(), Color.white.getRGB());// 位矩陣對象轉BufferedImage對象BufferedImage bufferedImage = MatrixToImageWriter.toBufferedImage(matrix, config);// 判斷路徑是否存在,不存在則創(chuàng)建File path = new File(filePath);if (!path.exists()) {path.mkdirs();}// 路徑后補充斜杠if (filePath.lastIndexOf("\\") != filePath.length() - 1) {filePath = filePath + "\\";}// 二維碼全路徑filePath = filePath + fileName + "." + formatName;try {// 輸出圖片文件到指定位置return ImageIO.write(bufferedImage, formatName, new File(filePath));} catch (IOException e) {e.printStackTrace();}return false;}public static void main(String[] args) {String content = "https://image.baidu.com/search/detail?ct=503316480&z=&tn=baiduimagedetail&ipn=d&word=%E5%A3%81%E7%BA%B8&step_word=&ie=utf-8&in=&cl=2&lm=-1&st=-1&hd=undefined&latest=undefined©right=undefined&cs=2544377084,275372641&os=3052229399,834441112&simid=3533086814,586585425&pn=59&rn=1&di=72930&ln=3476&fr=&fmq=1526269427171_R&fm=&ic=0&s=undefined&se=&sme=&tab=0&width=&height=&face=undefined&is=0,0&istype=2&ist=&jit=&bdtype=0&spn=0&pi=0&gsm=0&objurl=https%3A%2F%2Fss0.baidu.com%2F-Po3dSag_xI4khGko9WTAnF6hhy%2Fzhidao%2Fpic%2Fitem%2F0e2442a7d933c895ca486665d51373f0820200fd.jpg&rpstart=0&rpnum=0&adpicid=0&nojc=undefined";//二維碼內(nèi)容int width = 888;//二維碼寬度int height = 888;//二維碼高度int margin = 3;//二維碼邊距String filePath = "D:\\";//二維碼保存路徑String fileName = "高清壁紙,你值得擁有!";//二維碼文件名String formatName = "jpg";//二維碼圖片格式try {// 生成二維碼if(createQRCode(content, width, height,margin,filePath, fileName, formatName)) {System.out.println("Yes");return;}System.out.println("No");} catch (Exception e) {e.printStackTrace();}} }?????????可以自己更改主函數(shù)的鏈接,可以改成網(wǎng)頁鏈接或是網(wǎng)圖都可以:
String content = "https://image.baidu.com/search/detail?ct=503316480&z=&tn=baiduimagedetail&ipn=d&word=%E5%A3%81%E7%BA%B8&step_word=&ie=utf-8&in=&cl=2&lm=-1&st=-1&hd=undefined&latest=undefined©right=undefined&cs=2544377084,275372641&os=3052229399,834441112&simid=3533086814,586585425&pn=59&rn=1&di=72930&ln=3476&fr=&fmq=1526269427171_R&fm=&ic=0&s=undefined&se=&sme=&tab=0&width=&height=&face=undefined&is=0,0&istype=2&ist=&jit=&bdtype=0&spn=0&pi=0&gsm=0&objurl=https%3A%2F%2Fss0.baidu.com%2F-Po3dSag_xI4khGko9WTAnF6hhy%2Fzhidao%2Fpic%2Fitem%2F0e2442a7d933c895ca486665d51373f0820200fd.jpg&rpstart=0&rpnum=0&adpicid=0&nojc=undefined";//二維碼內(nèi)容????????也可以改二維碼文件的位置這里我設置的是D盤根目錄:
String filePath = "D:\\";//二維碼保存路徑????????還可以改二維碼的名字與圖片格式:
String fileName = "高清壁紙,你值得擁有!";//二維碼文件名 String formatName = "jpg";//二維碼圖片格式????????有些同學這時候會出現(xiàn)錯誤,這是因為下載的包沒有加載到文件中,這時候刷新就可以。
????????按照圖中的步驟,雙擊clean和compile就可以了。?
????????右鍵? ----? Run? 運行,之后就可以在D盤根目錄下看到生成的二維碼了。
????????生成的二維碼如圖:
?????????之后就可以用手機掃描二維碼,可以看到鏈接的內(nèi)容。學會了就去試試吧
總結
以上是生活随笔為你收集整理的使用IDEA创建一个通过url链接生成二维码的java程序|自动生成二维码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 济南什么是专利挖掘?如何挖掘专利?
- 下一篇: TOM企业邮箱|你会设置电子名片吗?