CN105930891A - 生成二维码的方法 - Google Patents
生成二维码的方法 Download PDFInfo
- Publication number
- CN105930891A CN105930891A CN201610240947.9A CN201610240947A CN105930891A CN 105930891 A CN105930891 A CN 105930891A CN 201610240947 A CN201610240947 A CN 201610240947A CN 105930891 A CN105930891 A CN 105930891A
- Authority
- CN
- China
- Prior art keywords
- code
- square
- matrix
- matrix dot
- eye
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/06009—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
- G06K19/06046—Constructional details
- G06K19/06131—Constructional details the marking comprising a target pattern, e.g. for indicating the center of the bar code or for helping a bar code reader to properly orient the scanner or to retrieve the bar code inside of an image
Abstract
本发明属于二维码生成技术领域,尤其涉及一种生成二维码的方法。本发明提出的生成二维码的方法,包括二维码矩阵生成步骤;矩阵点尺寸计算步骤;码眼位置计算步骤;码眼绘制步骤;矩阵点绘制步骤;图像融合步骤;量化压缩步骤。本发明提出的生成二维码的方法采用透明色配色方案对码眼进行美化、对矩阵点采用填充图形,减少了冗余量和数据处理量,也实现了美化,并将背景图案叠加在美化后的二维码之上,使得美化后的二维码与背景图案相融合,从而提高用户扫码的积极性;同时,通过对二维码矩阵点填充图形的形状、透明度及配色方案进行设计和搭配,极大的提高了美化后的二维码的扫码识别率。
Description
技术领域
本发明属于二维码生成技术领域,尤其涉及一种生成二维码的方法。
背景技术
二维码是一种存储媒介,便于平面印刷和扫描,适合广泛传播;同时,二维码必须依赖扫码设备才能获取其中的信息,也能够一定程度上保护隐私,因此是一种非常有效的小容量存储工具。
二维码是一幅由许多点阵和点阵连接而成的连线组成的单一色调的正方形图案。二维码的左上角、左下角和右上角分别有一个明显不同于其他区域的小方块,这些小方块分别为二维码的左上码眼、左下码眼和右上码眼。上述三个码眼用于在扫码时对二维码进行定位,即为定位点。左上码眼、左下码眼和右上码眼均由码眼点组成,呈现为内框与外框嵌套的图形,其中,码眼点或者为黑色,或者为白色,二维码规范对此有明确的规定。二维码中包括纠错码。二维码中除外左上码眼、左下码眼和右上码眼之外的矩阵点区域用于记载该二维码内携带的信息。
直观上,人眼难以对二维码中所携带的信息进行初步辨识,加之二维码色调单一,因此,二维码图片与用户的交互性差,用户扫码积极性不高。
现有技术中的确逐渐出现了一些二维码的美化方法,但是这些美化的二维码要么存在数据处理量大、冗余量高、处理过程复杂的技术问题,要么由于存在大量图案和配色,十分不容易被扫描终端识别。
发明内容
鉴于此,本发明提出一种生成二维码的方法。本发明提出的生成二维码的方法对码眼进行美化、对矩阵点采用填充图形,减少了冗余量和数据处理量,也实现了美化,并将背景图案叠加在美化后的二维码之上,使得美化后的二维码与背景图案相融合,从而提高用户扫码的积极性;同时,通过对二维码矩阵点填充图形的形状、透明度及配色方案进行设计和搭配,极大的提高了美化后的二维码的扫码识别率。
第一方面,本发明提出的生成二维码的方法,包括如下步骤:
步骤1:获取发布内容和发布者签名信息,作为二维码存储信息;
步骤2:对存储信息进行编码,生成包含存储信息编码数据的信息码元;
步骤3:根据该信息码元生成二维码图片。
第二方面,本发明提出的生成二维码的方法,包括如下步骤:
(1)二维码矩阵生成步骤:
根据携带数据及生成条件,生成编码后的二维码矩阵;
(2)矩阵点尺寸计算步骤:
根据获取的背景图案的尺寸和二维码矩阵的矩阵点数,确定矩阵点尺寸;该矩阵点为正方形,该矩阵点尺寸是指该矩阵点边长所包含的像素点数;
(3)码眼位置计算步骤:
计算左上码眼、左下码眼和右上码眼的位置,以确定该二维码矩阵中与该左上码眼、左下码眼和右上码眼对应的矩阵点的索引值;
确定该二维码矩阵中与右下码眼所对应的矩阵点的索引值,该右下码眼是从该二维码的纠错码中指定的;该右下码眼的外框的边长为5个矩阵点;该右下码眼的内框的边长为3个矩阵点;
(4)码眼绘制步骤
根据确定的该索引值,绘制该左上码眼、该左下码眼、该右上码眼和该右下码眼;
其中,该左上码眼、左下码眼、右上码眼中的每个码眼均采用下述步骤绘制:根据该索引值绘制边长为7个矩阵点、透明度为80%的黑色的第一正方形;绘制边长为5个矩阵点、透明度为80%的白色的第二正方形,该第二正方形与该第一正方形的中心重合;绘制边长为3个矩阵点、透明度为80%的黑色的第三正方形,该第三正方形与该第一正方形、第二正方形的中心重合;包围该第一正方形的矩阵点设置为80%透明度的白色;
其中,该右下码眼采用下述步骤绘制:根据该索引值,绘制边长为5个矩阵点、透明度为80%的黑色的第四正方形;绘制边长为3个矩阵点、透明度为80%的白色的第五正方形,该第四正方形与该第五正方形的中心重合;将中心矩阵点绘制为透明度为80%的黑色;
(5)矩阵点绘制步骤
根据该矩阵点尺寸,确定填充图形,其中,
当该矩阵点尺寸大于等于24个像素点时,该填充图形为渐变五角星形,该渐变五角星形的外切圆的半径大于等于12个像素点;
当该矩阵点尺寸大于等于17个像素点且小于24个像素点时,该填充图形为扁平化圆形,该扁平化圆形由一个底层第一正方形和一个上层圆形叠加而成,该底层第一正方形与该上层圆形的中心重合,该上层圆形的直径大于等于17个像素点;
当该矩阵点尺寸大于等于7个像素点且小于17个像素点时,该填充图形为渐变立体圆形,该渐变立体圆形的直径大于等于7个像素点;
当该矩阵点尺寸大于等于4个像素点且小于7个像素点时,该填充图形为正方形;该正方形由一个底层第二正方形和一个上层正方形叠加而成;该底层第二正方形和该上层正方形的中心重合,该上层正方形的边长大于等于2个像素点;
对应地,
当该填充图形为渐变五角星形且该矩阵点的值为1时,在该矩阵点处绘制从透明度为50%的黑色主色到透明色的渐变五角星形;当该填充图形为渐变五角星形且当该矩阵点的值为0时,在该矩阵点处绘制从透明度为80%的白色主色到透明色的渐变五角星形;
当该填充图形为扁平化圆形且该矩阵点的值为1时,在该矩阵点处绘制透明度为100%的黑色的该底层第一正方形,该底层第一正方形的边长为该矩阵点尺寸;及绘制透明度为80%的黑色的该上层圆形;当该填充图形为扁平化圆形且该矩阵点的值为0时,在该矩阵点处绘制透明度为50%的白色的该底层第一正方形,该底层第一正方形的边长为该矩阵点尺寸;及绘制透明度为10%的白色的该上层圆形;
当该填充图形为渐变立体圆形且该矩阵点的值为1时,在该矩阵点处绘制从透明度为50%的黑色主色到透明色的渐变立体圆形;当该填充图形为渐变立体圆形且当该矩阵点的值为0时,在该矩阵点处绘制从透明度为80%的白色主色到透明色的渐变立体圆形;
当该填充图形为正方形且当该矩阵点的值为1时,在该矩阵点处绘制透明度为90%的黑色的该底层第二正方形,该底层第二正方形的边长为该矩阵点尺寸;及绘制透明度为20%的黑色的该上层正方形;当该填充图形为正方形且当该矩阵点的值为0时,在该矩阵点处绘制透明度为70%的白色的该底层第二正方形,该底层第二正方形的边长为该矩阵点尺寸;及绘制透明度为30%的白色的该上层正方形;
(6)图像融合步骤
将步骤(5)获得的二维码图片叠加到该背景图案上;其中,
当该背景图案为图片时,将步骤(5)获得的二维码图片以水印的方式嵌入到该背景图案中;
当该背景图案为动画时,首先预加载动画图片,获取该动画所有的帧数,及为每一幅单帧画面添加步骤(5)获得的二维码图片的水印;
(7)量化压缩步骤
对步骤(6)中获得的融合后的二维码图片进行量化,并对量化后的二维码图片进行压缩编码。
进一步地,本发明提出的生成二维码的方法采用八叉树算法进行量化。
进一步地,本发明提出的生成二维码的方法中,该扁平化圆形的底层第一正方形的边长与上层圆形的直径的比例为2:1。
进一步地,本发明提出的生成二维码的方法中,该正方形的底层第二正方形的边长与上层正方形的边长的比例为2:1。
进一步地,本发明提出的生成二维码的方法中,该第一至第五正方形被美化为美化码眼类型,该美化码眼类为直角矩形、中心圆形、扇形、双圆角、反向双圆角、三圆角、圆弧形、菱形或圆角矩形。
进一步地,本发明提出的生成二维码的方法中,绘制该渐变五角星形时,该五角星形坐标点计算步骤为:
1)计算该五角星形的外切圆半径,该外切圆半径大于等于12个像素点,且小于该矩阵点的尺寸的二分之一;
2)计算该外切圆的圆心的坐标;该圆心与该矩阵点的中心重合;;
3)计算该五角星形的五个顶点的坐标点和该五角星形的五个角所对应的弧度值;根据该弧度值的正弦值和余弦值,分别乘以该外切圆半径,再结合该圆心的坐标,可得出该五角星形各点的坐标。
本发明提出的生成二维码的方法采用透明色配色方案对码眼进行美化及采用填充图形对矩阵点进行填充,既减少了冗余量和数据处理量,也实现了美化;并将背景图案叠加在美化后的二维码之上,使得美化后的二维码与背景图案相融合,从而提高用户扫码的积极性;同时,通过对二维码矩阵点填充图形的形状、透明度及配色方案进行设计和搭配,极大的提高了美化后的二维码的扫码识别率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1为本发明实施例生成二维码的方法的流程示意图;
图2为本发明实施例生成二维码的方法的流程示意图;
图3为本发明实施例生成二维码的方法中美化码眼类型的示意图;
图4为本发明实施例渐变五角星形填充图形的示意图;
图5为本发明实施例扁平化圆形填充图形的示意图;
图6为本发明实施例渐变立体圆形填充图形的示意图;
图7为本发明实施例正方形填充图形的示意图;
图8为本发明实施例生成二维码的方法中扁平化圆形填充后与背景图案融合后的效果示意图;
图9为本发明实施例生成二维码的方法中量化前后的二维码效果示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合实施例中的附图,对实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部实施例。基于已给出的实施例,本领域普通技术人员在未作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例1
如图1所示,本实施例生成二维码的方法,包括如下步骤:
步骤S101:获取发布内容和发布者签名信息,作为二维码存储信息;
步骤S102:对存储信息进行编码,生成包含存储信息编码数据的信息码元;
步骤S103:根据该信息码元生成二维码图片。
实施例2
如图2所示,本实施例生成二维码的方法,包括如下步骤:
二维码矩阵生成步骤S201:根据携带数据及生成条件,生成编码后的二维码矩阵;
矩阵点尺寸计算步骤S202:根据获取的背景图案的尺寸和二维码矩阵的矩阵点数,确定矩阵点尺寸;
码眼位置计算步骤S203:计算左上码眼、左下码眼和右上码眼的位置,以确定该二维码矩阵中与该左上码眼、左下码眼和右上码眼对应的矩阵点的索引值;确定该二维码矩阵中与右下码眼所对应的矩阵点的索引值,该右下码眼是从该二维码的纠错码中指定的;该右下码眼的外框的边长为5个矩阵点;该右下码眼的内框的边长为3个矩阵点;
码眼绘制步骤S204:根据确定的该索引值,绘制该左上码眼、该左下码眼、该右上码眼和该右下码眼;
其中,该左上码眼、左下码眼、右上码眼中的每个码眼均采用下述步骤绘制:根据该索引值绘制边长为7个矩阵点、透明度为80%的黑色的第一正方形;绘制边长为5个矩阵点、透明度为80%的白色的第二正方形,该第二正方形与该第一正方形的中心重合;绘制边长为3个矩阵点、透明度为80%的黑色的第三正方形,该第三正方形与该第一正方形、第二正方形的中心重合;包围该第一正方形的矩阵点设置为80%透明度的白色;
其中,该右下码眼采用下述步骤绘制:根据该索引值,绘制外框为边长为5个矩阵点、透明度为80%的黑色的第四正方形;绘制边长为3个矩阵点、透明度为80%的白色的第五正方形,该第四正方形与该第五正方形的中心重合;将中心矩阵点绘制为透明度为80%的黑色;
矩阵点绘制步骤S205:根据该矩阵点尺寸,确定填充图形,其中,当该矩阵点尺寸大于等于24个像素点时,该填充图形为渐变五角星形,该渐变五角星形的外切圆的半径大于等于12个像素点;当该矩阵点尺寸大于等于17个像素点且小于24个像素点时,该填充图形为扁平化圆形,该扁平化圆形由一个底层第一正方形和一个上层圆形叠加而成,该底层第一正方形与该上层圆形的中心重合,该上层圆形的直径大于等于17个像素点;当该矩阵点尺寸大于等于7个像素点且小于17个像素点时,该填充图形为渐变立体圆形,该渐变立体圆形的直径大于等于7个像素点;当该矩阵点尺寸大于等于4个像素点且小于7个像素点时,该填充图形为正方形;该正方形由一个底层第二正方形和一个上层正方形叠加而成;该底层第二正方形和该上层正方形的中心重合,该上层正方形的边长大于等于2个像素点;
对应地,当该填充图形为渐变五角星形且该矩阵点的值为1时,在该矩阵点处绘制从透明度为50%的黑色主色到透明色的渐变五角星形;当该填充图形为渐变五角星形且当该矩阵点的值为0时,在该矩阵点处绘制从透明度为80%的白色主色到透明色的渐变五角星形;
当该填充图形为扁平化圆形且该矩阵点的值为1时,在该矩阵点处绘制透明度为100%的黑色的该底层第一正方形,该底层第一正方形的边长为该矩阵点尺寸;及绘制透明度为80%的黑色的该上层圆形;当该填充图形为扁平化圆形且该矩阵点的值为0时,在该矩阵点处绘制透明度为50%的白色的该底层第一正方形,该底层第一正方形的边长为该矩阵点尺寸;及绘制透明度为10%的白色的该上层圆形;
当该填充图形为渐变立体圆形且该矩阵点的值为1时,在该矩阵点处绘制从透明度为50%的黑色主色到透明色的渐变立体圆形;当该填充图形为渐变立体圆形且当该矩阵点的值为0时,在该矩阵点处绘制从透明度为80%的白色主色到透明色的渐变立体圆形;
当该填充图形为正方形且当该矩阵点的值为1时,在该矩阵点处绘制透明度为90%的黑色的该底层第二正方形,该底层第二正方形的边长为该矩阵点尺寸;及绘制透明度为20%的黑色的该上层正方形;当该填充图形为正方形且当该矩阵点的值为0时,在该矩阵点处绘制透明度为70%的白色的该底层第二正方形,该底层第二正方形的边长为该矩阵点尺寸;及绘制透明度为30%的白色的该上层正方形;
图像融合步骤S206:将步骤(5)获得的二维码图片叠加到该背景图案上;其中,当该背景图案为图片时,将步骤(5)获得的二维码图片以水印的方式嵌入到该背景图案中;当该背景图案为动画时,首先预加载动画图片,获取该动画所有的帧数,及为每一幅单帧画面添加步骤(5)获得的二维码图片的水印;
量化压缩步骤S207:对步骤(6)中获得的融合后的二维码图片进行量化,并对量化后的二维码图片进行压缩编码。
具体应用时,本实施例生成二维码的方法采用八叉树算法进行量化。
具体应用时,本实施例生成二维码的方法中,该扁平化圆形的底层第一正方形的边长与上层圆形的直径的比例为2:1;该正方形的底层第二正方形的边长与上层正方形的边长的比例为2:1。
具体应用时,本实施例生成二维码的方法中,该第一至第五正方形被美化为美化码眼类型,该美化码眼类为直角矩形、中心圆形、扇形、双圆角、反向双圆角、圆弧形、菱形或圆角矩形。该直角矩形、中心圆形、扇形、双圆角、反向双圆角、三圆角、圆弧形、菱形或圆角矩形如图3所示。
具体应用时,本实施例生成二维码的方法中,绘制该渐变五角星形时,该五角星形坐标点计算步骤为:
1)计算该五角星形的外切圆半径,该外切圆半径大于等于12个像素点,且小于该矩阵点的尺寸的二分之一;
2)计算该外切圆的圆心的坐标;该圆心与该矩阵点的中心重合;;
3)遍历该五角星形的五个顶点坐标点,分别计算出五个角所对应的弧度值,然后再根据该弧度值的正弦值和余弦值,分别乘以该外切圆半径,再结合该圆心的坐标,可得出该五角星形各点的坐标。
本实施例生成二维码的方法采用透明色配色方案对码眼进行美化及采用填充图形对矩阵点进行填充,既减少了冗余量和数据处理量,也实现了美化;并将背景图案叠加在美化后的二维码之上,使得美化后的二维码与背景图案相融合,从而提高用户扫码的积极性;同时,通过对二维码矩阵点填充图形的形状、透明度及配色方案进行设计和搭配,极大的提高了美化后的二维码的扫码识别率。
如图3至图9所示,以下结合应用场景对本实施例生成二维码的方法进行详细说明。
首先,输入需要二维码携带的数据内容。二维码可以携带各类数据内容,如视频文件、图片、动画、付款信息、收款信息、语音和文字等。
进一步,根据携带数据及生成条件,生成编码后的二维码矩阵。具体地,根据该携带数据内容和设定的容错率,确定二维码版本号,并生成编码后的二维码矩阵;该二维码矩阵的矩阵点的值为0或者1;该二维码矩阵的矩阵点数记为m×m,该二维码版本号记为v,有m=(v-1)×4+21。二维码共有40个版本,即v的取值范围为从1到40。需要说明的是,通常用m来表征二维码矩阵的大小。
进一步,根据获取的背景图案的尺寸和二维码矩阵的矩阵点数,确定矩阵点尺寸。其中,记背景图案的尺寸为p,矩阵点尺寸为s,则有s=p/m。需要说明的是,p为背景图案的单边像素点数。
需要说明的是,这里“获取的背景图案”是指在一幅较大的背景图案中预先指定的、需要与二维码融合的区域所在的那部分背景图案。
进一步,计算左上码眼、左下码眼和右上码眼的位置,以确定该二维码矩阵中与该左上码眼、左下码眼和右上码眼对应的矩阵点的索引值;确定该二维码矩阵中与右下码眼所对应的矩阵点的索引值,该右下码眼是从该二维码的纠错码中指定的;该右下码眼的外框的边长为5个矩阵点;该右下码眼的内框的边长为3个矩阵点。
可以采用二维码矩阵中矩阵点的索引值来表征码眼的位置。根据二维码生成规范,左上、左下、右上三个码眼的外框的边长优选为7个矩阵点,因此可计算出左上、左下、右上码眼的位置。采用上述优选值时最有利于识别定位该二维码。
另外,从二维码校验码中选择一个特定的正方形区域作为右下码眼。由于二维码校验码取决于二维码版本号v,版本号不同,则校验码的显示个数及位置也不相同。
本实施例生成二维码的方法在确保码眼能够准确识别的前提下,在下述位置绘制该右下码眼,从而使二维码更加美观。
记该右下码眼对应的最左上矩阵点的列索引值为x,行索引值为y,则x=4×v+10,y=4×v+10;且该右下码眼的外框的边长为5个矩阵点;该右下码眼的内框的边长为3个矩阵点。
进一步,根据确定的该索引值,绘制该左上码眼、该左下码眼、该右上码眼和该右下码眼;其中,该左上码眼、左下码眼、右上码眼中的每个码眼均采用下述步骤绘制:根据该索引值绘制边长为7个矩阵点、透明度为80%的黑色的第一正方形;绘制边长为5个矩阵点、透明度为80%的白色的第二正方形,该第二正方形与该第一正方形的中心重合;绘制边长为3个矩阵点、透明度为80%的黑色的第三正方形,该第三正方形与该第一正方形、第二正方形的中心重合;包围该第一正方形的矩阵点设置为80%透明度的白色;
其中,该右下码眼采用下述步骤绘制:根据该索引值,绘制边长为5个矩阵点、透明度为80%的黑色的第四正方形;绘制边长为3个矩阵点、透明度为80%的白色的第五正方形,该第四正方形与该第五正方形的中心重合;将中心矩阵点绘制为透明度为80%的黑色。
优选地,该第一至第五正方形被美化为如图3所示的直角矩形、中心圆形、扇形、双圆角、反向双圆角、三圆角、圆弧形、菱形或圆角矩形等美化码眼类型。
对于不同的美化码眼类型,按照以下步骤绘制左上、左下、右上三个码眼:
根据该索引值绘制边长为7个矩阵点、透明度为80%的黑色的第一正方形;绘制边长为5个矩阵点、透明度为80%的白色的第二正方形,该第二正方形与该第一正方形的中心重合;绘制边长为3个矩阵点、透明度为80%的黑色的第三正方形,该第三正方形与该第一正方形、第二正方形的中心重合;包围该第一正方形的矩阵点设置为80%透明度的白色;
对于不同的美化码眼类型,按照以下步骤绘制该右下码眼:根据该索引值,绘制边长为5个矩阵点、透明度为80%的黑色的第四正方形;绘制边长为3个矩阵点、透明度为80%的白色的第五正方形,该第四正方形与该第五正方形的中心重合;将中心矩阵点绘制为透明度为80%的黑色。
因为码眼的作用是在扫描识别时用于定位,因此上述特定的码眼绘制方法相比于现有技术能够保证在扫码时容易识别;更别致的码眼图案既美化了码眼,也能与任何静态图片或动画等背景图案相融合。
进一步,根据该矩阵点尺寸,确定与该矩阵点尺寸相对应的填充图形填充各矩阵点,以得到矩阵点美化后的二维码。
为了使生成的二维码既美观又容易被扫描终端识别,填充图形可采用多种形式,如正方形、渐变立体圆形,扁平化圆形、多边形等。具体的填充图形根据二维码矩阵点的尺寸进行选择。
具体地,根据矩阵点的尺寸设定如下规则:矩阵点的尺寸大于24个像素点时采用多边形;矩阵点的尺寸大于17个像素点时采用扁平化圆形;矩阵点的尺寸大于7个像素点时采用渐变立体圆形;矩阵点的尺寸小于或等于4个像素点时采用正方形。优选地,多边形为渐变五角星形。具体应用时,根据矩阵点的尺寸按照由大到小的顺序依次匹配,即可确定相对应的填充图形。
另外,填充图形不同时,所采用的透明度和搭配方案也不相同。
具体地,每个矩阵点的主色由该矩阵点的值来确定:矩阵点的值为1时,该矩阵点的主色为黑色;矩阵点的值为0时,该矩阵点的主色为白色。
各填充图形的配色方案及绘制方法如下:
(1):渐变五角星形。首先计算出五角星形各点的坐标,然后由主色(黑色或白色)到透明色渐变绘制图形。该五角星形的配色方案为黑色主色为50%透明度,白色主色为80%透明度。图4示出的是主色为白色时的渐变五角星形填充图形。
具体地,绘制渐变五角星形时,五角星形坐标点计算步骤为:
1)计算该五角星形的外切圆半径,该外切圆半径大于等于12个像素点,且小于m/2;
2)计算该外切圆圆心的坐标,该圆心的列索引值为x0=m-m/2;行索引值为y0=m-m/2;
3)计算该五角星形的五个顶点的坐标点和该五角星形的五个角所对应的弧度值;根据该弧度值的正弦值和余弦值,分别乘以该外切圆半径,再结合该圆心的坐标,可得出该五角星形各点的坐标。
(2):扁平化圆形。扁平化圆形采用两层图形叠加而成,底层图形采用正方形,上层图形采用圆形。该扁平化圆形的配色方案为:底层图形的黑色主色为100%的透明度,白色主色为50%的透明度;上层图形的黑色主色为80%的透明度,白色主色为10%的透明度。图5示出的是主色为白色时的扁平化圆形填充图形。
(3)渐变立体圆形。根据直径和圆心,确定该渐变立体圆形的坐标,然后由主色(黑色或白色)到透明色渐变绘制该圆形。该渐变立体圆形的配色方案为黑色主色为50%透明度,白色主色为80%透明度。图6中示出的是主色为白色时的渐变立体圆形填充图形。
(4)正方形。正方形采用两层图形叠加而成,底层图形采用较大的正方形,上层图形采用较小的正方形。该正方形的配色方案为:底部正方形的配色为黑色主色为90%透明,白色主色为70%透明,上层正方形的配色为黑色主色为20%透明,白色主色为30%透明。图7示出的是主色为白色时的正方形填充图形。
采用以上配色方案,采用对应的填充图形,填充各矩阵点,从而得到美化后的二维码。
以上填充矩阵点的步骤,相对于现有技术而言,能够减少传统二维码里矩阵点中50%以上的色块,既减少了冗余量和数据处理量,也实现了矩阵点区域的美化;另外,通过对二维码矩阵点填充图形的形状、透明度及配色方案进行设计和搭配,极大的提高了美化后的二维码的扫码识别率;另外,上述透明度的选择在提高扫码识别率的同时也更有利于在后续图像融合步骤中与获得更好的融合效果。
优选地,该正方形的底层正方形的边长与上层正方形的边长的比例为2:1。经过结合不同的待融合的背景图案,经过反复试验,该正方形的底层正方形的边长与上层正方形的边长的比例为2:1时,融合后的二维码的扫码准确率最高。
优选地,该扁平化圆形的底层正方形的边长与上层圆形的直径的比例为2:1。经过结合不同的待融合的背景图案,经过反复试验,该扁平化圆形的底层正方形的边长与上层圆形的直径的比例为2:1时,融合后的二维码的扫码准确率最高。
进一步地,将美化后的二维码图片与背景图案进行融合。将二维码图片与背景图案融合时,对静态图片和动态图片采用不同的处理方式。静态图片可以包括jpg,jpeg,webp,png,bmp等格式。动态图片可以包括gif等格式。对于静态图片,将将二维码图片以水印的方式嵌入到背景图片中。为达到更佳效果,在嵌入时设置高质量融合,提高清晰度以便更好的识别。对于动态图片,首先预加载动画图片,获取该动画所以的帧数,为每一幅单帧画面添加二维码水印,并加以量化处理以达到更佳效果,最终将融合后的图片以gif格式存储。
融合后的二维码图片如图8所示,美化后的二维码与背景图案相融合,可以有效提高用户扫码的积极性。
进一步地,对融合后的二维码图片进行量化压缩处理。具体地,对融合后的二维码图片进行量化处理,使二维码区域的图像更佳细腻,更容易识别。图9左侧示出了量化之前的美化二维码图片,图9右侧示出了量化之后的美化二维码图片,经过对比,量化后的二维码图片更加细腻,更加容易识别。
另外,量化后得到的二维码图片的数据量十分巨大,必须采用编码技术来压缩其信息量,在满足一定保真度的要求下,对二维码图片进行变换、编码和压缩,去除多余数据减少表示二维码图片时需要的数据量,以便于二维码图片的存储和传输。即以较少的数据量无损地表示原来的像素矩阵。常见的图片压缩方法有mpeg、dpeg、jepg等。
优化地,该量化采用八叉树颜色量化算法,该算法实现如下:
八叉树算法用于产生最适合一幅图像的256色调色板。八叉树颜色量化可分为建立色彩八叉树、产生调色板、生成量化文件3个步骤。顺序读入像素颜色(R,G,B),建立一棵叶节点小于256(即量化后颜色数)的色彩八叉树。然后对色彩八叉树进行遍历,对256个叶子节点计算出代表颜色并进行编号得到调色板。最后再次扫描文件,将每一颜色映射到调色板上,产生量化后的新图像。
建立色彩八叉树过程中涉及到颜色的查找、插入和节点归并3种操作。扫描图像,对每一个像素颜色值(R,G,B)计算路径索引值在色彩八叉树进行查找,按查找结果进行插入操作:
(1)到了第n层未查到,说明是新的颜色,插入此新的叶节点count=1,redsum=R,greensum=G,bluesum=B,isLeaf(是否叶节点)=true,叶节点加数1。
(2)找到是已有的颜色:count++,redsum+=R,greensum+=G,bluesum+=B。
(3)走到叶子节点,但层数小于n,说明是归并过的节点,操作同(2)。
为了便于归并的操作,按层建立了可归并节点链,链中节点按频度递减顺序排列,在第(2)步、第(3)步两步中节点频度发生改变,要对其在归并链中的顺序进行修改。
当叶节点数大于256时,对色彩八叉树进行归并。首先选择深度最大的子树进行归并,相同深度的子树频度最小优先。将该归并节点的所有子节点的count,redsum,greensum,bluesum值进行累加和分别赋给该节点对应的变量,isLeaf值设为true,从可归并节点链中删除该节点。
对建立好的色彩八叉树进行遍历,当遇到叶节点时计算该叶节点的代表颜色(redsum/count,greensum/count,bluesum/count),将该颜色加入调色板,并在叶节点中记录该颜色在调色板中的索引值。
重新扫描图像,由图像每个像素的颜色值得出的路径查找到色彩八叉树中的对应的叶子节点,用叶节点中记录的调色板的代表色填充。而频度高的结点未被归并,则用最接近的色彩填充,最终产生量化后的新图像。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。
Claims (7)
1.一种生成二维码的方法,其特征在于,包括如下步骤:
步骤1:获取发布内容和发布者签名信息,作为二维码存储信息;
步骤2:对存储信息进行编码,生成包含存储信息编码数据的信息码元;
步骤3:根据所述信息码元生成二维码图片。
2.一种生成二维码的方法,其特征在于,包括如下步骤:
(1)二维码矩阵生成步骤:
根据携带数据及生成条件,生成编码后的二维码矩阵;
(2)矩阵点尺寸计算步骤:
根据获取的背景图案的尺寸和二维码矩阵的矩阵点数,确定矩阵点尺寸;所述矩阵点为正方形,所述矩阵点尺寸是指所述矩阵点边长所包含的像素点数;
(3)码眼位置计算步骤:
计算左上码眼、左下码眼和右上码眼的位置,以确定所述二维码矩阵中与所述左上码眼、左下码眼和右上码眼对应的矩阵点的索引值;
确定所述二维码矩阵中与右下码眼所对应的矩阵点的索引值,所述右下码眼是从所述二维码的纠错码中指定的;所述右下码眼的外框的边长为5个矩阵点;所述右下码眼的内框的边长为3个矩阵点;
(4)码眼绘制步骤
根据确定的所述索引值,绘制所述左上码眼、所述左下码眼、所述右上码眼和所述右下码眼;
其中,所述左上码眼、左下码眼、右上码眼中的每个码眼均采用下述步骤绘制:根据所述索引值绘制边长为7个矩阵点、透明度为80%的黑色的第一正方形;绘制边长为5个矩阵点、透明度为80%的白色的第二正方形,所述第二正方形与所述第一正方形的中心重合;绘制边长为3个矩阵点、透明度为80%的黑色的第三正方形,所述第三正方形与所述第一正方形、第二正方形的中心重合;包围所述第一正方形的矩阵点设置为80%透明度的白色;
其中,所述右下码眼采用下述步骤绘制:根据所述索引值,绘制边长为5个矩阵点、透明度为80%的黑色的第四正方形;绘制边长为3个矩阵点、透明度为80%的白色的第五正方形,所述第四正方形与所述第五正方形的中心重合;将中心矩阵点绘制为透明度为80%的黑色;
(5)矩阵点绘制步骤
根据所述矩阵点尺寸,确定填充图形;其中,
当所述矩阵点尺寸大于等于24个像素点时,所述填充图形为渐变五角星形,所述渐变五角星形的外切圆的半径大于等于12个像素点;
当所述矩阵点尺寸大于等于17个像素点且小于24个像素点时,所述填充图形为扁平化圆形,所述扁平化圆形由一个底层第一正方形和一个上层圆形叠加而成,所述底层第一正方形与所述上层圆形的中心重合,所述上层圆形的直径大于等于17个像素点;
当所述矩阵点尺寸大于等于7个像素点且小于17个像素点时,所述填充图形为渐变立体圆形,所述渐变立体圆形的直径大于等于7个像素点;
当所述矩阵点尺寸大于等于4个像素点且小于7个像素点时,所述填充图形为正方形;所述正方形由一个底层第二正方形和一个上层正方形叠加而成;所述底层第二正方形和所述上层正方形的中心重合,所述上层正方形的边长大于等于2个像素点;
对应地,
当所述填充图形为渐变五角星形且所述矩阵点的值为1时,在所述矩阵点处绘制从透明度为50%的黑色主色到透明色的渐变五角星形;当所述填充图形为渐变五角星形且当所述矩阵点的值为0时,在所述矩阵点处绘制从透明度为80%的白色主色到透明色的渐变五角星形;
当所述填充图形为扁平化圆形且所述矩阵点的值为1时,在所述矩阵点处绘制透明度为0的黑色的所述底层第一正方形,所述底层第一正方形的边长为所述矩阵点尺寸;及绘制透明度为80%的白色的所述上层圆形;当所述填充图形为扁平化圆形且所述矩阵点的值为0时,在所述矩阵点处绘制透明度为50%的白色的所述底层第一正方形,所述底层第一正方形的边长为所述矩阵点尺寸,及绘制透明度为10%的白色的所述上层圆形;
当所述填充图形为渐变立体圆形且所述矩阵点的值为1时,在所述矩阵点处绘制从透明度为50%的黑色主色到透明色的渐变立体圆形;当所述填充图形为渐变立体圆形且当所述矩阵点的值为0时,在所述矩阵点处绘制从透明度为80%的白色主色到透明色的渐变立体圆形;
当所述填充图形为正方形且当所述矩阵点的值为1时,在所述矩阵点处绘制透明度为90%的黑色的所述底层第二正方形,所述底层第二正方形的边长为所述矩阵点尺寸;及绘制透明度为20%的黑色的所述上层正方形;当所述填充图形为正方形且当所述矩阵点的值为0时,在所述矩阵点处绘制透明度为70%的白色的所述底层第二正方形,所述底层第二正方形的边长为所述矩阵点尺寸;及绘制透明度为30%的白色的所述上层正方形;
(6)图像融合步骤
将步骤(5)获得的二维码图片叠加到所述背景图案上;其中,
当所述背景图案为图片时,将步骤(5)获得的二维码图片以水印的方式嵌入到所述背景图案中;
当所述背景图案为动画时,首先预加载动画图片,获取所述动画所有的帧数,及为每一幅单帧画面添加步骤(5)获得的二维码图片的水印,从而获得融合后的二维码图片;
(7)量化压缩步骤
对步骤(6)中获得的融合后的二维码图片进行量化,并对量化后的二维码图片进行压缩编码。
3.根据权利要求2所述的生成二维码的方法,其特征在于,采用八叉树算法进行量化。
4.根据权利要求2所述的生成二维码的方法,其特征在于,所述扁平化圆形的底层第一正方形的边长与上层圆形的直径的比例为2:1。
5.根据权利要求2所述的生成二维码的方法,其特征在于,所述正方形的底层第二正方形的边长与上层正方形的边长的比例为2:1。
6.根据权利要求2所述的生成二维码的方法,其特征在于,所述第一至第五正方形被美化为美化码眼类型,所述美化码眼类为直角矩形、中心圆形、扇形、双圆角、反向双圆角、三圆角、圆弧形、菱形或圆角矩形。
7.根据权利要求2所述的生成二维码的方法,其特征在于,绘制所述渐变五角星形时,所述五角星形坐标点计算步骤为:
1)计算所述五角星形的外切圆半径,所述外切圆半径大于等于12个像素点,且小于所述矩阵点的尺寸的二分之一;
2)计算所述外切圆的圆心的坐标;所述圆心与所述矩阵点的中心重合;
3)计算所述五角星形的五个顶点的坐标点和所述五角星形的五个角所对应的弧度值;根据所述弧度值的正弦值和余弦值,分别乘以所述外切圆半径,再结合所述圆心的坐标,可得出所述五角星形各点的坐标。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610240947.9A CN105930891A (zh) | 2016-04-18 | 2016-04-18 | 生成二维码的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610240947.9A CN105930891A (zh) | 2016-04-18 | 2016-04-18 | 生成二维码的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105930891A true CN105930891A (zh) | 2016-09-07 |
Family
ID=56838517
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610240947.9A Pending CN105930891A (zh) | 2016-04-18 | 2016-04-18 | 生成二维码的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105930891A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106778997A (zh) * | 2016-11-28 | 2017-05-31 | 北京慧眼智行科技有限公司 | 一种二维条码组的生成方法和装置 |
CN106960411A (zh) * | 2017-03-27 | 2017-07-18 | 珠海丹德图像技术有限公司 | 二维码叠加数字水印的方法及其识别方法和识别系统 |
CN107239814A (zh) * | 2017-06-07 | 2017-10-10 | 上海觉感视觉科技有限公司 | 一种融合logo图标的堆叠式二维码及其识别方法 |
CN107748908A (zh) * | 2017-09-18 | 2018-03-02 | 中国农业大学 | 一种个性化二维码构造方法 |
CN108073964A (zh) * | 2016-11-18 | 2018-05-25 | 苏州码蛋信息科技有限公司 | 一种透视二维码生成方法及装置 |
CN108256611A (zh) * | 2018-01-15 | 2018-07-06 | 詹莘玥 | 二维码影像生成方法、装置、计算设备及存储介质 |
CN109190437A (zh) * | 2018-08-01 | 2019-01-11 | 飞天诚信科技股份有限公司 | 一种读取二维码的方法及读取装置 |
CN109740715A (zh) * | 2018-12-30 | 2019-05-10 | 尤尼泰克(嘉兴)信息技术有限公司 | 一种高识别率的二维码数据区绘制方法 |
CN110942128A (zh) * | 2019-12-06 | 2020-03-31 | 中铁第四勘察设计院集团有限公司 | 一种基于AutoCAD的绘制二维码方法及系统 |
CN114021683A (zh) * | 2021-11-04 | 2022-02-08 | 广州市金库物联科技有限公司 | 一种彩色圆角防伪二维码生成方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008058480A1 (fr) * | 2006-11-16 | 2008-05-22 | Shenzhen Mpr Technology Co., Ltd | Code bidimensionnel, procédé de décodage de celui-ci et publication d'impression pour appliquer un code bidimensionnel |
CN103279917A (zh) * | 2013-05-30 | 2013-09-04 | 上海理工大学 | 变换域抗几何攻击灰度图像数字水印技术 |
CN103559526A (zh) * | 2013-10-31 | 2014-02-05 | 北京天威诚信电子商务服务有限公司 | 二维码的生成与验证方法及系统 |
-
2016
- 2016-04-18 CN CN201610240947.9A patent/CN105930891A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008058480A1 (fr) * | 2006-11-16 | 2008-05-22 | Shenzhen Mpr Technology Co., Ltd | Code bidimensionnel, procédé de décodage de celui-ci et publication d'impression pour appliquer un code bidimensionnel |
CN103279917A (zh) * | 2013-05-30 | 2013-09-04 | 上海理工大学 | 变换域抗几何攻击灰度图像数字水印技术 |
CN103559526A (zh) * | 2013-10-31 | 2014-02-05 | 北京天威诚信电子商务服务有限公司 | 二维码的生成与验证方法及系统 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108073964A (zh) * | 2016-11-18 | 2018-05-25 | 苏州码蛋信息科技有限公司 | 一种透视二维码生成方法及装置 |
CN108073964B (zh) * | 2016-11-18 | 2020-09-29 | 穆亚南 | 一种透视二维码生成方法及装置 |
CN106778997A (zh) * | 2016-11-28 | 2017-05-31 | 北京慧眼智行科技有限公司 | 一种二维条码组的生成方法和装置 |
CN106960411A (zh) * | 2017-03-27 | 2017-07-18 | 珠海丹德图像技术有限公司 | 二维码叠加数字水印的方法及其识别方法和识别系统 |
CN107239814B (zh) * | 2017-06-07 | 2020-02-21 | 上海觉感视觉科技有限公司 | 一种融合logo图标的堆叠式二维码的识别方法 |
CN107239814A (zh) * | 2017-06-07 | 2017-10-10 | 上海觉感视觉科技有限公司 | 一种融合logo图标的堆叠式二维码及其识别方法 |
CN107748908A (zh) * | 2017-09-18 | 2018-03-02 | 中国农业大学 | 一种个性化二维码构造方法 |
CN108256611A (zh) * | 2018-01-15 | 2018-07-06 | 詹莘玥 | 二维码影像生成方法、装置、计算设备及存储介质 |
CN108256611B (zh) * | 2018-01-15 | 2021-01-19 | 詹莘玥 | 二维码影像生成方法、装置、计算设备及存储介质 |
CN109190437A (zh) * | 2018-08-01 | 2019-01-11 | 飞天诚信科技股份有限公司 | 一种读取二维码的方法及读取装置 |
CN109190437B (zh) * | 2018-08-01 | 2021-03-16 | 飞天诚信科技股份有限公司 | 一种读取二维码的方法及读取装置 |
CN109740715A (zh) * | 2018-12-30 | 2019-05-10 | 尤尼泰克(嘉兴)信息技术有限公司 | 一种高识别率的二维码数据区绘制方法 |
CN109740715B (zh) * | 2018-12-30 | 2020-11-20 | 尤尼泰克(嘉兴)信息技术有限公司 | 一种高识别率的二维码数据区绘制方法 |
CN110942128A (zh) * | 2019-12-06 | 2020-03-31 | 中铁第四勘察设计院集团有限公司 | 一种基于AutoCAD的绘制二维码方法及系统 |
CN110942128B (zh) * | 2019-12-06 | 2022-03-29 | 中铁第四勘察设计院集团有限公司 | 一种基于AutoCAD的绘制二维码方法及系统 |
CN114021683A (zh) * | 2021-11-04 | 2022-02-08 | 广州市金库物联科技有限公司 | 一种彩色圆角防伪二维码生成方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105930891A (zh) | 生成二维码的方法 | |
CN108334922B (zh) | 点阵二维码及点阵二维码的编码和识别方法 | |
JP7282532B2 (ja) | 情報処理装置、情報処理方法、データ構造、及びプログラム | |
CN104966115B (zh) | 一种用图像填充二维码的方法 | |
TWI278237B (en) | Pixel data generating method | |
CN109540023B (zh) | 基于二值网格编码模板结构光的物体表面深度值测量方法 | |
CN102693553B (zh) | 一种实现三维效果的图表创建方法及装置 | |
CN107025673A (zh) | 虚拟结构光3d数据压缩算法的局部误差抑制方法 | |
CN106599965A (zh) | 一种将图像卡通化并与二维码融合的方法与装置 | |
RU2002131792A (ru) | Устройство и способ представления трехмерного объекта на основе изображений с глубиной | |
KR20230023667A (ko) | 포인트 클라우드의 인코딩 및 디코딩 방법 | |
CN105141970A (zh) | 一种基于三维模型几何信息的纹理图像压缩方法 | |
CN104063888B (zh) | 一种基于非真实感的波谱艺术风格绘制方法 | |
CN104270624B (zh) | 一种分区域的3d视频映射方法 | |
CN106162140A (zh) | 一种全景视频的压缩方法及装置 | |
CN107578078A (zh) | 用于单目视觉定位的非镜像对称二维码标志图形校验及布局方法 | |
CN110849290A (zh) | 基于形态学操作的分段量化编码强度的三维测量方法 | |
CN104376307B (zh) | 一种指纹图像信息编码方法 | |
CN104331883B (zh) | 一种基于非对称逆布局模型的图像边界提取方法 | |
CN104268169B (zh) | 一种基于ps软件的遥感影像数据快速处理方法 | |
Kaya et al. | Refining the bounding volumes for lossless compression of voxelized point clouds geometry | |
CN108073963B (zh) | 一种融合二维码生成方法及装置 | |
CN106599010A (zh) | 图码搜索法 | |
CN101364306A (zh) | 一种基于非对称逆布局模型的静止图像压缩编码方法 | |
US20220286677A1 (en) | Point cloud processing method, encoder, decoder and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20170117 Address after: 518000 Guangdong city of Shenzhen province Nanshan District Guangdong streets, business center, block C 1003 Applicant after: SHENZHEN ZEHUIHONG TECHNOLOGY CO., LTD. Address before: 710000 Shaanxi Province, Xi''an Yanta District Science and technology six road block oak block B room 1105 Applicant before: Yan He |
|
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160907 |