1. 程式人生 > >java文本顯示成二維碼

java文本顯示成二維碼

二維碼 win 顏色 圖片尺寸 nts 一個 set ont exc

需求:數據庫中存儲的是字符串,將該字符串顯示成二維碼,掃描二維碼後顯示字符串的信息

實現原理:從數據庫中先獲取數據,然後根據Qrcode生成圖片,然後將該圖片顯示出來即可。

關鍵代碼:

  

 1  public static void getQrcodeImg(String content,String imgPath){
 2         int width=140;
 3         int height=140;
 4         //實例化Qrcode
 5         Qrcode qrcode=new Qrcode();
 6         //設置二維碼的排錯率L(7%) M(15%) Q(25%) H(35%)
7 qrcode.setQrcodeErrorCorrect(‘M‘); 8 qrcode.setQrcodeEncodeMode(‘B‘); 9 //設置二維碼尺寸(1~49) 10 qrcode.setQrcodeVersion(7); 11 //設置圖片尺寸 12 BufferedImage bufImg=new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR); 13 14 //繪制二維碼圖片
15 Graphics2D gs=bufImg.createGraphics(); 16 //設置二維碼背景顏色 17 gs.setBackground(Color.WHITE); 18 //創建一個矩形區域 19 gs.clearRect(0, 0, width, height); 20 //設置二維碼的圖片顏色值 黑色 21 gs.setColor(Color.BLACK); 22 23 //獲取內容的字節數組,設置編碼集 24 try { 25 byte
[] contentBytes=content.getBytes("utf-8"); 26 int pixoff=2; 27 //輸出二維碼 28 if(contentBytes.length>0&&contentBytes.length<120){ 29 boolean[][] codeOut=qrcode.calQrcode(contentBytes); 30 for(int i=0;i<codeOut.length;i++){ 31 for(int j=0;j<codeOut.length;j++){ 32 if(codeOut[j][i]){ 33 gs.fillRect(j*3+pixoff, i*3+pixoff, 3, 3); 34 } 35 } 36 } 37 } 38 gs.dispose(); 39 bufImg.flush(); 40 //生成二維碼圖片 41 File imgFile=new File(imgPath); 42 ImageIO.write(bufImg, "png", imgFile); 43 44 System.out.println("二維碼生成成功!"); 45 46 } catch (UnsupportedEncodingException e) { 47 e.printStackTrace(); 48 } catch (IOException e) { 49 e.printStackTrace(); 50 } 51 52 }
    public static void main(String[] args){
        getQrcodeImg("2", "E:\\test.png");
    }

說明:mian方法傳參,將字符串2在E盤生成一個test.png的二維碼,掃描二維碼可以顯示出2的信息。

調用該方法需要引入一個Qrcode的jar包,下載地址:http://download.csdn.net/detail/xiaokui_wingfly/7957815

java文本顯示成二維碼