# Java生成二维码 **Repository Path**: Yenn-2017_admin/barcode_demo1 ## Basic Information - **Project Name**: Java生成二维码 - **Description**: 练习 Java生成二维码 https://www.imooc.com/learn/531 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-06-18 - **Last Updated**: 2024-06-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Java生成二维码 #### 介绍 练习 Java生成二维码 https://www.imooc.com/learn/531 简介:二维码在现实生活中无处不在,应用越来越广泛。那么小伙伴们想不想知道如何生成二维码,以及如何去解析二维码呢?本门课程中为小伙伴们介绍了Java中三种二维码的实现方式,分为使用ZXing、QRCode以及jquery-qrcode。 第1章 二维码的概念 本章讲述了二维码的基本概念,让我们一起认识二维码是什么。 #### 1-1 二维码概述 (03:15) + 目录 + 01 二维码概念 + 02 二维码发展历史 + 03 二维码分类 + 04 二维码优缺点 + 05 QR Code + 06 实例讲解 1. 二维码概念 二维条码/二维码( 2-dimensional bar code )是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的图形。 第2章 二维码发展历史 本章介绍了二维码从初期的一维码到后期的二维码的发展过程。 #### 2-1 二维码发展历史 (04:07) 1. 1920 - 20世纪20年代约翰科芒德实现邮政单据自动分检方法。 2. 1950 - 1949年美国乔伍德兰德、伯尼西尔沃发明了第一个条形码专利。 3. 1959 - 1959年吉拉德费伊塞尔申请了用条形码表示数字的专利。 4. 1960 - 60年代西尔沃尼亚发明一套条形码系统并在北美铁路系统成功应用。 5. 1970 - 70年代,UPC码( Universal Product Code )在北美超市得到广泛应用。 6. 1988 - 1988年中国成立了中国物品编码中心,80年代末国外研制出二维码。 7. 2000 - 1997、2000年确定了国家标准。 1. 一维条码是由一组粗细不同、黑白(或彩色)相间的条、空及其相应的字符(数字字母)组成的标记,即传统条码。 2. 二维条码是用某种特定的几何图形按一定规律在平面(二维方向)上分布的条、空相间的图形来记录数据符号信息。 第3章 二维码分类 本章讲解了二维码的分类及分类之间的区别,包括线性堆叠式二维码、矩阵式二维码、邮政码。 #### 3-1 二维码分类 (02:44) + 二维条码也有许多不同的码制,就码制的编码原理而言,通常分为三种类型: 1. 线性堆叠式二维码 2. 矩阵式二维码 3. 邮政码 1. 线性堆叠式二维码 + 编码原理: + 建立在一维条码基础之上,按需要堆积成两行或多行。 + PDF417 Ultracode Code 49 Code 16K + ![线性堆叠式二维码](./images/线性堆叠式二维码.png) 2. 矩阵式二维码 + 最为常用的类型 + 在一个矩形空间通过黑、白像素在矩阵中的不同分布进行编码。 + 在矩阵相应元素位置上,用点(方点、圆点或其他形状)的出现表示二进制"1",点的不出现表示二进制的"0" + Data Matrix,Maxi Code,Aztec Code,QR Code,Vericode + ![矩阵式二维码](./images/矩阵式二维码.png) 3. 邮政码 + 邮政码通过不同长度的条进行编码,主要用于邮件编码,如: POSTNET、BPO 4-STATE。 #### 3-2 条形码分类 1. 条形码的种类 - Codabar: [库德巴码]库德巴码也可表示数字和字母信息,主要用于医疗卫生。图书情报。物资等领域的自动识别。 - code11 (code 11) - code39 (code 39):主要用于工业、图书及票证的自动化管理.目前使用极为广泛。 - code93 (code 93) : [Code93码] Code 93码与39码具有相同的字符集,但它的密度要比39码高.所以在面积不足的情况下,可以用93码代替39码。 - code128 (code 128):[Code128码] 128 可表示ASCIO到ASCI127共计128个ASCII字符。 - ean8 (ean 8) - ean13 (ean13)```商品条形码``` - std25 (standard2 of 5 - industrial2 of 5) - int25 (interleaved2 of5):ITF25码一在物流管理中应用较多 - msi - datamatrix (ASCII + extended) - 编码格式 | 说明 | 效果展示 | 说明 ---- | ---- | ---- | ---- Codabar | 数字+字母 | | 库德巴码也可表示数字和字母信息,主要用于医疗卫生。图书情报。物资等领域的自动识别。 EAN-13 | 十二位数字 + 一位校验码 | ![](./images/EAN-13.jpg) | 商品条码 EAN-8 | 七位数字 + 一位校验码 | ![](./images/EAN-8.jpg) | 商品条码 CODE-39 | 字符和数字,不定长 | ![](./images/CODE-39.jpg) | 主要用于工业、图书及票证的自动化管理.目前使用极为广泛。 code93 | 字符和数字,不定长 | ![CODE-93](./images/CODE-93.jpg) | Code 93码与39码具有相同的字符集,但它的密度要比39码高.所以在面积不足的情况下,可以用93码代替39码。 CODE-128 | ASCII0-127,不定长 |![](./images/CODE-128.jpg) | UPC-A | 十一位数字 + 一位校验码 | ![](./images/UPC-A.jpg)| UPC-E | 七位数字 + 一位校验码 | ![](./images/UPC-E.jpg)| QR Code | 二维码 | ![](./images/qrcode.jpg)| PDF-417 | PDF417二维条码 | ![](./images/pdf417.jpg)| 2. 说明: + EAN、UPC码————商品条码 .用于在世界范围内唯一标识一种商品,我们在超市中最常见的就是EAN和UPC条码。 + EAN:前3位代表国家,690-699代表中国,需要申请。 + 其中, EAN码是当今世界上厂为使用的高品条码.已成为电子数据交换(EDI)的基础:UPC码主要为英国和加拿大使用; 3. 案例:https://github.com/jbdemonte/barcode 第4章 二维码优缺点 本章讲解了二维码的优缺点,二维码存在很多优点,当然也有缺点。 #### 4-1 二维码优缺点 (03:42) 1. 优点 + 01 高密度编码,信息容量大 + 02 编码范围广 + 03 容错能力强 + 04 译码可靠性高 + 05 可引入加密措施 + 06 成本低,易制作,持久耐用 2. 缺点 + 二维码技术成为手机病毒、 钓鱼网站传播的新渠道 + 信息泄露 第5章 QR Code 本章讲解了QRCode的概念以及 国家对QRCode的标准,还描述了生成二维码方法的种类。 #### 5-1 QR Code (05:07) 1. 目前流行的三大国际标准: PDF417 :不支持中文; DM :专利未公开,需支付专利费用; QRcode:专利公开,支持中文 + ![qrcode结构](./images/qrcode结构.png) 2. QR code比其他二维码相比,具有识读速度快、数据密度大、占用空间小的优势。 3. QR Code是由日本Denso公司于1994年研制的一种矩阵二维码符号码全称是Quick Response Code. + 300 个字符 + 同样的数据只有条码的十分之一大小 + 纠错能力 L级:约可纠错7%的数据码字 M级:约可纠错15%的数据码字 Q级:约可纠错25%的数据码字 H级:约可纠错30%的数据码字 4. GB / T 18284-2000 , QR code国标,二维码国家标.PDF 5. JSP生成二维码方法 + 01 借助第三方jar,如zxing和qrcode.jar + 02 Javascript,如jquery.qrcode.js 第6章 实例讲解 本章通过实例讲解了通过不同的方法来生成二维码和解析二维码,包括ZXing、QRCode、jquery-qrcode三种方式。最后还讲解了关于其他形式的二维码和二维码的扩展。 #### 6-1 实例讲解前准备 (04:16) 1. ZXing + https://github.com/zxing #### 6-2 使用zxing生成二维码 (07:59) #### 6-3 使用zxing进行二维码解析 (05:20) #### 6-4 使用QR Code方式生成和解析二维码 (16:14) + QRCode 1. 生成: http://www.swetake.com/qrcode/index.html 2. 读取: https://osdn.jp/projects/qrcode/ #### 6-5 jquery-qrcode生成二维码 (07:28) + jquery-qrcode 1. https://github.com/jeromeetienne/jquery-qrcode #### 6-6 其他形式的二维码 (01:51) #### 6-7 二维码扩展 (05:53) 1. 为什么我们的二维码扫描出来是文本而不是链接? 2. 如何实现维码扫描安装手机软件 ? + 以慕课网为例 + 苹果: https://itunes.apple.com/cn/app/mu-ke-wang/id722179140?mt=8 + 安卓: http://www.imooc.com/mobile/appdown + 答案:可以,但是微信不支持,因为只有腾讯自己域名下的apk才可以通过扫- -扫下载。 3. 如何实现维码扫描名片 ? + VCard是标准通信薄基本格式。 - https://zh.wikipedia.org/wiki/VCard - https://en.wikipedia.org/wiki/VCard + VCard规范 ``` BEGIN:VCARD VERSION:2.1 N:姓:名 FN:姓名 NICKNAME:nickName ORG:公司;部门 TITLE:职位 TEL;WORK;VOICE:电话1 TEL;WORK;VOICE:电话2 TEL;HOME;VOICE:电话1 TEL;HOME;VOICE:电话2 TEL;CELL;VOICE:13590342862 TEL;PAGER;VOICE:0755 TEL;WORK;FAX:传真 TEL;HOME;FAX:传真 ADR;WORK:;;单位地址;深圳:广东;433000;国家 ADR;HOME;POSTAL;PARCEL::街道地址;深圳;广东;433330;中国 URL:网址 URL:单位主页 EMAIL;PREF;INTERNET:邮箱地址 X-QQ:11111111 END:VCARD ``` 第7章 课程总结 对本门课程所学内容进行总结。 #### 7-1 总结 (02:30) 1. 二维码概念 2. 二维码发展历史 3. 二维码分类 4. 二维码优缺点 5. QR Code 6. 实例讲解.