您好,登錄后才能下訂單哦!
這篇文章給大家介紹java中怎么生成并讀取二維碼,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
新建一個Java工程,在工程中添加一個lib目錄,把兩個Jar包放到lib目錄下,不要忘了add as libiary
在build.gradle中添加配置
compile fileTree(dir:'lib',include:['*.jar'])
(這里我用的是gradle)
準備工作結束,馬上開始
生成二維碼
public class QRcodeTest { public static void main(String[] args) throws Exception{ Qrcode qrcode = new Qrcode(); qrcode.setQrcodeErrorCorrect('M');//糾錯等級(分為L、M、H三個等級) qrcode.setQrcodeEncodeMode('B');//N代表數字,A代表a-Z,B代表其它字符 qrcode.setQrcodeVersion(10);//版本 //生成二維碼中要存儲的信息 String qrData ="http://www.baidu.com"; //設置一下二維碼的像素 int width = 67+12*(10-1); int height = 67+12*(10-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("gb2312"); 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("E:/code/qrcodebd.png")); } }
這樣就可以生成一張二維碼圖片,掃描二維碼,會跳轉到百度首頁。
二維碼圖片
public class MyQrCodeImage implements QRCodeImage { BufferedImage bufferedImage; public MyQrCodeImage(BufferedImage bufferedImage) { this.bufferedImage = bufferedImage; } public int getHeight() { return bufferedImage.getHeight(); } public int getPixel(int arg0, int arg1) { return bufferedImage.getRGB(arg0, arg1); } public int getWidth() { return bufferedImage.getWidth(); } }
讀取二維碼
public class ReadQrCode { public static void main(String[] args) throws IOException { File file = new File("E:/code/qrcodebd.png"); BufferedImage bufferedImage = ImageIO.read(file); Qrcode qrcode = new Qrcode(); QRCodeDecoder codeDecoder = new QRCodeDecoder(); String result = new String(codeDecoder.decode(new MyQrCodeImage(bufferedImage)),"gb2312"); System.out.println(result); } }
關于java中怎么生成并讀取二維碼就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。