CN109948762A - 用于生成二维码的方法和装置 - Google Patents
用于生成二维码的方法和装置 Download PDFInfo
- Publication number
- CN109948762A CN109948762A CN201711383739.5A CN201711383739A CN109948762A CN 109948762 A CN109948762 A CN 109948762A CN 201711383739 A CN201711383739 A CN 201711383739A CN 109948762 A CN109948762 A CN 109948762A
- Authority
- CN
- China
- Prior art keywords
- code word
- error correction
- data
- correction code
- coding region
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000012937 correction Methods 0.000 claims abstract description 217
- 108091026890 Coding region Proteins 0.000 claims abstract description 52
- 239000000463 material Substances 0.000 claims description 26
- 108700026244 Open Reading Frames Proteins 0.000 claims description 24
- 238000012856 packing Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 230000006854 communication Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 229910002056 binary alloy Inorganic materials 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000005291 magnetic effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
Landscapes
- Error Detection And Correction (AREA)
Abstract
本申请实施例公开了用于生成二维码的方法和装置。该方法的一具体实施方式包括:获取待存储信息;基于预先确定的纠错等级和二维码版本,确定与待存储信息对应的二进制的数据和纠错码字;将二进制的数据和纠错码字转换为N进位制的数据和纠错码字,其中,N为大于2自然数;将N进位制的数据和纠错码字填充到编码区域;使用掩模图形对编码区域进行掩模以生成二维码。该实施方式增大了二维码的信息存储量。
Description
技术领域
本申请实施例涉及计算机技术领域,具体涉及互联网技术领域,尤其涉及用于生成二维码的方法和装置。
背景技术
以快速响应矩阵码(Quick Response Code,又称QR Code)为代表的二维码是近年来流行起来的一种编码方式,由于其能够在两个方向(或称维度)上存储信息,并且可以存储数字、汉字、图片等信息,因此,二维码被广泛应用于越来越多的领域。
现有技术的二维码通常使用与二进制数字相对应的几何图形来表示文字和数值信息,并通过图像输入设备或扫描设备自动识读以实现信息的自动处理。
发明内容
本申请实施例提出了用于生成二维码的方法和装置。
第一方面,本申请实施例提供了一种用于生成二维码的方法,二维码包括编码区域,该方法包括:获取待存储信息;基于预先确定的纠错等级和二维码版本,确定与待存储信息对应的二进制的数据和纠错码字;将二进制的数据和纠错码字转换为N进位制的数据和纠错码字,其中,N为大于2自然数;将N进位制的数据和纠错码字填充到编码区域;使用掩模图形对编码区域进行掩模以生成二维码。
在一些实施例中,基于预先确定的纠错等级和二维码版本确定与待存储信息对应的二进制的数据和纠错码字,包括:将待存储信息转化为二进制的数据码字;根据预先确定的纠错等级生成二进制的纠错码字;将二进制的数据码字和二进制的纠错码字按预先确定的二维码版本的预定规则进行穿插放置,以生成二进制的数据和纠错码字。
在一些实施例中,将N进位制的数据和纠错码字填充到编码区域,包括:对于N进位制的数据和纠错码字中的每个数据码字或纠错码字,确定该数据码字或纠错码字的填充颜色,并将所确定的填充颜色填充到编码区域中针对该数据码字或纠错码字预先设置的位置处,其中,N进位制使用的数字与填充颜色之间的对应关系为预先设定的。
在一些实施例中,将N进位制的数据和纠错码字填充到编码区域,包括:对于N进位制的数据和纠错码字中的每个数据码字或纠错码字,确定该数据码字或纠错码字的填充形状,并将所确定的填充形状填充到编码区域中针对该数据码字或纠错码字预先设置的位置处,其中,N进位制使用的数字与填充形状之间的对应关系为预先设定的。
在一些实施例中,将N进位制的数据和纠错码字填充到编码区域,包括:对于N进位制的数据和纠错码字中的每个数据码字或纠错码字,确定该数据码字或纠错码字的填充材料,并将所确定的填充材料填充到编码区域中针对该数据码字或纠错码字预先设置的位置处,其中,N进位制使用的数字与填充材料之间的对应关系为预先设定的。
在一些实施例中,使用掩模图形对编码区域进行掩模以生成二维码,包括:使用每个预设掩模图形对编码区域的模块图形进行掩模并生成结果图形;按照预设条件对每个结果图形进行评分,并基于分值最低的结果图形生成二维码。
在一些实施例中,N进位制的数据和纠错码字为四进制的数据和纠错码字,使用每个预设掩模图形对编码区域的模块图形进行掩模,包括:对于编码区域的每个模块图形,将该模块图形对应的数据码字或纠错码字对2取余以确定第一数值,将预设掩模图形中与该模块图形的位置相同的模块图形的掩码值确定为第二数值;将第一数值与第二数值进行异或处理以确定第三数值;响应于第三数值不为0,对填充到该模块图形的数据码字或纠错码字进行取反。
第二方面,本申请实施例提供了一种用于生成二维码的装置,二维码包括编码区域,该装置包括:获取单元,配置用于获取待存储信息;确定单元,配置用于基于预先确定的纠错等级和二维码版本,确定与待存储信息对应的二进制的数据和纠错码字;转换单元,配置用于将二进制的数据和纠错码字转换为N进位制的数据和纠错码字,其中,N为大于2自然数;填充单元,配置用于将N进位制的数据和纠错码字填充到编码区域;掩模单元,配置用于使用掩模图形对编码区域进行掩模以生成二维码。
在一些实施例中,确定单元包括:转化模块,配置用于将待存储信息转化为二进制的数据码字;生成模块,配置用于根据预先确定的纠错等级生成二进制的纠错码字;穿插模块,配置用于将二进制的数据码字和二进制的纠错码字按预先确定的二维码版本的预定规则进行穿插放置,以生成二进制的数据和纠错码字。
在一些实施例中,填充单元包括:颜色填充模块,配置用于对于N进位制的数据和纠错码字中的每个数据码字或纠错码字,确定该数据码字或纠错码字的填充颜色,并将所确定的填充颜色填充到编码区域中针对该数据码字或纠错码字预先设置的位置处,其中,N进位制使用的数字与填充颜色之间的对应关系为预先设定的。
在一些实施例中,填充单元包括:形状填充模块,配置用于对于N进位制的数据和纠错码字中的每个数据码字或纠错码字,确定该数据码字或纠错码字的填充形状,并将所确定的填充形状填充到编码区域中针对该数据码字或纠错码字预先设置的位置处,其中,N进位制使用的数字与填充形状之间的对应关系为预先设定的。
在一些实施例中,填充单元包括:材料填充模块,配置用于对于N进位制的数据和纠错码字中的每个数据码字或纠错码字,确定该数据码字或纠错码字的填充材料,并将所确定的填充材料填充到编码区域中针对该数据码字或纠错码字预先设置的位置处,其中,N进位制使用的数字与填充材料之间的对应关系为预先设定的。
在一些实施例中,掩模单元包括:掩模模块,配置用于使用每个预设掩模图形对编码区域的模块图形进行掩模并生成结果图形;生成模块,配置用于按照预设条件对每个结果图形进行评分,并基于分值最低的结果图形生成二维码。
在一些实施例中,N进位制的数据和纠错码字为四进制的数据和纠错码字,掩模模块包括:掩模运算子模块,配置用于对于编码区域的每个模块图形,将该模块图形对应的数据码字或纠错码字对2取余以确定第一数值,将预设掩模图形中与该模块图形的位置相同的模块图形的掩码值确定为第二数值;将第一数值与第二数值进行异或处理以确定第三数值;响应于第三数值不为0,对填充到该模块图形的数据码字或纠错码字进行取反。
本申请实施例提供的用于生成二维码的方法和装置,通过确定与待存储信息对应的二进制的数据和纠错码字,并将二进制的数据和纠错码字转换为N进位制的数据和纠错码字,而后将N进位制的数据和纠错码字填充到编码区域,最后对编码区域进行掩模生成二维码,从而增大了二维码的信息存储量。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性***架构图;
图2是根据本申请的用于生成二维码的方法的一个实施例的流程图;
图3是根据本申请的用于生成二维码的方法的一个应用场景的示意图;
图4是根据本申请的用于生成二维码的方法的又一个实施例的流程图;
图5是根据本申请的用于生成二维码的装置的一个实施例的结构示意图;
图6是适于用来实现本申请实施例的终端的计算机***的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的用于生成二维码的方法或用于生成二维码的装置的实施例的示例性***架构100。
如图1所示,***架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如二维码生成/扫描工具、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如为生成和读取二维码提供支持的后台服务器。服务器105可以对接收到的信息等数据进行分析处理,并基于分析处理结果生成二维码。
需要说明的是,本申请实施例所提供的用于生成二维码的方法一般由服务器105执行,相应地,用于生成二维码的装置一般设置于服务器105中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的用于生成二维码的方法的一个实施例的流程200。该用于生成二维码的方法,包括以下步骤:
步骤201,获取待存储信息。
在本实施例中,用于生成二维码的方法运行于其上的电子设备(例如图1所示的服务器)可以通过有线连接方式或者无线连接方式从用户终端(例如,图1所示的终端设备)获取要存储在二维码上的待存储信息。需要指出的是,上述无线连接方式可以包括但不限于3G/4G连接、WiFi连接、蓝牙连接、WiMAX连接、Zigbee连接、UWB(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
应当理解,上述电子设备除了从用户终端获取待存储信息之外,也可以从本地存储器或远程存储器获取待存储信息,当上述电子设备从本地存储器获取待存储信息时,网络(例如,图1所示的网络104)可被省略。
步骤202,基于预先确定的纠错等级和二维码版本,确定与待存储信息对应的二进制的数据和纠错码字。
在本实施例中,上述电子设备(例如图1所示的服务器)可以预先确定纠错等级和二维码版本,然后根据纠错等级和二维码版本对步骤201获取的待存储信息进行编码,生成二进制的数据和纠错码字。
为了使二维码在被损坏(例如,部分信息缺失)时不致于丢失数据,通常采用纠错算法生成纠错码字,并将纠错码字添加到数据码字之后,得到二进制的数据和纠错码字。按照可恢复的码字比例,纠错可以分为四种纠错等级(分别为纠错等级L、M、Q和H),例如,纠错等级L对应7%的码字恢复比例,而纠错等级H对应30%的码字恢复比例,本申请实施例中,纠错等级可以是预先指定的纠错等级或者是默认的纠错等级。二维码有40种版本,分别为版本1~版本40,二维码的版本决定了二维码的大小,例如,版本1代表21模块×21模块(这里,模块是指二维码中用于表达信息的图形块,下文也称为模块图形)的二维码,而版本40代表177模块×177模块的二维码,本申请实施例中,可以根据纠错等级选择能容纳待存储信息的最小二维码版本。
步骤203,将二进制的数据和纠错码字转换为N进位制的数据和纠错码字,其中,N为大于2自然数。
在本实施例中,用于生成二维码的方法运行于其上的电子设备可以将步骤202确定的二进制的数据和纠错码字转换为N进位制(例如,四进制、八进制等)的数据和纠错码字。
步骤204,将N进位制的数据和纠错码字填充到编码区域。
在本实施例中,上述电子设备可以将步骤203转换的N进位制的数据和纠错码字填充到编码区域中,这里,编码区域是指二维码中没有被功能图形占用、用于对数据和纠错码字进行编码的区域,功能图形是指二维码中用于定位与特征识别的图形(例如,位置探测图形、定位图形、校正图形等)。
步骤205,使用掩模图形对编码区域进行掩模以生成二维码。
在本实施例中,为了均衡地排布编码区域的数据和纠错码字以提高二维码的可读性,上述电子设备可以使用掩模图形对填充后的编码区域进行掩模操作,然后基于掩模后的编码区域生成二维码。
继续参见图3,图3是根据本实施例的用于生成二维码的方法的应用场景300的一个示意图。在图3的应用场景300中,电子设备首先根据纠错等级和二维码版本对获取的待存储信息进行编码确定二进制的数据和纠错码字,之后将二进制的数据和纠错码字转换成四进制的数据和纠错码字,然后将四进制的数据和纠错码字填充到编码区域中(其中,模块图形CW1~CW4分别与四进制编码使用的数字0~3对应),最后对编码区域进行掩模并生成格式信息(当二维码版本为版本8~版本40时,还生成版本信息)和功能图形,形成二维码。
本申请实施例提供的用于生成二维码的方法,通过将待存储信息转换为N进位制的数据和纠错码字来生成二维码,增大了二维码的信息存储量。
进一步参考图4,其示出了用于生成二维码的方法的又一个实施例的流程400。该用于生成二维码的方法的流程400,包括以下步骤:
步骤401,获取待存储信息。
在本实施例中,用于生成二维码的方法运行于其上的电子设备(例如图1所示的服务器)可以通过有线连接方式或者无线连接方式从用户终端(例如,图1所示的终端设备)获取要存储在二维码上的待存储信息。
步骤402,将待存储信息转化为二进制的数据码字。
在本实施例中,基于步骤401获取的待存储信息,上述电子设备(例如图1所示的服务器)可以首先确定编码字符集,然后按照确定的编码字符集将待存储信息编码为二进制的数据码字。这里,编码字符集可以包括数字型数据(例如,数字0~9)、字母数字型数据(例如,数字0~9、大写字母A~Z等)、8位字节型数据(例如,ASCII字符集)、汉字字符(例如,GB2312图形字符代码表表示的字符集)等。
步骤403,根据预先确定的纠错等级生成二进制的纠错码字。
在本实施例中,用于生成二维码的方法运行于其上的电子设备可以预先确定纠错等级,然后按照确定的纠错等级和二进制的数据码字生成纠错码字,其中,按照可恢复的码字比例,纠错可以分为四种纠错等级,分别为纠错等级L、M、Q和H。
步骤404,将二进制的数据码字和二进制的纠错码字按预先确定的二维码版本的预定规则进行穿插放置,以生成二进制的数据和纠错码字。
在本实施例中,用于生成二维码的方法运行于其上的电子设备可以将步骤402生成的数据码字和步骤403生成的纠错码字按照预先确定的纠错等级和二维码版本的要求进行穿插放置,得到二进制的数据和纠错码字。
步骤405,将二进制的数据和纠错码字转换为N进位制的数据和纠错码字,其中,N为大于2自然数。
在本实施例中,在本实施例中,用于生成二维码的方法运行于其上的电子设备可以将步骤404得到的二进制的数据和纠错码字转换为N进位制(例如,四进制、八进制等)的数据和纠错码字。
步骤406,对于N进位制的数据和纠错码字中的每个数据码字或纠错码字,确定该数据码字或纠错码字的填充颜色,并将所确定的填充颜色填充到编码区域中针对该数据码字或纠错码字预先设置的位置处,其中,N进位制使用的数字与填充颜色之间的对应关系为预先设定的。
在本实施例中,用于生成二维码的方法运行于其上的电子设备可以预先设定N进位制编码使用的数字与填充颜色之间的对应关系,并基于上述对应关系确定每个数据码字或纠错码字对应的填充颜色,然后将确定的填充颜色填充到编码区域中针对该数据码字或纠错码字预先设置的模块图形中。例如,对于四进制的数据和纠错码字而言,可以预先设定数字0~3与四种填充颜色(例如、白色、红色、绿色、黑色)一一对应,这样,当一数据码字或纠错码字被编码为0时,可向该数据码字或纠错码字对应位置处的模块图形填充白色;当一数据码字或纠错码字被编码为1时,可向该数据码字或纠错码字对应位置处的模块图形填充红色;……,以此类推。
步骤407,使用每个预设掩模图形对编码区域的模块图形进行掩模并生成结果图形。
在本实施例中,为了均衡地排布编码区域的数据和纠错码字以提高二维码的可读性,用于生成二维码的方法运行于其上的电子设备可以依次使用不同的掩模图形对步骤406填充后的编码区域进行掩模操作并生成结果图形。
作为一个示例,表一示出了常用的掩模图形参考(放置于格式信息中的二进制参考)和掩模图形的生成条件,掩模图形是通过将编码区域(不包括格式信息和版本信息)内那些条件为真的模块图形定义为深色而产生的。所示的条件中,i代表模块图形的行位置,j代表模块图形的列位置,div代表整除运算符,mod代表整除后的余数。依次使用表一所示的8种掩模图形对编码区域进行掩模操作从而得到8个结果图形。
表一掩模图形的生成条件
在本实施例的一些可选的实现方式中,N进位制的数据和纠错码字为四进制的数据和纠错码字,使用每个预设掩模图形对编码区域的模块图形进行掩模,包括:对于编码区域的每个模块图形,将该模块图形对应的数据码字或纠错码字对2取余以确定第一数值,将预设掩模图形中与该模块图形的位置相同的模块图形的掩码值确定为第二数值;将第一数值与第二数值进行异或处理以确定第三数值;响应于第三数值不为0,对填充到该模块图形的数据码字或纠错码字进行取反。
作为一个示例,以数据码字为2、填充颜色为绿色的模块图形为例进行详细说明。首先,将该数据码字的四进制数值(即,2)对2取余得到第一数值(即,0),并将掩模图形(例如,二进制参考为000的掩膜图形)中相同位置处的掩码值(例如,条件为真,掩码值为0)作为第二数值;然后,第一数值和第二数值进行异或运算,得到第三数值,由于这里的第三数值为0,因此该模块图形的数据码字的四进制数值和填充颜色保持不变。而对于具有相同的数据码字和填充颜色的另一模块图形,掩膜图形中相同位置处的掩码值为1(即,条件为假),从而得到第三数值为1,因此可以对该模块图形的数据码字的四进制数值(即,2)取反(这里的取反,是指将四进制数值转换为二进制数值之后按位进行取反)得到取反后的数据码字(取反后的四进制数值为1),并将该模块图形的填充颜色替换为取反后的数据码字对应的填充颜色,例如红色。
步骤408,按照预设条件对每个结果图形进行评分,并基于分值最低的结果图形生成二维码。
在本实施例中,用于生成二维码的方法运行于其上的电子设备可以按照预设条件(例如,行/列中相邻的模块图形颜色相同的模块图形数、颜色相同的模块图形组成的块的尺寸、整个结果图形中不同颜色的模块图形的比例等等)对每个结果进行评分(即对满足预设条件的模块图形进行记分),然后将分值最低(即,掩模效果最好)的结果图形作为掩膜后的图形,同时生成格式信息(当二维码版本为版本8~版本40时,还生成版本信息)和功能图形,形成二维码。
从图4中可以看出,与图2对应的实施例相比,本实施例中的用于生成二维码的方法的流程400突出了对N进位制的数据和纠错编码填充到编码区域的步骤。由此,本实施例描述的方案可以通过使用不同的颜色能够在编码区域存储更多的信息,从而增大了二维码的信息存储量。
尽管图4所示的实施例示出了使用不同的填充颜色填充编码区域的情形,但是本申请实施例并不限于此。应当理解,还可以通过其他合适的方式对编码区域进行填充,本领域的技术人员可以根据实际应用场景的需要进行设置。
在本申请的一些实施例中,将N进位制的数据和纠错码字填充到编码区域,包括:对于N进位制的数据和纠错码字中的每个数据码字或纠错码字,确定该数据码字或纠错码字的填充形状,并将所确定的填充形状填充到编码区域中针对该数据码字或纠错码字预先设置的位置处,其中,N进位制使用的数字与填充形状之间的对应关系为预先设定的。例如,可以使用圆形、三角形、矩形等填充图形来表示N进位制编码使用的数字。
在本申请的一些实施例中,将N进位制的数据和纠错码字填充到编码区域,包括:对于N进位制的数据和纠错码字中的每个数据码字或纠错码字,确定该数据码字或纠错码字的填充材料,并将所确定的填充材料填充到编码区域中针对该数据码字或纠错码字预先设置的位置处,其中,N进位制使用的数字与填充材料之间的对应关系为预先设定的。例如,可以使用不同的填充材料(能够通过特殊光线进行检测的材料,例如,反射红外线的材料、反射紫外线的材料等等)来表示N进位制编码使用的数字。与填充颜色或填充形状相比,诸如紫外线、红外线等光线的波段差距更大,因此,通过使用能够反射诸如紫外线、红外线等光线的材料生成二维码可使二维码更易于识读。
此外,上述实施例中,分别描述了使用填充颜色、填充形状和填充材料中的任意一种来表示N进位制编码使用的数字,但是本申请实施例并不限于此。例如,在本申请的一些实施例中,可以使用填充颜色、填充形状和填充材料中的至少两种来表示N进位制编码使用的数字(例如,白色圆形代表0,白色三角形代表1,黑色圆形代表2,黑色三角形代表3等等),从而可进一步增大二维码的信息存储量。
此外,本申请实施例还提供了一种用于解析二维码的方法,用于解析上述各实施例中生成的二维码。
该用于解析二维码的方法包括:识读格式信息(和版本信息,如果存在版本信息的话)确定二维码的纠错等级和掩模图形参考(和二维码版本);使用确定的掩模图像参考对应的掩模图形对编码区域的模块图形进行异或处理,消除掩模;根据模块图形的填充、排列规则识读模块图形,恢复二维码上存储的N进位制的数据和纠错码字;将N(N为大于2的自然数)进位制的数据和纠错码字转化为二进制的数据和纠错码字;使用与纠错等级相对应的纠错码字检测错误,如果发现错误则进行纠错;最后对二进制的数据码字进行译码得到二维码上存储的信息。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种用于生成二维码的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的用于生成二维码的装置500包括:获取单元501、确定单元502、转换单元503、填充单元504和掩模单元505。其中,获取单元501配置用于获取待存储信息;确定单元502配置用于基于预先确定的纠错等级和二维码版本,确定与待存储信息对应的二进制的数据和纠错码字;转换单元503配置用于将二进制的数据和纠错码字转换为N进位制的数据和纠错码字,其中,N为大于2自然数;填充单元504配置用于将N进位制的数据和纠错码字填充到编码区域;而掩模单元505配置用于使用掩模图形对编码区域进行掩模以生成二维码。
在本实施例中,用于生成二维码的装置500的接收单元501可以通过有线连接方式或者无线连接方式从用户终端(例如,图1所示的终端设备)获取要存储在二维码上的待存储信息。
在本实施例中,上述确定单元502可以预先确定纠错等级和二维码版本,然后根据纠错等级和二维码版本对获取单元501获取的待存储信息进行编码,生成二进制的数据和纠错码字。
在本实施例中,上述转换单元503可以将上述确定单元502确定的二进制的数据和纠错码字转换为N进位制(例如,四进制、八进制等)的数据和纠错码字。
本实施例中,上述填充单元504可以将上述转换单元503转换的N进位制的数据和纠错码字填充到编码区域中,这里,编码区域是指二维码中没有被功能图形占用、用于对数据和纠错码字进行编码的区域,功能图形是指二维码中用于定位与特征识别的图形例如,位置探测图形、定位图形、校正图形等)。
本实施例中,为了均衡地排布编码区域的数据和纠错码字以提高二维码的可读性,上述掩模单元505可以使用掩模图形对填充后的编码区域进行掩模操作,然后基于掩模后的编码区域生成二维码。
在本实施例的一些可选的实现方式中,上述确定单元502包括转化模块、生成模块和穿插模块。其中,转化模块配置用于将待存储信息转化为二进制的数据码字;生成模块配置用于根据预先确定的纠错等级生成二进制的纠错码字;穿插模块配置用于将二进制的数据码字和二进制的纠错码字按预先确定的二维码版本的预定规则进行穿插放置,以生成二进制的数据和纠错码字。
在本实施例的一些可选的实现方式中,上述填充单元504包括颜色填充模块。其中,颜色填充模块配置用于对于N进位制的数据和纠错码字中的每个数据码字或纠错码字,确定该数据码字或纠错码字的填充颜色,并将所确定的填充颜色填充到编码区域中针对该数据码字或纠错码字预先设置的位置处,其中,N进位制使用的数字与填充颜色之间的对应关系为预先设定的。
在本实施例的一些可选的实现方式中,上述填充单元504包括形状填充模块。其中,形状填充模块配置用于对于N进位制的数据和纠错码字中的每个数据码字或纠错码字,确定该数据码字或纠错码字的填充形状,并将所确定的填充形状填充到编码区域中针对该数据码字或纠错码字预先设置的位置处,其中,N进位制使用的数字与填充形状之间的对应关系为预先设定的。
在本实施例的一些可选的实现方式中,上述填充单元504包括材料填充模块。其中,材料填充模块配置用于对于N进位制的数据和纠错码字中的每个数据码字或纠错码字,确定该数据码字或纠错码字的填充材料,并将所确定的填充材料填充到编码区域中针对该数据码字或纠错码字预先设置的位置处,其中,N进位制使用的数字与填充材料之间的对应关系为预先设定的。
在本实施例的一些可选的实现方式中,上述掩模单元505包括掩模模块和生成模块。其中,掩模模块配置用于使用每个预设掩模图形对编码区域的模块图形进行掩模并生成结果图形;生成模块配置用于按照预设条件对每个结果图形进行评分,并基于分值最低的结果图形生成二维码。
在本实施例的一些可选的实现方式中,N进位制的数据和纠错码字为四进制的数据和纠错码字,掩模模块包括掩模运算子模块。其中,掩模运算子模块配置用于:对于编码区域的每个模块图形,将该模块图形对应的数据码字或纠错码字对2取余以确定第一数值,将预设掩模图形中与该模块图形的位置相同的模块图形的掩码值确定为第二数值;将第一数值与第二数值进行异或处理以确定第三数值;响应于第三数值不为0,对填充到该模块图形的数据码字或纠错码字进行取反。
本申请实施例提供的用于生成二维码的装置,通过将待存储信息转换为N进位制的数据和纠错码字来生成二维码,增大了二维码的信息存储量。
下面参考图6,其示出了适于用来实现本申请实施例的设备/服务器的计算机***600的结构示意图。图6示出的设备/服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图6所示,计算机***600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有***600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的方法中限定的上述功能。
需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括获取单元、确定单元、转换单元、填充单元和掩模单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,获取单元还可以被描述为“获取待存储信息的单元”。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:获取待存储信息;基于预先确定的纠错等级和二维码版本,确定与待存储信息对应的二进制的数据和纠错码字;将二进制的数据和纠错码字转换为N进位制的数据和纠错码字,其中,N为大于2自然数;将N进位制的数据和纠错码字填充到编码区域;使用掩模图形对编码区域进行掩模以生成二维码。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (10)
1.一种用于生成二维码的方法,所述二维码包括编码区域,所述方法包括:
获取待存储信息;
基于预先确定的纠错等级和二维码版本,确定与所述待存储信息对应的二进制的数据和纠错码字;
将所述二进制的数据和纠错码字转换为N进位制的数据和纠错码字,其中,N为大于2自然数;
将所述N进位制的数据和纠错码字填充到所述编码区域;
使用掩模图形对所述编码区域进行掩模以生成二维码。
2.根据权利要求1所述的方法,其中,所述基于预先确定的纠错等级和二维码版本确定与所述待存储信息对应的二进制的数据和纠错码字,包括:
将所述待存储信息转化为二进制的数据码字;
根据预先确定的纠错等级生成二进制的纠错码字;
将所述二进制的数据码字和所述二进制的纠错码字按预先确定的二维码版本的预定规则进行穿插放置,以生成二进制的数据和纠错码字。
3.根据权利要求2所述的方法,其中,所述将所述N进位制的数据和纠错码字填充到所述编码区域,包括:
对于所述N进位制的数据和纠错码字中的每个数据码字或纠错码字,确定该数据码字或纠错码字的填充颜色,并将所确定的填充颜色填充到所述编码区域中针对该数据码字或纠错码字预先设置的位置处,其中,N进位制使用的数字与填充颜色之间的对应关系为预先设定的。
4.根据权利要求2所述的方法,其中,所述将所述N进位制的数据和纠错码字填充到所述编码区域,包括:
对于所述N进位制的数据和纠错码字中的每个数据码字或纠错码字,确定该数据码字或纠错码字的填充形状,并将所确定的填充形状填充到所述编码区域中针对该数据码字或纠错码字预先设置的位置处,其中,N进位制使用的数字与填充形状之间的对应关系为预先设定的。
5.根据权利要求2所述的方法,其中,所述将所述N进位制的数据和纠错码字填充到所述编码区域,包括:
对于所述N进位制的数据和纠错码字中的每个数据码字或纠错码字,确定该数据码字或纠错码字的填充材料,并将所确定的填充材料填充到所述编码区域中针对该数据码字或纠错码字预先设置的位置处,其中,N进位制使用的数字与填充材料之间的对应关系为预先设定的。
6.根据权利要求1所述的方法,其中,所述使用掩模图形对所述编码区域进行掩模以生成二维码,包括:
使用每个预设掩模图形对所述编码区域的模块图形进行掩模并生成结果图形;
按照预设条件对每个结果图形进行评分,并基于分值最低的结果图形生成二维码。
7.根据权利要求6所述的方法,其中,所述N进位制的数据和纠错码字为四进制的数据和纠错码字,
所述使用每个预设掩模图形对所述编码区域的模块图形进行掩模,包括:
对于所述编码区域的每个模块图形,将该模块图形对应的数据码字或纠错码字对2取余以确定第一数值,将预设掩模图形中与该模块图形的位置相同的模块图形的掩码值确定为第二数值;将所述第一数值与所述第二数值进行异或处理以确定第三数值;响应于所述第三数值不为0,对填充到该模块图形的数据码字或纠错码字进行取反。
8.一种用于生成二维码的装置,所述二维码包括编码区域,所述装置包括:
获取单元,配置用于获取待存储信息;
确定单元,配置用于基于预先确定的纠错等级和二维码版本,确定与所述待存储信息对应的二进制的数据和纠错码字;
转换单元,配置用于将所述二进制的数据和纠错码字转换为N进位制的数据和纠错码字,其中,N为大于2自然数;
填充单元,配置用于将所述N进位制的数据和纠错码字填充到所述编码区域;
掩模单元,配置用于使用掩模图形对所述编码区域进行掩模以生成二维码。
9.一种设备/服务器,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711383739.5A CN109948762A (zh) | 2017-12-20 | 2017-12-20 | 用于生成二维码的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711383739.5A CN109948762A (zh) | 2017-12-20 | 2017-12-20 | 用于生成二维码的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109948762A true CN109948762A (zh) | 2019-06-28 |
Family
ID=67005250
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711383739.5A Pending CN109948762A (zh) | 2017-12-20 | 2017-12-20 | 用于生成二维码的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109948762A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110517052A (zh) * | 2019-08-26 | 2019-11-29 | 北京太和互邦科技有限公司 | 一种二维码生成方法、识别方法、二维码及设备 |
CN110517051A (zh) * | 2019-08-26 | 2019-11-29 | 北京太和互邦科技有限公司 | 一种二维码产生方法、解码方法、二维码及可读存储介质 |
CN111325299A (zh) * | 2020-02-18 | 2020-06-23 | 上海闻泰信息技术有限公司 | 二维码图像生成方法、装置、计算机设备及存储介质 |
CN112561016A (zh) * | 2020-12-23 | 2021-03-26 | 杭州天谷信息科技有限公司 | 二维码生成方法及***、文档防伪方法及*** |
CN114004320A (zh) * | 2021-10-15 | 2022-02-01 | 库卡机器人(广东)有限公司 | 图形码的生成方法和装置、识别方法和装置、电子设备 |
WO2024113874A1 (zh) * | 2022-11-30 | 2024-06-06 | 上海哔哩哔哩科技有限公司 | 环形二维码的编码方法和解码方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11502654A (ja) * | 1995-03-31 | 1999-03-02 | キウィソフト プログラムス リミティッド | 機械読取可能ラベル |
CN106156820A (zh) * | 2015-03-25 | 2016-11-23 | 北大方正集团有限公司 | 二维码生成方法及装置 |
CN106815544A (zh) * | 2017-01-16 | 2017-06-09 | 武汉大学 | 一种基于二维码的信息隐藏方法 |
-
2017
- 2017-12-20 CN CN201711383739.5A patent/CN109948762A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11502654A (ja) * | 1995-03-31 | 1999-03-02 | キウィソフト プログラムス リミティッド | 機械読取可能ラベル |
CN106156820A (zh) * | 2015-03-25 | 2016-11-23 | 北大方正集团有限公司 | 二维码生成方法及装置 |
CN106815544A (zh) * | 2017-01-16 | 2017-06-09 | 武汉大学 | 一种基于二维码的信息隐藏方法 |
Non-Patent Citations (3)
Title |
---|
中国物品编码中心: "《二维条码技术与应用》", 31 July 2007 * |
杨希玲等: "《物流信息技术》", 31 August 2014, 中国轻工业出版社 * |
陈元枝等: "基于Zxing的彩色QR码生成与识别方法", 《桂林电子科技大学学报》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110517052A (zh) * | 2019-08-26 | 2019-11-29 | 北京太和互邦科技有限公司 | 一种二维码生成方法、识别方法、二维码及设备 |
CN110517051A (zh) * | 2019-08-26 | 2019-11-29 | 北京太和互邦科技有限公司 | 一种二维码产生方法、解码方法、二维码及可读存储介质 |
CN110517052B (zh) * | 2019-08-26 | 2022-09-23 | 北京太和互邦科技有限公司 | 一种二维码生成方法、识别方法、二维码及设备 |
CN111325299A (zh) * | 2020-02-18 | 2020-06-23 | 上海闻泰信息技术有限公司 | 二维码图像生成方法、装置、计算机设备及存储介质 |
CN111325299B (zh) * | 2020-02-18 | 2023-07-28 | 上海闻泰信息技术有限公司 | 二维码图像生成方法、装置、计算机设备及存储介质 |
CN112561016A (zh) * | 2020-12-23 | 2021-03-26 | 杭州天谷信息科技有限公司 | 二维码生成方法及***、文档防伪方法及*** |
CN114004320A (zh) * | 2021-10-15 | 2022-02-01 | 库卡机器人(广东)有限公司 | 图形码的生成方法和装置、识别方法和装置、电子设备 |
CN114004320B (zh) * | 2021-10-15 | 2023-11-28 | 库卡机器人(广东)有限公司 | 图形码的生成方法和装置、识别方法和装置、电子设备 |
WO2024113874A1 (zh) * | 2022-11-30 | 2024-06-06 | 上海哔哩哔哩科技有限公司 | 环形二维码的编码方法和解码方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109948762A (zh) | 用于生成二维码的方法和装置 | |
US20190164250A1 (en) | Method and apparatus for adding digital watermark to video | |
CN108985066A (zh) | 一种智能合约安全漏洞检测方法、装置、终端及存储介质 | |
CN110263279B (zh) | 页面生成方法、装置、电子设备和计算机可读存储介质 | |
CN111242259B (zh) | 一种智能防伪码的编码和解码方法及*** | |
CN109062560B (zh) | 用于生成信息的方法和装置 | |
CN115358911B (zh) | 屏幕水印的生成方法、装置、设备和计算机可读存储介质 | |
CN109947431A (zh) | 一种代码生成方法、装置、设备及存储介质 | |
CN111222611A (zh) | 一种基于颜色的堆叠式三维码编码方法、编码装置、解码方法、解码装置以及存储介质 | |
CN110751251B (zh) | 生成、变换二维码图像矩阵的方法和装置 | |
CN111142863B (zh) | 一种页面生成的方法及装置 | |
CN108090468B (zh) | 用于检测人脸的方法和装置 | |
US10542176B2 (en) | Enhancing graph visualization with supplemental data | |
CN116052195A (zh) | 文档解析方法、装置、终端设备和计算机可读存储介质 | |
CN110969042A (zh) | 二维码的识别方法、装置、硬件装置 | |
CN109271826A (zh) | 用于识别二维码的方法和设备 | |
CN109255417A (zh) | 用于生成二维码的方法和设备 | |
CN110969233A (zh) | 二维码的生成方法、装置、硬件装置 | |
CN114816382A (zh) | 一种处理页面的方法和装置 | |
CN114626968A (zh) | 水印嵌入方法、水印提取方法和装置 | |
CN110378457B (zh) | 一种码标的生成方法及装置 | |
CN109472740A (zh) | 基于Web前端生成图形的方法和装置 | |
CN111797646A (zh) | 条形码识别方法及终端 | |
CN109003223A (zh) | 图片处理方法和装置 | |
CN108629530A (zh) | 信息处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190628 |