java生成二维码

package net.test;


import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;


import javax.imageio.ImageIO;


import com.swetake.util.Qrcode;






public class Test {


public static void main(String[] args) throws Exception {

  String imgPath = "D:/qrCode.png";
  File file=new File(imgPath);
  System.out.println(file.getName());
      String content = "http://www.baidu.com";
      Test test=new Test();
      test.encoderQRCode(content, imgPath);    

      System.out.println("encoder QRcode success");    
}


public static InputStream getStringStream(String sInputString) {
if (sInputString != null && !sInputString.trim().equals("")) {
try {
ByteArrayInputStream tInputStringStream = new ByteArrayInputStream(
sInputString.getBytes());
return tInputStringStream;
} catch (Exception ex) {
ex.printStackTrace();
}
}
return null;
}


public static String getStreamString(InputStream tInputStream) {
if (tInputStream != null) {
try {
BufferedReader tBufferedReader = new BufferedReader(
new InputStreamReader(tInputStream));
StringBuffer tStringBuffer = new StringBuffer();
String sTempOneLine = new String("");
while ((sTempOneLine = tBufferedReader.readLine()) != null) {
tStringBuffer.append(sTempOneLine);
}
return tStringBuffer.toString();
} catch (Exception ex) {
ex.printStackTrace();
}
}
return null;
}

/**** 
* 生成二维码(QRCode)图片      

* */   
   public void encoderQRCode(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("gb2312");    
 

           BufferedImage bufImg = new BufferedImage(140, 140,    
 
                  BufferedImage.TYPE_INT_RGB);    
 
   


        Graphics2D gs = bufImg.createGraphics();    


           gs.setBackground(Color.WHITE);    


          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]) {    
 
                          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();    


    } 
      }   


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值