发明内容
本发明提供一种二维码颜色编码方法及系统以解决上述问题。
本发明提供一种二维码颜色编码方法,包括以下步骤。二维码生成器将字符转换成字符的utf-8编码所对应的byte数组,并依据第一预设策略确定字符对应的颜色值,所述二维码生成器将所述颜色值绘制在二维码数据区域,形成二维码图片后发送给计算器。解码器读取并解析所述计算器存储的待处理二维码图片,获得所述待处理二维码图片颜色值并通知所述计算器,所述计算器查询颜色区间表,获得对应的字符并发送给所述解码器。其中,所述计算器根据字符对应的颜色值,依据第二预设策略,确定颜色区间表。
本发明提供一种二维码颜色编码系统,包括二维码生成器、计算器及解码器,所述二维码生成器连接所述计算器,所述计算器连接所述解码器。所述二维码生成器,用于将字符转换成字符的utf-8编码所对应的byte数组,依据第一预设策略确定字符对应的颜色值,并将所述颜色值绘制在二维码数据区域,形成二维码图片后发送给计算器。所述计算器,用于存储所述二维码图片,并根据字符对应的颜色值,依据第二预设策略,确定颜色区间表。所述解码器,用于读取并解析所述计算器存储的待处理二维码图片,获得所述待处理二维码图片颜色值并通知所述计算器。所述计算器,还用于查询所述颜色区间表,获得对应的字符并发送给所述解码器。
相较于先前技术,根据本发明提供的二维码颜色编码方法及系统,二维码生成器将字符转换成字符的utf-8编码所对应的byte数组,并依据第一预设策略确定字符对应的颜色值,所述二维码生成器将所述颜色值绘制在二维码数据区域,形成二维码图片后发送给计算器。由不同颜色构成的二维码图片大大扩展了二维码容量。解码器读取并解析所述计算器存储的待处理二维码图片,获得所述待处理二维码图片颜色值并通知所述计算器,所述计算器查询颜色区间表,获得对应的字符并发送给所述解码器。其中,所述计算器根据字符对应的颜色值,依据第二预设策略,确定颜色区间表。如此,有效扩展了二维码信息量,提高了实际应用价值。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
图1所示为根据本发明的较佳实施例提供的二维码颜色编码方法的流程图。如图1所示,本发明的较佳实施例提供的二维码颜色编码方法包括步骤101~102。
步骤101:二维码生成器将字符转换成字符的utf-8编码所对应的byte数组,并依据第一预设策略确定字符对应的颜色值,所述二维码生成器将所述颜色值绘制在二维码数据区域,形成二维码图片后发送给计算器。
具体而言,计算机底层具有字符及所述字符对应的唯一utf-8编码,其中每个字符的utf-8编码所对应的byte数组长度为3位,且每位数值的值为1~255之间。以部分字符为例,所述计算机底层字符及字符的utf-8编码所对应的byte数组格式例如表1所示。
字符 |
字符的utf-8编码所对应的byte数组 |
您 |
230,130,168 |
好 |
229,165,189 |
未 |
230,156,170 |
飞 |
233,163,158 |
表1
所述字符的utf-8编码所对应的3位byte数组值分别对应于颜色的R、G及B值。于此,所述第一预设策略为,若单个字符的utf-8编码所对应的byte数组三个数值为a、b及c,其中,所述a、b及c分别对应颜色的R、G及B值,则所述字符对应的颜色值=65536*R+256*G+B =65536*a+256*b+c。所述二维码生成器计算所述字符对应的颜色值后,将所述颜色值由十进制转换为十六进制,并将颜色绘制在二维码数据区域形成二维码图片。
步骤102:解码器读取并解析所述计算器存储的待处理二维码图片,获得所述待处理二维码图片颜色值并通知所述计算器,所述计算器查询颜色区间表,获得对应的字符并发送给所述解码器,其中,所述计算器根据字符对应的颜色值,依据第二预设策略,确定颜色区间表。
具体而言,所述第二预设策略为,若单个字符对应的颜色值为Sn,则Sn的颜色值区间为Sn-(Sn-S(n-1)) / 2至Sn+(S(n+1)-Sn) / 2,n取1时,对应颜色值区间为0至s1+(s2-s1) / 2,n取最大值时,对应颜色值区间为Sn-(Sn-S(n-1)) / 2至255*255*255=16581375。其中,所述n对应的最大值为字符库中所有字符总数,若常用汉字及其它字符总数为6000个,则n的最大值为6000。所述计算器存储颜色区间表,所述颜色区间表包括字符及所述字符对应的颜色值区间。
举例而言,若二维码生成器需在二维码图片中存储的信息包含吖、啊、嗄及阿四个字符,所述四个字符utf-8编码所对应的byte数组分别为吖(229,144,150)、啊(229,149,138)、嗄(229,151,132)及阿(233,152,191)。若所述四个字符对应的颜色值分别为S1、S2、S3及S4,则二维码生成器依据第一预设策略计算S1=65536*229+256*144+150=15044758,S2=65536*229+256*149+138=15046026,S3=65536*229+256*151+132=15046532,S4=65536*233+256*152+191=15308991,并将所述S1~S4分别转换为十六进制数值后将对应颜色分别绘制在二维码数据区域,形成二维码图片后发送给计算器。于本实施例中,所述二维码图片还包含其它字符及对应的颜色,为便于说明,仅以上述四个字符为例。
所述计算器存储颜色区间表,于本实施例中,计算器依据第二预设策略确定S1(对应“吖”字符)的颜色值区间为0至15044758+(15046026-15044758)/2,即0至15045391。分别计算S2(对应“啊”字符)的颜色值区间为15045392至15046278,S3(对应“嗄”字符)的颜色值区间为15046279至15177761。于此,若S5为15508991,则S4(对应“阿”字符)的颜色值区间为15177762至S4+(S5-S4)/2,即15177762至15408991。所述颜色区间表包含字符库所有字符及对应的颜色值区间,以本实施例的四个字符为例,所述颜色区间表格式例如表2所示。
字符 |
对应的颜色值区间 |
吖 |
0~15045391(15044758) |
啊 |
15045392~15046278(15046026) |
嗄 |
15046279~15177761(15046532) |
阿 |
15177762~15408991(15308991) |
表2
若解码器读取并解析所述二维码图片对应数据区域中某一颜色,获取所述颜色的十六进制编码后,转换成十进制颜色值为15044900并发送给计算器。所述计算器查询自身存储的颜色区间表,确定所述颜色值15044900在区间0~15045391内,对应“吖”字符,则计算器获取此字符为吖,并发送给解码器。类似地,计算器可依次获取其它字符并发送给解码器,具体过程不再赘述。
图2所示为根据本发明的较佳实施例提供的二维码颜色编码系统的示意图。如图2所示,本发明较佳实施例提供的二维码颜色编码系统包括二维码生成器201、计算器202及解码器203,所述二维码生成器201连接所述计算器202,所述计算器202连接所述解码器203。所述二维码生成器201,用于将字符转换成字符的utf-8编码所对应的byte数组,依据第一预设策略确定字符对应的颜色值,并将所述颜色值绘制在二维码数据区域,形成二维码图片后发送给计算器202。所述计算器202,用于存储所述二维码图片,并根据字符对应的颜色值,依据第二预设策略,确定颜色区间表。所述解码器203,用于读取并解析所述计算器202存储的待处理二维码图片,获得所述待处理二维码图片颜色值并通知所述计算器202。所述计算器202,还用于查询所述颜色区间表,获得对应的字符并发送给所述解码器203。关于上述系统的操作流程同上述方法所述,故于此不再赘述。
综上所述,根据本发明较佳实施例提供的二维码颜色编码方法及系统,二维码生成器将字符转换成字符的utf-8编码所对应的byte数组,并依据第一预设策略确定字符对应的颜色值,所述二维码生成器将所述颜色值绘制在二维码数据区域,形成二维码图片后发送给计算器。由不同颜色构成的二维码图片大大扩展了二维码容量。解码器读取并解析所述计算器存储的待处理二维码图片,获得所述待处理二维码图片颜色值并通知所述计算器,所述计算器查询颜色区间表,获得对应的字符并发送给所述解码器。其中,所述计算器根据字符对应的颜色值,依据第二预设策略,确定颜色区间表。如此,有效扩展了二维码信息量,提高了实际应用价值。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。