java实现二维码-使用QR Code方式生成和解析二维码
2016-11-09 13:41
831 查看
1、下载压缩包:
生成:http://www.swetake.com/qrcode/index-e.jtml
读取:https://osdn.jp/projects/qrcode/
2、创建项目,将两个解压后的文件夹里的lib下的jar包都放在项目中。
3、创建类。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//生成二维码
public class CreateQRCode {
public static void main(String[] args) {
Qrcode x=new Qrcode();
x.setQrcodeErrorCorrect('M');//纠错等级
x.setQrcodeEncodeMode('B');//N代表数字,A表示a-Z,B表示其他字符(中文等)
x.setQrcodeVersion(7);//版本号
String qrData = "http://www.swetake.com/qrcode";
int width = 67+12*(7-1);
int height = 67+12*(7-1);
BufferedImage bufferedImage = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);//创建缓冲区的图片
Graphics2D gs = bufferedImage.createGraphics();
gs.setBackground(Color.white);
gs.setColor(Color.black);
gs.clearRect(0, 0, width, height);
int pixoff = 2;//偏移量
//填充画板 内容
byte[] d;
try {
d = qrData.getBytes("utf-8");
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:/code/qrcode.png"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//创建实现接口的类,方便在生成二维码的类中调用
public class QR
4000
CodeImage implements jp.sourceforge.qrcode.data.QRCodeImage {
BufferedImage bufferedImage;
public QRCodeImage(BufferedImage bufferedImage) {
this.bufferedImage = bufferedImage;
}
@Override
public int getHeight() {
return bufferedImage.getHeight();
}
@Override
public int getPixel(int arg0, int arg1) {
return bufferedImage.getRGB(arg0, arg1);
}
@Override
public int getWidth() {
return bufferedImage.getWidth();
}
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//读取二维码
public class ReadQRCode {
public static void main(String[] args) throws Exception {
File file = new File("D:/code/qrcode.png");
BufferedImage bufferedImage = ImageIO.read(file);
QRCodeDecoder codeDecoder = new QRCodeDecoder();
String result = new String(codeDecoder.decode(new QRCodeImage(bufferedImage)),"gb2312");
System.out.println(result);
}
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
生成:http://www.swetake.com/qrcode/index-e.jtml
读取:https://osdn.jp/projects/qrcode/
2、创建项目,将两个解压后的文件夹里的lib下的jar包都放在项目中。
3、创建类。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//生成二维码
public class CreateQRCode {
public static void main(String[] args) {
Qrcode x=new Qrcode();
x.setQrcodeErrorCorrect('M');//纠错等级
x.setQrcodeEncodeMode('B');//N代表数字,A表示a-Z,B表示其他字符(中文等)
x.setQrcodeVersion(7);//版本号
String qrData = "http://www.swetake.com/qrcode";
int width = 67+12*(7-1);
int height = 67+12*(7-1);
BufferedImage bufferedImage = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);//创建缓冲区的图片
Graphics2D gs = bufferedImage.createGraphics();
gs.setBackground(Color.white);
gs.setColor(Color.black);
gs.clearRect(0, 0, width, height);
int pixoff = 2;//偏移量
//填充画板 内容
byte[] d;
try {
d = qrData.getBytes("utf-8");
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:/code/qrcode.png"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//创建实现接口的类,方便在生成二维码的类中调用
public class QR
4000
CodeImage implements jp.sourceforge.qrcode.data.QRCodeImage {
BufferedImage bufferedImage;
public QRCodeImage(BufferedImage bufferedImage) {
this.bufferedImage = bufferedImage;
}
@Override
public int getHeight() {
return bufferedImage.getHeight();
}
@Override
public int getPixel(int arg0, int arg1) {
return bufferedImage.getRGB(arg0, arg1);
}
@Override
public int getWidth() {
return bufferedImage.getWidth();
}
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//读取二维码
public class ReadQRCode {
public static void main(String[] args) throws Exception {
File file = new File("D:/code/qrcode.png");
BufferedImage bufferedImage = ImageIO.read(file);
QRCodeDecoder codeDecoder = new QRCodeDecoder();
String result = new String(codeDecoder.decode(new QRCodeImage(bufferedImage)),"gb2312");
System.out.println(result);
}
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
相关文章推荐
- Java通过zxing方式实现二维码的生成与解析
- java实现二维码-使用jquery-qrcode方式生成二维码
- java二维码生成与解析代码实现
- java二维码生成与解析代码实现
- java二维码生成与解析代码实现
- java二维码生成与解析代码实现 <转载自http://blog.csdn.net/about58238/article/details/7494704>
- java二维码生成与解析代码实现
- java零碎要点---用java实现生成二维码,与解析代码实现
- java二维码生成与解析代码实现 .
- java二维码生成与解析代码实现
- java 二维码生成与解析代码实现,程序源码下载可用
- java实现二维码的生成和解析
- java二维码生成与解析代码实现
- java二维码生成与解析代码实现
- java生成二维码使用QRCode和ZXing两种方式
- java二维码生成与解析代码实现
- java二维码生成与解析代码实现
- 使用 Java 生成二维码图像,解析二维码图像.
- java二维码生成与解析代码实现
- java二维码生成与解析代码实现