你的位置:首页 > 软件开发 > Java > [二维码生成和解析][Java]

[二维码生成和解析][Java]

发布时间:2015-12-10 18:00:44
首先必须的jar包文件:百度云盘下载 Qrcode.jar Qrcode_Swetake.jar 这两个就是我们的主角学习之前可以简单了解一下:二维码原理新建JavaProject 新建lib文件夹将jar文件复制进去,选中jar文件右键B ...

[二维码生成和解析][Java]

首先必须的jar包文件:百度云盘下载

 

Qrcode.jar  [二维码生成和解析][Java]  Qrcode_Swetake.jar 这两个就是我们的主角

学习之前可以简单了解一下:二维码原理

[二维码生成和解析][Java]

新建JavaProject    新建lib文件夹

将jar文件复制进去,选中jar文件右键BuildPath -- Add to BuildPath (旁白:这么简单的操作你都还要讲!)

进入正题:[二维码生成和解析][Java]

 

代码如下:    为方面同学理解 注释较多 请理解  如感不适  请见谅 [二维码生成和解析][Java]

(旁白:废话太多了 我要看代码!)

生成Qrcode代码:

新建 QrcodeDemo.java

[二维码生成和解析][Java][二维码生成和解析][Java]
package qrcode;import java.awt.Color;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import java.io.UnsupportedEncodingException;import javax.imageio.ImageIO;import com.swetake.util.Qrcode;public class QrcodeDemo {  public static void main(String[] args) throws UnsupportedEncodingException {    Qrcode qrcode=new Qrcode();    //二维码包含:数据和纠错码字:实际保存的二维码信息,和纠错码字(用于修正二维码损坏带来的错误)    //格式信息:表示改二维码的纠错级别,分为L、M、Q、H    //错误修正容量    //L水平  7%的字码可被修正     //M水平  15%的字码可被修正     //Q水平  25%的字码可被修正     //H水平  30%的字码可被修正     //Qrcode有容错能力,Qrcode图形如果有破损,仍然可以被读取内容,最高可以到30%面积破损仍可被读取。     //相对而言,容错率愈高,Qrcode图形面积愈大。    //所以一般折衷使用15%容错能力 - 'M'    qrcode.setQrcodeErrorCorrect('M');        //B 以2进制形式 进行信息存储    qrcode.setQrcodeEncodeMode('B');        //设置Qrcode版本     //QR码符号共有40种规格的矩阵(一般为黑白色)    //从21x21(版本1),到177x177(版本40)    //每一版本符号比前一版本 每边增加4个模块    //常用版本为7 如支付宝版本    qrcode.setQrcodeVersion(7);        //创建图片的存储空间 - 流空间    BufferedImage img=new BufferedImage(140,140,BufferedImage.TYPE_INT_RGB);//常量 8位 颜色的图片    //画笔工具    Graphics2D g=img.createGraphics();    g.setBackground(Color.white);    g.clearRect(0, 0, 140, 140);    g.setColor(Color.black);        File file=new File("/Users/Summer/Desktop/二维码.png");        //数据信息    String str="http://www.baidu.com";    byte[] data =str.getBytes();        //生成的cal    boolean[][] qrcodeDate=qrcode.calQrcode(data);        // 设置偏移量 不设置可能导致解析出错     int offset=2;    for (int i = 0; i < qrcodeDate.length; i++) {      for (int j = 0; j < qrcodeDate.length; j++) {        /* 必须做判定 判定为true的部分进行打印*/        if(qrcodeDate[j][i]){//注意j i的位置 否则可能导致后续无法解析                     //主意j i的位置 防止绘制错误          g.fillRect(j*3+offset,i*3+offset,3,3);        /*         * 以下尺寸合适,二维码居中         * 100*100 (j*2+5,i*2+5,3,3)         * 140*140 (j*3+2,i*3+2,3,3)         * 300*300 (j*6+15,i*6+15,6,6);         */        }      }    }    //刷新    img.flush();    //释放资源    g.dispose();    try {      //流写入文件      ImageIO.write(img,"png",file);    } catch (IOException e) {      e.printStackTrace();    }  }}

原标题:[二维码生成和解析][Java]

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。