基于java生成二维码
二维码
- 二维码的概念
二维条码/二维码是用某种特定的集合图形按照一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的图形 二维码的起源
二维码技术诞生于20世纪40年代,但得到实际应用和迅速发展还是在近20年间。在通用商品条码的应用系统中,最先采用的是一维码,国外对二维码技术的研究始于20世纪80年代,在二维码符号表示技术研究方面,已研制出多种码制,常见的有PDF417,QR Code,Code 49,Code 16K,Code One等。这些二维码的密度都比传统的一维码有了较大的提高。专家介绍说,在二维码标准化研究方面,国际自动识别制造商协会(AIM)、美国标准化协会(ANSI)已完成了PDF417,QR Code,Code 49,Code 16K,Code One等码制的符号标准。在二维码设备开发研制、生产方面,美国、日本等国的设备制造商生产的识读设备、符号生成设备,已广泛应用于各类二维码应用系统。
3.二维码的分类
1.线性堆叠式二维码
2.矩阵式二维码
3.邮政码
4.二维码的优缺点
优点:
1.高密度编码,信息容量大
2.编码范围广
3.容错能力强
4.译码可靠性高
5.可引入加密措施
6.低成本,易制作,持久耐用
缺点:
1.二维码技术成为手机病毒、钓鱼网站传播的渠道
2.信息泄露
5.二维码特点

