博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java实现二维码的生成.
阅读量:5324 次
发布时间:2019-06-14

本文共 2895 字,大约阅读时间需要 9 分钟。

目录 1.二维码概念  2.二维码发展历史  3.二维码分类  4.二维码优缺点  5.QR Code

 

 1.二维码又称  二维条码 (2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维码上)分布的黑白相间的图形记录数据符号信息的图形。

2二维码发展历史

 1.20世纪20年代 约翰 科芒德实现邮政单据自动分拣方法,

 2.1949年美国乔 伍德兰德 伯尼西尔沃发明第一个条码专利,

 3.1959年 吉拉德 费伊塞尔申请了用条形码表示数字的专利,

 4.60年代 西尔沃尼亚发明一套条形码系统并在北美铁路系统成功应用,

 5.70年代,UPC码(Universal Product Code)在北美超市得到广泛应用,

 6.1988年中国成立了中国物品编码中心,80年代未国外研制出二维码,

 7.1997年到2000年确定了国家标准

3.二维码分类

 

 

 

1. 一维条码是由一组粗细不同,黑白(或彩色)相间的条,空及其相符的字符(数字字母)组成的标记,即传统条码。

 

 

2. 二维条码是用某种特定的几何图形按一定规律在平面(二维码上上分布的条,空间的图形来记录数据符号信息

 

二维条码也有许多不同的码制,就码制的编码原理而言,通常分为三种

类型:
1.线性堆叠式二维码

 编码原理: 建立在一维条码基础上,按需要堆积成两行或多行。

 

2.矩阵式二维码

   在一个矩形空间通过黑,白像素在矩阵中的不同分布进行编码的出现表示二进制“1”点的不出现表示二进制的“0”

 

 

3.邮政码

   邮政码通过不同长度的条进行编码,主要用于邮件编码,

POSTNET、
BPO 4-STATE。

 

4. 二维码优缺点

 

 

 

 

 

5. QR Code 

目前流行的三大国标准:

         PDE417:不支持中文

         DM:专利未公开,需要支付专利费用

         QR Code:专利公开,支持中文

         QR Code比其他二维码相比,具有识读速度快,数据度大,占用空间小的优势。

 

 QR Code 是由日本Denso公司于1994年研制的一种矩阵二维码符号码,全称是Quick Response Code。

     

 

纠错能力

L级: 约可纠错7%的数据码字M级: 约可纠错15%的数据码字Q级: 约可纠错25%的数据码字H级: 约可纠错30%的数据码字

 

 

 

 

 

6. 二维码制作:Java语言开发

首先引入zxing的jar包

 

 

jar包:链接:https://pan.baidu.com/s/1GzjQOqWhZYPsL0uzf569dw 密码:kril

详细操作:

 

package cn.code;import java.io.File;import java.nio.file.Path;import java.util.HashMap;import com.google.zxing.BarcodeFormat;import com.google.zxing.EncodeHintType;import com.google.zxing.MultiFormatWriter;import com.google.zxing.client.j2se.MatrixToImageWriter;import com.google.zxing.common.BitMatrix;import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;public class Zxing {    public static void main(String[] args) {        Zxing zxing = new Zxing();        // 传参:二维码内容和生成路径        if (zxing.orCode("https://www.cnblogs.com/lsy131479/", "F:\\1.jpg")) {            System.out.println("ok,成功");        } else {            System.out.println("no,失败");        }    }    private boolean orCode(String content, String path) {        /*         * 图片的宽度和高度         */        int width = 300;        int height = 300;        // 图片的格式        String format = "png";        // 二维码内容        // String content = "hello,word";        // 定义二维码的参数        HashMap hints = new HashMap();        // 定义字符集编码格式        hints.put(EncodeHintType.CHARACTER_SET, "utf-8");        // 纠错的等级 L > M > Q > H 纠错的能力越高可存储的越少,一般使用M        hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);        // 设置图片边距        hints.put(EncodeHintType.MARGIN, 2);        try {            // 最终生成 参数列表 (1.内容 2.格式 3.宽度 4.高度 5.二维码参数)            BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hints);            // 写入到本地            Path file = new File(path).toPath();            MatrixToImageWriter.writeToPath(bitMatrix, format, file);            return true;        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();            return false;        }    }}

其他方式(不再赘述):

    1.or code 生成及解析

    2.jQuery-qrcode 生成及解析

转载于:https://www.cnblogs.com/chuanyueinlife/p/9039068.html

你可能感兴趣的文章
错误调试记录1
查看>>
队列实例程序(C语言)
查看>>
一、内存
查看>>
[转]基础知识整理
查看>>
团队作业4——第一次项目冲刺(Alpha版本)5th day
查看>>
Luogu 3810 三维偏序
查看>>
Python中操作SQLAlchemy
查看>>
获取JUnit的执行结果
查看>>
Ubuntu安装MediaInfo
查看>>
redis总结
查看>>
Myeclipse的快捷键大全
查看>>
oracle 查询表字段及相关信息
查看>>
0529学习进度条
查看>>
delphi webserver
查看>>
AFNetworking 2.0上传图片
查看>>
Web的几种上传方式总结
查看>>
保存新浪网首页到本地(使用urllib)
查看>>
html5.1版本
查看>>
Java网络编程基础【转】
查看>>
phpstudy apache无法启动
查看>>