直播系統搭建,java二維碼 生成二維碼

zhibo系統開發發表於2023-05-08

直播系統搭建,java二維碼 生成二維碼

package BasicsTest;
import com.swetake.util.Qrcode;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
/** * 二維碼生成 
* Created by xs on 2017/2/6. 
*/
public class QRCode {    
/**     
* @param args the command line arguments     
*/    
public static void main(String[] args) {        
        //圖片地址和名稱
        String imgPath = "./qrCodeTest.png";
        //二維碼的內容
        String content = "\t珊丫頭"                
                     + "\nCSDN      :sinat_22750705";        
        QRCode handler = new QRCode();        
        handler.encodeQRCode(content, imgPath);        
        System.out.println("encoder QRcode success");    
}    
/**     
* 生成二維碼(QRCode)圖片     
* @param content     
* @param imgPath     
*/    
public  void encodeQRCode(String content,String imgPath){        
   try{            
       //二維碼實體            
       Qrcode qrcodeHandler=new Qrcode();            
       //二維碼糾錯            
       qrcodeHandler.setQrcodeErrorCorrect('M');            
       //二維碼編碼模式            
       qrcodeHandler.setQrcodeEncodeMode('B');            
       //二維碼版本            
       qrcodeHandler.setQrcodeVersion(7);            
       System.out.println(content);            
      byte[] contentBytes = content.getBytes("utf-8");            
       //BufferedImage 提供建立和修改影像的各種類。140 長  140 寬            
       BufferedImage bufImg = new BufferedImage(140, 140,                    
       BufferedImage.TYPE_INT_RGB);            
       //返回一個呈現指定 BufferedImage 的 Graphics2D 物件。            
       Graphics2D gs = bufImg.createGraphics();            
       //背景顏色            
       gs.setBackground(Color.white);            
       // public abstract void clearRect(int x, int y, int width, int height);寬 高  
       //clearRect() 清除一個矩形區域            
       gs.clearRect(0, 0, 140, 140);            
       // 設定影像顏色 > BLACK            
       gs.setColor(Color.BLACK);            
       // 設定偏移量 不設定可能導致解析出錯            
      int pixoff = 2;            
      // 輸出內容 > 二維碼            
     if (contentBytes.length > 0 && contentBytes.length < 120) {                
         boolean[][] codeOut = qrcodeHandler.calQrcode(contentBytes);                
         for (int i = 0; i < codeOut.length; i++) {                    
             for (int j = 0; j < codeOut.length; j++) {                        
                 if (codeOut[j][i]) {                            
                      //fillRect() 填充一個矩形區域                            
                   gs.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3);                        
                   }                    
               }                
          }            
      } else {                
             System.err.println("QRCode content bytes length = "                        
                       + contentBytes.length + " not in [ 0,120 ]. ");            
        }            
        //關閉窗體,並釋放資源            
        gs.dispose();            
        bufImg.flush();            
        //建立檔案            
        File imgFile = new File(imgPath);            
        // 生成二維碼QRCode圖片            
        ImageIO.write(bufImg, "png", imgFile);        
    }catch (Exception  e){            
         e.printStackTrace();        
     }    
   }
}


以上就是直播系統搭建,java二維碼 生成二維碼, 更多內容歡迎關注之後的文章 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2950671/,如需轉載,請註明出處,否則將追究法律責任。

相關文章