QRCode 生成二维码

来源:互联网 发布:c语言怎么判断闰年 编辑:程序博客网 时间:2024/06/05 02:06

QRCode生成二维码直接百度云下载路径:链接: https://pan.baidu.com/s/1i4VVbdb 密码: bshi

QRCode解析二维码直接百度云下载路径:链接: https://pan.baidu.com/s/1nuElTYp 密码: hfur

生成二维码的下载

第一步:复制下载链接:http://www.swetake.com/qrcode/index-e.html在浏览器中打开,点击红框内的连接(document & libraries ......)



第二步:点击后进入页面,点击红框内的连接(上面两个是其他语言的,我们选择java)



第三步:直接点击红框内的下载



第四步:下载后,解压缩后的包展示



解析二维码的下载

复制下载链接:https://zh.osdn.net/projects/qrcode/    因为内容是中文的,而且步骤简单,在这就不详细介绍了.


把下载下来的压缩包中的lib文件夹中的jar拷贝到项目中,注意修改一下名字,两个jar包名字一样,但是里面的类不一样,也可手动自己合并.

如果是maven项目到repository中搜索QRCode找到相关依赖

JAVA代码生成二维码

package com.crazy_qu.QRCode;import java.awt.Color;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.File;import javax.imageio.ImageIO;import com.swetake.util.Qrcode;/** * QRCode生成二维码 * @author crazy * */public class CreateQRCode {public static void main(String[] args) throws Exception {Qrcode x=new Qrcode();//二维码类,对内容填充x.setQrcodeErrorCorrect('M');//纠错等级LMQHx.setQrcodeEncodeMode('B');//N代表数字, A代表a-Z, B代表其他字符x.setQrcodeVersion(7);//QRCode的版本号,取值1-40String qrData = "www.baidu.com";int width = 67 + 12 * (x.getQrcodeVersion() - 1);//不通过这个计算,直接写一个设定值,二维码显示位置有误int height = 67 + 12 * (x.getQrcodeVersion() - 1);BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);//缓冲区的图片Graphics2D gs = bufferedImage.createGraphics();//java画图工具gs.setBackground(Color.WHITE);//背景色gs.setColor(Color.BLACK);//设置二维码颜色gs.clearRect(0, 0, width, height);//清除画板内容int pixoff = 2;//偏移量byte[] d =qrData.getBytes("gb2312");//转换成字节数,如果存在汉字使用"gb2312"字符集if (d.length>0 && d.length <120){    boolean[][] s = x.calQrcode(d);    for (int i=0;i<s.length;i++){for (int j=0;j<s.length;j++){    if (s[j][i]) {    gs.fillRect(j*3 + pixoff ,i*3 + pixoff , 3, 3);//添加偏移量,否则有时解析会出错    }}    }}gs.dispose();bufferedImage.flush();ImageIO.write(bufferedImage, "png", new File("D:/qrcode.png"));}}

JAVA代码解析二维码

package com.crazy_qu.QRCode;import java.awt.image.BufferedImage;public class QRCodeImage implements jp.sourceforge.qrcode.data.QRCodeImage {private BufferedImage bufferedImage;public  QRCodeImage(BufferedImage bufferedImage) {this.bufferedImage = bufferedImage;}@Overridepublic int getHeight() {return bufferedImage.getHeight();}@Overridepublic int getPixel(int arg0, int arg1) {return bufferedImage.getRGB(arg0, arg1);}@Overridepublic int getWidth() {return bufferedImage.getWidth();}}

package com.crazy_qu.QRCode;import java.awt.image.BufferedImage;import java.io.File;import javax.imageio.ImageIO;import jp.sourceforge.qrcode.QRCodeDecoder;public class ReadQRCode {public static void main(String[] args) throws Exception {//指定文件位置File file = new File("D:/qrcode.png");//读取文件BufferedImage bufferedImage = ImageIO.read(file);QRCodeDecoder codeDecoder = new QRCodeDecoder();//QRCode译码器String result = new String(codeDecoder.decode(new QRCodeImage(bufferedImage)), "gb2312");System.out.println(result);}}







0 0
原创粉丝点击