6.三种实现制作二维码
方法一:借助第三方jar:zxing
- 先到官网下载zxing-zxing压缩文件,并解压(网址:htto://github.com/zxing/)
- 获得zxing.jar包。这里可以先在myeclipes中新建一个java项目,将zxing-zxing-3.3.0\core\src\main\java\com的com文件夹
与zxing-zxing-3.3.0\javase\src\main\java\com的com文件夹拷进src项目下,点击Export导出jar包,命名为zxing.jar包
3.生成二维码
新建一个java项目,并新建一个lib文件夹,将zxing.jar包copy进lib文件夹
/**
* 生成二维码
* @author 佳先森
*
*/
public class CreateQRCode {
public static void main(String[] args) {
int width=300;
int height=300;
String format="png";
String content="www.baidu.com";
//定义二维码的参数
HashMap hints=new HashMap();
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
//设置错误等级:L为最小,M为中,Q偏大,H最大,等级越大,所存储内容越小
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
//设置四周边距
hints.put(EncodeHintType.MARGIN, 2);
//生成二维码
try {
BitMatrix bitMatrix=new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height,hints);
Path file=new File("D:/zwing/img.png").toPath();
MatrixToImageWriter.writeToPath(bitMatrix, format, file);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
4.解析二维码
/**
* 解析二维码
* @author 佳先森
*
*/
public class ReadQRCode {
public static void main(String[] args) {
MultiFormatReader formatReader=new MultiFormatReader();
File file=new File("D:/zwing/img.png");
BufferedImage image;
try {
image = ImageIO.read(file);
//定义二维码的参数
HashMap hints=new HashMap();
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
BinaryBitmap binaryBitmap=new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(image)));
Result result=formatReader.decode(binaryBitmap);
System.out.println("解析结果如下:"+result.toString());
System.out.println("二维码格式类型:"+result.getBarcodeFormat());
System.out.println("二维码文本内容:"+result.getText());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
5.在指定的文件夹下可以看到所生成的二维码
方法二:借助qecode.jar包(这里不演示)
方法三:JavaScript
- 先到官网下载jquery-qrcode压缩文件(网址:https://github.com/jeromeetienne/jquery-qrcode)
- 新建一个java-web项目,并在WebRoot下新建一个js文件夹,将解压后的文件夹的jquery.qrcode.min.js放进js文件,再另外下载好的jquery 放进js文件夹
- 制作一个显示二维码的jsp界面
1.导入两个js文件
<script type="text/javascript" src="<%=request.getContextPath()%>/js/jquery-1.8.2.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/js/jquery.qrcode.min.js"></script>
2.编写生成二维码代码
<body>
<h3>生成的二维码如下</h3>
<div id="qrcode"></div>
<script type="text/javascript">
jQuery('#qrcode').qrcode("http://www.baidu.com");
</script>
</body>
4.通过浏览器输入域名访问查看二维码
7.扩展:
1.注意访问的内容写法
若写成:www.baidu.com 只能视为文本
若写成: http://www.baidu.com 直接通过链接进入官网
2.实现二维码实现二维码扫描名片,得遵守VCard标准
基于java生成二维码的更多相关文章
- 利用JAVA生成二维码
本文章整理于慕课网的学习视频<JAVA生成二维码>,如果想看视频内容请移步慕课网. 维基百科上对于二维码的解释. 二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图 ...
- java 生成二维码、可带LOGO、可去白边
1.准备工作 所需jar包: JDK 1.6: commons-codec-1.11.jar core-2.2.jar javase-2.2.jar JDK 1.7: commons-codec- ...
- java 生成二维码后叠加LOGO并转换成base64
1.代码 见文末推荐 2.测试 测试1:生成base64码 public static void main(String[] args) throws Exception { String dat ...
- java生成二维码打印到浏览器
java生成二维码打印到浏览器 解决方法: pom.xml的依赖两个jar包: <!-- https://mvnrepository.com/artifact/com.google.zxin ...
- 二维码相关---java生成二维码名片,而且自己主动保存到手机通讯录中...
版权声明:本文为博主原创文章,未经博主credreamer 同意不得转载 违者追究法律责任. https://blog.csdn.net/lidew521/article/details/244418 ...
- java生成二维码(需导入第三方ZXing.jar包)
//这个类是用来解析,通过图片解析该图片的网页链接是什么 package util; import java.awt.Graphics2D;import java.awt.geom.AffineTra ...
- JAVA生成二维码图片代码
首先需要导入 QRCode.jar 包 下载地址看这里 http://pan.baidu.com/s/1o6qRFqM import java.awt.Color;import java.awt. ...
- java生成二维码图片
1.POM文件引入 <dependency> <groupId>com.google.zxing</groupId> <artifactId>core& ...
- java生成二维码的三个工具
1. 使用SwetakeQRCode在Java项目中生成二维码 http://swetake.com/qr/ 下载地址 或着http://sourceforge.jp/projects/qrcode ...
随机推荐
- C++类静态成员与类静态成员函数
当将类的某个数据成员声明为static时,该静态数据成员只能被定义一次,而且要被同类的所有对象共享.各个对象都拥有类中每一个普通数据成员的副本,但静态数据成员只有一个实例存在,与定义了多少类对象 ...
- .NET Core2.0 MVC中使用EF访问数据
使用环境:Win7+VS2017 一.新建一个.NET Core2.0的MVC项目 二.使用Nuget添加EF的依赖 输入命令:Install-Package Microsoft.EntityFram ...
- 页面性能优化和高频dom操作
一.DOM操作影响页面性能的核心问题 通过js操作DOM的代价很高,影响页面性能的主要问题有如下几点: 访问和修改DOM元素 修改DOM元素的样式,导致重绘或重排 通过对DOM元素的事件处理,完成与用 ...
- 博客已转移至 http://blog.yemou.net/
博客已转移至 http://blog.yemou.net/ , 该网站是一家更加专业的网站,欢迎大家过去交流
- 大型网站的 HTTPS 实践(一)—— HTTPS 协议和原理
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt387 1 前言 百度已经于近日上线了全站 HTTPS 的安全搜索,默认会将 ...
- angularjs-1.3代码学习-$parse
这次我们来看一下angular的Sandboxing Angular Expressions.关于内置方法的,核心有两块:Lexer和Parser.其中大家对$parse可能更了解一点.好了不多废话, ...
- poj 3592 缩点+SPFA
题意:给出一个矩阵,其中#代表墙,不可走,0-9代表权值,*代表可以选择传送.求从0,0点开始出发能获得最大权值. 思路:因为*的出现会有环的情况,先建图连边,将环进行Tarjan缩点,之后再从0,0 ...
- nrm的安装 、定义和用法
因为npm包管理工具是属于国外的,所以在中国使用它下载东西的时候比较慢.这时我们就想用国内的淘宝镜像.也有别的,所以当你想切换下载源的时候就会用到nrm了. ###首先,nrm是什么呢? 开发的npm ...
- JavaScript 的使用基础总结②DOM
HTML DOM 通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素. 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model). HT ...
- 201521123060 《Java程序设计》第8周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 1.2 选做:收集你认为有用的代码片段 2. 书面作业 本次作业题集集合 List中指定元素的删除(题目4-1 ...