发明内容
针对现有技术中的缺陷,本发明提供一种二维码生成方法及装置,能够对现有的二维码存储空间进行扩展,在同种版本规格下的二维码中存储更多的数据信息。
第一方面,本发明提供一种二维码生成方法,包括:
确定待生成的二维码中存储的数据信息;
根据所述数据信息,确定待生成的二维码的模板、纠错等级和灰度分级的级别,确定每一级灰度对应的二进制码,所述纠错等级为纠错码字占总码字的比例;
根据所述数据信息和纠错等级,生成第一码字流,所述第一码字流包括:数据码字流和所述数据码字流之后的纠错码字,所述数据码字流是通过将所述数据信息进行转换而得到的;
将所述第一码字流中的码字按顺序分别添加到所述模板中的数据部分和纠错信息码部分,并根据所述每一级灰度对应的二进制码,生成存储所述数据信息的灰度二维码。
可选地,所述根据待生成的二维码中存储的数据信息,确定待生成的二维码的模板,包括:
根据所述数据信息,确定待生成的二维码的版本信息;
根据所述版本信息,获取所述版本信息对应的二维码模板。
可选地,所述根据所述数据信息和纠错等级,生成第一码字流,所述第一码字流包括:数据码字流和所述数据码字流之后的纠错码字,所述数据码字流是通过将所述数据信息进行转换而得到的,包括:
将所述数据信息转换为数据码字流;
根据所述数据码字流及纠错等级,生成纠错码字;
将生成的纠错码字添加到数据码字流之后得到第一码字流。
可选地,所述将所述数据信息转换为数据码字流,包括:
将所述数据信息按照预设编码规则转换为比特流;
将所述比特流转换为数据码字流。
可选地,所述预设编码规则为快速响应QR码。
可选地,在所述数据信息大于216比特且小于等于1728比特时,所述灰度级别为256级。
第二方面,本发明提供一种二维码生成装置,包括:
第一确定模块,用于确定待生成的二维码中存储的数据信息;
第二确定模块,用于根据所述数据信息,确定待生成的二维码的模板、纠错等级和灰度分级的级别,确定每一级灰度对应的二进制码,所述纠错等级为纠错码字占总码字的比例;
第一生成模块,用于根据所述数据信息和纠错等级,生成第一码字流,所述第一码字流包括:数据码字流和所述数据码字流之后的纠错码字,所述数据码字流是通过将所述数据信息进行转换而得到的;
第二生成模块,用于将所述第一码字流中的码字按顺序分别添加到所述模板中的数据部分和纠错信息码部分,并根据所述每一级灰度对应的二进制码,生成存储所述数据信息的灰度二维码。
可选地,所述第二确定模块,包括:
第一确定单元,用于根据所述数据信息,确定待生成的二维码的版本信息、纠错等级和灰度分级的级别,确定每一级灰度对应的二进制码,所述纠错等级为纠错码字占总码字的比例;
获取单元,用于根据所述版本信息,获取所述版本信息对应的二维码模板。
可选地,所述第一生成模块,包括:
转换单元,用于将所述数据信息转换为数据码字流;
第一生成单元,用于根据所述数据码字流及纠错等级,生成纠错码字;
第二生成单元,用于将生成的纠错码字添加到数据码字流之后得到第一码字流。
可选地,所述转换单元,具体用于
将所述数据信息按照预设编码规则转换为比特流;
将所述比特流转换为数据码字流。
由上述技术方案可知,本发明的二维码生成方法及装置,能够对现有的二维码存储空间进行扩展,在同种版本规格下的二维码中存储更多的数据信息。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他的实施例,都属于本发明保护的范围。
本发明实施例以图1所示的版本1(21×21)的二维码为例说明,
图2示出了本发明一实施例提供的二维码生成方法的流程示意图,如图2所示,本实施例的二维码生成方法如下所述。
201、确定待生成的二维码中存储的数据信息。
202、根据所述数据信息,确定待生成的二维码的模板、纠错等级和灰度分级的级别,确定每一级灰度对应的二进制码,所述纠错等级为纠错码字占总码字的比例。
在具体应用中,在本步骤202中的待生成的二维码的灰度分级的级别可以为16级灰度,或者32级灰度,或者64级灰度,或者128级灰度,或者256级灰度等。
举例来说,在本实施例中可以用8位灰度图像表示256种颜色(即将黑白二维码分为256级灰度)。一个黑色方格的颜色将表示为00000000,即1bit。所以在(21×21)的二维码中,存储空间增大为216Byte,是原来同规格二维码的8倍。
在具体应用中,在所述数据信息大于216比特且小于等于1728比特时,所述灰度级别为256级。
在具体应用中,本步骤202中的“根据待生成的二维码中存储的数据信息,确定待生成的二维码的模板”,可以包括:
根据所述数据信息,确定待生成的二维码的版本信息;
根据所述版本信息,获取所述版本信息对应的二维码模板。
203、根据所述数据信息和纠错等级,生成第一码字流,所述第一码字流包括:数据码字流和所述数据码字流之后的纠错码字,所述数据码字流是通过将所述数据信息进行转换而得到的。
在具体应用中,本步骤203可以包括图中未示出的步骤203a-203c:
203a、将所述数据信息转换为数据码字流。
在具体应用中,本步骤203a可以包括:
将所述数据信息按照预设编码规则转换为比特流;
将所述比特流转换为数据码字流。
在具体应用中,所述预设编码规则可以优选为快速响应QR码。
203b、根据所述数据码字流及纠错等级,生成纠错码字。
203c、将生成的纠错码字添加到数据码字流之后得到第一码字流。
204、将所述第一码字流中的码字按顺序分别添加到所述模板中的数据部分和纠错信息码部分,并根据所述每一级灰度对应的二进制码,生成存储所述数据信息的灰度二维码。
在具体应用中,本实施例所生成的灰度二维码还可以包括:校正图形。
在具体应用中,本实施例所生成的灰度二维码还可以包括:版本信息。
可理解的是,如图1所示,QR二维码为矩阵式二维码,呈正方形,在3个角落,印有较小,像「回」字的的正方图案(位置探测图形1)。这三个是帮助解码软件定位的图案,使用者不需要对准,无论以任何角度拍摄,内容仍可正确被读取。
应说明的是,在本实施例中,灰度级数越大,存储空间越大。这种方式的基本原理就是利用灰度空间存储更多的数据信息。此外,灰度图像的优势是相对于彩色图像有较好的识别率。但不足之处为:灰度技术越大,识别率越低。这将对二维码扫描识别设备提出更高的要求。
本实施例的二维码生成方法,通过将黑白二维码进行灰度分级变成灰度二维码,能够对现有的二维码存储空间进行扩展,在同种版本规格下的二维码中存储更多的数据信息。
图3示出了本发明一实施例提供的二维码生成装置的结构示意图,如图3所示,本实施例的二维码生成装置,包括:第一确定模块31、第二确定模块32、第一生成模块33和第二生成模块34;
第一确定模块31,用于确定待生成的二维码中存储的数据信息;
第二确定模块32,用于根据所述数据信息,确定待生成的二维码的模板、纠错等级和灰度分级的级别,确定每一级灰度对应的二进制码,所述纠错等级为纠错码字占总码字的比例;
第一生成模块33,用于根据所述数据信息和纠错等级,生成第一码字流,所述第一码字流包括:数据码字流和所述数据码字流之后的纠错码字,所述数据码字流是通过将所述数据信息进行转换而得到的;
第二生成模块34,用于将所述第一码字流中的码字按顺序分别添加到所述模板中的数据部分和纠错信息码部分,并根据所述每一级灰度对应的二进制码,生成存储所述数据信息的灰度二维码。
在具体应用中,如图4所示,所述第二确定模块32,可以包括:
第一确定单元32a,用于根据所述数据信息,确定待生成的二维码的版本信息、纠错等级和灰度分级的级别,确定每一级灰度对应的二进制码,所述纠错等级为纠错码字占总码字的比例;
获取单元32b,用于根据所述版本信息,获取所述版本信息对应的二维码模板。
在具体应用中,如图5所示,所述第一生成模块33,可以包括:
转换单元33a,用于将所述数据信息转换为数据码字流;
第一生成单元33b,用于根据所述数据码字流及纠错等级,生成纠错码字;
第二生成单元33c,用于将生成的纠错码字添加到数据码字流之后得到第一码字流。
在具体应用中,所述转换单元33a,可以具体用于
将所述数据信息按照预设编码规则转换为比特流;
将所述比特流转换为数据码字流。
其中,所述预设编码规则可以优选为快速响应QR码。
在具体应用中,本实施例的待生成的二维码的灰度分级的级别可以为16级灰度,或者32级灰度,或者64级灰度,或者128级灰度,或者256级灰度等。
举例来说,在本实施例中可以用8位灰度图像表示256种颜色(即将黑白二维码分为256级灰度)。一个黑色方格的颜色将表示为00000000,即1bit。所以在(21×21)的二维码中,存储空间增大为216Byte,是原来同规格二维码的8倍。
在具体应用中,在本实施例中,在所述数据信息大于216比特且小于等于1728比特时,所述灰度级别可以为256级。
在具体应用中,本实施例所生成的灰度二维码还可以包括:校正图形。
在具体应用中,本实施例所生成的灰度二维码还可以包括:版本信息。
应说明的是,在本实施例中,灰度级数越大,存储空间越大。这种方式的基本原理就是利用灰度空间存储更多的数据信息。此外,灰度图像的优势是相对于彩色图像有较好的识别率。但不足之处为:灰度技术越大,识别率越低。这将对二维码扫描识别设备提出更高的要求。
本实施例的二维码生成装置,通过将黑白二维码进行灰度分级变成灰度二维码,能够对现有的二维码存储空间进行扩展,在同种版本规格下的二维码中存储更多的数据信息。
本实施例的二维码生成装置,可以用于执行前述图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。