首页 > 编程 > Java > 正文

java二维码 生成二维码

2019-11-11 07:00:23
字体:
来源:转载
供稿:网友
需要下载QRCode.jar包,下载地址:http://download.csdn.net/detail/sinat_22750705/9748085package 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();             }       }}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表