QRCode二维码生成方案及其在带LOGO型二维码中的应用(2)

简介: 原文:QRCode二维码生成方案及其在带LOGO型二维码中的应用(2) 续前:QRCode二维码生成方案及其在带LOGO型二维码中的应用(1)  http://blog.csdn.net/johnsuna/article/details/8525038首先我们来看看二维码的符号字符区域,然后再看看其编码流程。
原文: QRCode二维码生成方案及其在带LOGO型二维码中的应用(2)

续前:QRCode二维码生成方案及其在带LOGO型二维码中的应用(1)  http://blog.csdn.net/johnsuna/article/details/8525038

首先我们来看看二维码的符号字符区域,然后再看看其编码流程。

QRCode的结构:


图9  QRCode的结构

下图为二维码的符号字符区域示意:


图10   版本2-M符号的字符区域分布示意


图11   版本7-H符号的符号字符布置

从上面可知,字符区域分布中均有纠错块与数据块。

再看编码流程:

第1步 数据分析
  分析所输入的数据流,确定要进行编码的字符的类型。QR码支持扩充解释,可以对与缺省的字符集不同的数据进行编码。QR码包括几种不同的模式(ECI,数字,字母数字,8位字节,日本汉字,中国汉字,混合,结构链接,FNC1模式等),以便高效的地将不同的字符子集转换为符号字符。必要时可以进行模式之间的转换更高效地将数据转换,以便为二进制串。
选择所需的错误检测和纠正等级。如果用户没有指定所采用的符号版本,则选择与数据相适应的最小的版本。
第2步 数据编码
  对于采用的模式按照已定义的规则,将数据字符转换为位流。在当需要进行模式转换时,在新的模式段开始前加入模式指示符进行模式转换。在数据序列后面加入终止符。将产生的位流分为每8位一个码字。必要时加入填充字符以填满按照版本要求的数据码字数。
第3步 纠错编码
  按需要将码字序列分块,以便按块生成相应的错误纠正码字,并将其加入到相应的数据码字序列的后面。
第4步 构造最终信息
  按相关的规范步骤,在每一块中置入数据和纠错码字,必要时加剩余位。
第5步 在矩阵中布置模块
  将寻象图形、分隔符、定位图形、校正图形与码字模块一起放入矩阵。
第6步 掩模
  依次将掩模图形用于符号的编码区域。评价结果,并选择其中使深色浅色模块比率最优且使不希望出现的图形最少化的结果。
第7步 格式和版本信息
    生成格式和版本信息(如果用到时),形成符号。


从上面的字符布置图和流程可以观察到,如果想将LOGO放到二维码的中间或相应位置(建议偏向图11所示的左边位置一些,属于纠错块的区域),则可以采用以下几种方法:

1、使用无用或无关紧要的字符扩大数据块区域;

2、在相关位置避开关键数据,如无法避开,则至少保证使用其他方式可以纠正该问题引致的错误。


(写作中,未完)

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
1月前
|
自然语言处理
二维码美化指南:从Logo到文字,轻松制作专属二维码
草料二维码提供基础的二维码美化设置,包含Logo、颜色、码点码眼、容错、添加文字等设置。
|
1月前
|
小程序 JavaScript
微信小程序长按识别图片二维码功能
微信小程序长按识别图片二维码功能
105 0
|
10月前
|
存储 搜索推荐 算法
分享一个在线二维码生成器(基于qrcode.js开发)
一种二维码扫描与生成的工具, 它可生成个性化二维码, 支持文本、网址、图片、短信、电话等格式及主题,提供融合码功能
155 1
|
开发工具 数据安全/隐私保护
KgCaptcha 图形验证码水印Logo修改
还在苦恼怎么让你的验证码显示Logo吗,KgCaptcha 这个验证码产品,你可以随心所欲地设置你想要的Logo图片、链接地址、位置等。下面我就给大家介绍一下如何设置吧?
KgCaptcha 图形验证码水印Logo修改
|
编解码 文字识别 JavaScript
VUE element-ui之百度OCR证件识别,组件内证件照转码解码识别身份证照文字
VUE element-ui之百度OCR证件识别,组件内证件照转码解码识别身份证照文字
2031 0
VUE element-ui之百度OCR证件识别,组件内证件照转码解码识别身份证照文字
|
开发工具 计算机视觉
配置zbar识别二维码(转载)
原文地址:http://blog.csdn.net/dcrmg/article/details/52108258  二维码解码器Zbar+VS2012开发环境配置 Zbar条码解码器是一个开源的二维码(包括条形码)解码器,可以识别来至于视频流,图像文件、手持扫码器和视频设备(如摄像头)等二维码识别,支持EAN-13/UPC-A, UPC-E, EAN-8, Code 128, Code 39, QR Code(二维码)等常用编码方式的条形码/二维码。
2460 0
|
Java
带圆角LOGO的QrCode二维码实时生成
最近工作中经常要用到QrCode二维码,研究了一下,写了个带圆角LOGO的JAVA实现,QrCode之所以能在中间放个LOGO图标,是因为编码时的信息冗余。
2020 0
|
JSON 前端开发 Java
如何在线生成二维码?
说到二维码,我相信大家每天都会用到,尤其是在手机支付的场景,使用频率极广。 实际上二维码在1994年的时候就已经诞生了,由 Denso 公司研制而成,只是那个时候使用范围还不是很大。 早期的二维码由于很容易通过技术方式进行伪造,因此很少有企业愿意去使用他,随着技术的不断迭代和更新,二维码的安全性更进一步得到了提升,从而使得更多的企业愿意使用这项新技术,例如当下的移动支付,还有微信互推,扫码出行等等,极大的方便了网民们的购物、社交和出行! 在实际的业务开发过程中,二维码的使用场景开发也会经常出现在我们开发人员的面前,我们应该如何去处理呢,今天小编就带着大家一起深入的了解一下它的技术实现过程
如何在线生成二维码?
|
安全 JavaScript 前端开发
JavaScript 技术篇-如何实现在线logo网站制作后的logo去水印,免费制作无水印logo方法
JavaScript 技术篇-如何实现在线logo网站制作后的logo去水印,免费制作无水印logo方法
490 0
JavaScript 技术篇-如何实现在线logo网站制作后的logo去水印,免费制作无水印logo方法
|
小程序 Python
python 小程序二维码的获取,以及改变小程序二维码中间logo为用户头像
python 小程序二维码的获取,以及改变小程序二维码中间logo为用户头像
258 0
python 小程序二维码的获取,以及改变小程序二维码中间logo为用户头像