java生成二维码
来源:互联网 发布:javascript复选框全选 编辑:程序博客网 时间:2024/06/05 18:44
1.二维码概念:
二维码/二维条码(2-dimensional bar code)是某种特定几何图形按一定规律在平面分布的黑白相间的图形记录数据符号信息的图形。
2.二维码分类:
1.线性堆叠式二维码:原理--建立在一维码基础之上。
2.矩阵式二维码
3.邮政吗
3.二维码优缺点:
优:信息容量大、编码范围广、容错能力强、可靠性高、可加密、成本低、易制作、耐用。
缺:容易引发病毒。信息泄漏
4.QR code:目前流行之一。专利公开、支持中文
5.生成方法:
1.借助第三方jar
2.javascript.jquer.qrcode.js
6.使用zxing.jar生成二维码
zxing3.2.1.jar
public class CrateQRCode {public static void main(String[] args) {int width=300;//图片宽度int height=300;//图片高度String format="png";//图片格式String contents="http://write.blog.csdn.net";//定义内容。//定义二维码参数HashMap hints=new HashMap();hints.put(EncodeHintType.CHARACTER_SET, "utf-8");//字符集hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);//错误等级hints.put(EncodeHintType.MARGIN, 2);//边距//生成二维码 try {BitMatrix bitMatrix=new MultiFormatWriter().encode(contents, BarcodeFormat.QR_CODE, width, height,hints);Path file=new File("E:/img.png").toPath();MatrixToImageWriter.writeToPath(bitMatrix, format, file);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}解析二维码
public class ReadQRCode {
public static void main(String[] args)throws Exception {
MultiFormatReader formatReader=new MultiFormatReader();
File file=new File("E:/img.png");
BufferedImage image=ImageIO.read(file);//读取图片
BinaryBitmap binaryBitmap=new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(image)));
HashMap hints=new HashMap();
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");//字符集
Result result=formatReader.decode(image, hints);
System.out.println(result.toString());
}
}
7.使用QR CODE生成二维码
生成:
package cn.lanz.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 CreateQRCode {/** * * @throws IOException * @描述: @param args */public static void main(String[] args) throws IOException {Qrcode x=new Qrcode();x.setQrcodeErrorCorrect('M');//纠错等级x.setQrcodeEncodeMode('B');//N代表数字,A代表a-z,B代表其他x.setQrcodeVersion(7);//版本号1-40int width=67+12*(7-1);int height=67+12*(7-1);String qrData="www.imcooc.com";//内容BufferedImage image=new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);Graphics2D gs=image.createGraphics();//绘图工具gs.setBackground(Color.white);//背景色gs.setColor(Color.BLACK);//画板色gs.clearRect(0, 0, width, height);int pixoff=2;//偏移量byte[] d=qrData.getBytes("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[i][j]){gs.fillRect(j*3+pixoff, i*3+pixoff, 3, 3);}}}}gs.dispose();image.flush();ImageIO.write(image, "png", new File("e:/qrcode.png"));}}
解析
package cn.lanz.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 jp.sourceforge.qrcode.QRCodeDecoder;
import com.swetake.util.Qrcode;
public class ReadQRCode {
/*
* @throws IOException
* @描述: @param args
*/
public static void main(String[] args) throws IOException {
File file=new File("e:/qrcode.png");
BufferedImage bufferedImage=ImageIO.read(file);
QRCodeDecoder codeDecoder=new QRCodeDecoder();
String result=new String(codeDecoder.decode(new MYQRCodeImage(bufferedImage)),"gb2312");
System.out.println(result);
}
}
==============
package cn.lanz.qrcode;
import java.awt.image.BufferedImage;
import jp.sourceforge.qrcode.data.QRCodeImage;
public class MYQRCodeImage implements QRCodeImage {
BufferedImage bufferedImage;
public MYQRCodeImage(BufferedImage bufferedImage){
this.bufferedImage=bufferedImage;
}
@Override
public int getHeight() {
return bufferedImage.getHeight();
}
@Override
public int getPixel(int x, int y) {
return bufferedImage.getRGB(x, y);
}
@Override
public int getWidth() {
return bufferedImage.getWidth();
}
}
8.Jquer-qrcode.js生成二维码,web项目
9.其他形式的二维码
- java二维码 生成二维码
- Java生成二维码解析二维码
- java 生成二维码,解析二维码
- Java生成PDF417二维码
- Java 生成二维码
- java生成二维码
- java生成二维码
- java生成二维码
- JAVA 生成二维码 代码
- Java 生成二维码
- java 二维码生成
- java二维码生成
- JAVA生成解析二维码
- Java 生成二维码
- java 生成二维码
- java生成二维码
- Java生成二维码
- java生成二维码图片
- 李雅普诺夫稳定性理论
- MUI增加BeeCloud支付集成示例
- 互联网小现象:BAT疯狂投资,网易为何单打独斗?
- BST(C语言)
- AndroidStudio配置百度地图API
- java生成二维码
- jdk安装与环境变量配置
- java.util.AbstractSet学习笔记
- ios Protocol buffer安装
- Hibernate逆向工程(表--->对象)
- 3X3拼图的可解性
- LeetCode No.168 Excel Sheet Column Title
- 通过remoteViews自定义Notification通知栏的布局
- Spark1.6的RPC