一种二维码生成方法及装置与流程

    专利2022-07-08  102


    本发明涉及通信领域,具体而言,涉及一种二维码生成方法及装置。



    背景技术:

    现在随着二维码技术的成熟,使之被使用的范围和行业越来越广。这其中就包含一些推广类的需求,一种情况是用户生成可供扫描下载应用的二维码,另外一种情况是用户生成可以查看活动详情或海报的网址等等,特别需要提到的是二维码中间都需要嵌入公司的logo图片。

    目前使用程序生成二维码的方法已是随处可见,且很是方便。但是美中不足的就是生成的二维码各式各样,即使是同一个方法生成的也是各有不同。导致其出现的原因就是长超链接的字符串的长度不同,而二维码一般都是直接设定固定尺寸,在有限的空间中存放内容的多少肯定也就影响了二维码内容的疏密格式。另外logo图片的压缩也是问题,logo图片经过程序压缩即使再好的处理也会造成或轻或重的失真,有的甚至出现logo边界出现锯齿现象,影响了二维码的美观。

    针对相关技术中生成的二维码内容疏密不一,格式不同影响效果的问题,尚未提出解决方案。



    技术实现要素:

    本发明实施例提供了一种二维码生成方法及装置,以至少解决相关技术中生成的二维码内容疏密不一,格式不同影响效果的问题。

    根据本发明的一个实施例,提供了一种二维码生成方法,包括:

    根据获取到的参数信息与调用接口的统一资源定位符url生成第一链接地址;

    根据所述第一链接地址获取第二链接地址,其中,所述第二链接地址的长度小于所述第一链接地址的长度;

    根据所述第二链接地址生成用于记载信息的二维码。

    可选地,在根据获取到的参数信息与统一资源定位符(uniform/universalresourcelocator,简称为url)生成第一链接地址之前,所述方法还包括:

    接收触发生成所述二维码的触发指令,其中,所述触发指令中携带有所述参数信息;

    根据所述触发指令获取所述url。

    可选地,根据获取到的参数信息与调用接口的统一资源定位符url生成第一链接地址包括:

    将所述参数信息与所述url按照第一预设规则拼接,得到所述第一链接地址。

    可选地,根据所述第一链接地址获取预设长度的第二链接地址包括:

    对所述第一链接地址进行加密;

    通过md5算法将加密后的所述第一链接地址转换为32位字符串;

    按照第二预设规则从所述32位字符串中截取所述第二链接地址。

    可选地,按照第二预设规则从所述32位字符串中截取所述第二链接地址包括:

    在所述32位字符串包括4个子字符串,每个子字符串包括8个字符的情况下,分别从所述4个子字符串中获取预定数量的字符,拼接得到所述第二链接地址;

    将获取到的包括所述预定数量的字符的4个字符串中的任意一个字符串确定所述第二链接地址的url。

    可选地,在根据所述第二链接地址生成所述二维码之后,所述方法还包括:

    获取预设尺寸的目标图像;

    将所述目标图像插入所述二维码中。

    根据本发明的另一个实施例,还提供了一种二维码生成装置,包括:

    第一生成模块,用于根据获取到的参数信息与调用接口的统一资源定位符url生成第一链接地址;

    第一获取模块,用于根据所述第一链接地址获取第二链接地址,其中,所述第二链接地址的长度小于所述第一链接地址的长度;

    第二生成模块,用于根据所述第二链接地址生成用于记载信息的二维码。

    可选地,所述装置还包括:

    接收模块,用于接收触发生成所述二维码的触发指令,其中,所述触发指令中携带有所述参数信息;

    第二获取模块,用于根据所述触发指令获取所述url。

    可选地,所述第一生成模块,还用于

    将所述参数信息与所述url按照第一预设规则拼接,得到所述第一链接地址。

    可选地,所述第一获取模块包括:

    加密子模块,用于对所述第一链接地址进行加密;

    转换子模块,用于通过md5算法将加密后的所述第一链接地址转换为32位字符串;

    截取子模块,用于按照第二预设规则从所述32位字符串中截取所述第二链接地址。

    可选地,所述截取子模块包括:

    拼接单元,用于在所述32位字符串包括4个子字符串,每个子字符串包括8个字符的情况下,分别从所述4个子字符串中获取预定数量的字符,拼接得到所述第二链接地址;

    确定单元,用于将获取到的包括所述预定数量的字符的4个字符串中的任意一个字符串确定所述第二链接地址的url。

    可选地,所述装置还包括:

    获取模块,用于获取预设尺寸的目标图像;

    插入模块,用于将所述目标图像插入所述二维码中。

    根据本发明的又一个实施例,还提供了一种计算机可读的存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

    根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。

    通过本发明,根据获取到的参数信息与调用接口的统一资源定位符url生成第一链接地址;根据所述第一链接地址获取第二链接地址,其中,所述第二链接地址的长度小于所述第一链接地址的长度;根据所述第二链接地址生成所述二维码,可以解决相关技术中生成的二维码内容疏密不一,格式不同影响效果的问题,从长链接地址中截取长度相同的短链接底地址,基于短链接地址生成样式一致且清晰的二维码。

    附图说明

    此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

    图1是本发明实施例的二维码生成方法的移动终端的硬件结构框图;

    图2是根据本发明实施例的二维码生成方法的流程图;

    图3是根据本发明实施例的生成样式统一且清晰的二维码的流程图;

    图4是根据本发明实施例的二维码生成装置的框图;

    图5是根据本发明优选实施例的二维码生成装置的框图一;

    图6是根据本发明优选实施例的二维码生成装置的框图二。

    具体实施方式

    下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

    需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

    实施例1

    本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的二维码生成方法的移动终端的硬件结构框图,如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,可选地,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的部件,或者具有与图1所示不同的配置。

    存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的二维码生成方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

    传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。

    基于上述的移动终端或网络架构,在本实施例中提供了一种二维码生成方法,图2是根据本发明实施例的二维码生成方法的流程图,如图2所示,该流程包括如下步骤:

    步骤s202,根据获取到的参数信息与调用接口的统一资源定位符url生成第一链接地址;

    步骤s204,根据所述第一链接地址获取第二链接地址,其中,所述第二链接地址的长度小于所述第一链接地址的长度;

    步骤s206,根据所述第二链接地址生成用于记载信息的二维码。

    通过上述步骤s202至s206,根据获取到的参数信息与调用接口的统一资源定位符url生成第一链接地址;根据所述第一链接地址获取第二链接地址,其中,所述第二链接地址的长度小于所述第一链接地址的长度;根据所述第二链接地址生成所述二维码,可以解决相关技术中生成的二维码内容疏密不一,格式不同影响效果的问题,从长链接地址中截取长度相同的短链接底地址,基于短链接地址生成样式一致且清晰的二维码。

    在一可选的实施例中,在根据获取到的参数信息与统一资源定位符url生成第一链接地址之前,接收触发生成二维码的触发指令,其中,所述触发指令中携带有所述参数信息;根据所述触发指令获取所述url。

    本发明实施例中,上述步骤s202具体可以包括:将所述参数信息与所述url按照第一预设规则拼接,得到所述第一链接地址。

    本发明实施例中,上述步骤s204具体可以包括:对所述第一链接地址进行加密;通过md5算法将加密后的所述第一链接地址转换为32位字符串;按照第二预设规则从所述32位字符串中截取所述第二链接地址,进一步的,在所述32位字符串包括4个子字符串,每个子字符串包括8个字符的情况下,分别从所述4个子字符串中获取预定数量的字符,拼接得到所述第二链接地址;将获取到的包括所述预定数量的字符的4个字符串中的任意一个字符串确定所述第二链接地址的url。

    在另一可选的实施例中,在根据所述第二链接地址生成所述二维码之后,获取预设尺寸的目标图像,将所述目标图像插入所述二维码中。

    本发明实施例通过在生成的原始长网址加入盐之后,通过md5加密算法将长网址和盐进行加密,生成32位签名串。然后经过算法得到4个6位串,取其中任何一个都可以作为这个长网址的短网址。这样就保证了生成二维码所用的字符串的长度相同,首先就保证了二维码的疏密格式相同,而且在生成短网址过程中加入了盐然后进行加密,这样也能更好的达到控制访问的目的。另外logo图片直接使用ps修改为要展示像素的图片。然后不需进行程序压缩,直接原尺寸合成到二维码中。

    图3是根据本发明实施例的生成样式统一且清晰的二维码的流程图,如图3所示,用户需要生成二维码时,需要通过web或app端触发相关接口,并且传入相关必须的入参,以实现必须的业务逻辑,其中可能性比较大的就是区分该用户的相关字段以及其他一些区分字段。

    server接收到web或app端传入的入参之后,会做相关的逻辑处理,以获取组装长超链接的入参,这些入参就是需要包含在二维码中的。而长网址前半段的域名一般都是相同的。需要注意的是这些入参是不同的,这也会形成长短不一的结果。当然拼接成长网址只会形成长短差别更大,因为入参一般不会只有一个。而该长网址直接是可以达到正常的访问结果的。

    调取短网址获取的接口,以完成短网址的获取。而每次生成的长网址是作为入参的。短网址服务器完全可以自己搭建,当然现在新浪、谷歌、百度等大的互联网企业都已经开放出公用的长网址转短网址接口,可以直接用现成的。如果自己搭建,可自己写短网址获取接口,其会用到短网址映射算法生成该长网址对应的短网址。

    本发明实施例的短网址映射算法具体包括:将长网址加入特定盐,然后用md5算法生成32位签名串,分为4段,每段8个字符。对这4段循环处理,取每段的8个字符,将他看成16进制字符串与0x3fffffff(30位1)的位与操作,超过30位的忽略处理;将每段得到的这30位又分为6段,每5位的数字作为字母表的索引取得特定字符,依次进行获得6位字符串。这样一个md5字符串可以获得4个6位串,取里面的任意一个就可作为这个长网址的短url。

    业务server获取到短网址后,会判断需要使用的logo图标像素。logo图标为提前准备的固定像素的图片文件。在合成二维码时直接使用即可。不需要程序进行压缩,因为压缩之后的图片肯定存在清晰度的问题。而短网址即作为生成二维码的文本,就可以获取到了logo清晰且样式统一的二维码图片。

    通过调取资源服务器提供的文件上传接口,将生成的二维码图片上传到资源服务器,资源服务器会自动返回该二维码图片的url地址。同时该url作为二维码生成接口的出参,返回给了前端展示。

    用户使用手机扫描生成的二维码图片,手机会自动跳转到扫描到的短网址。而跳转的过程就是手机端访问短网址server服务器的过程。短网址server会根据短网址入参查询出对应的长网址出参然后进行跳转。这样即完成了访问过程。

    当产生出长短不一的url时,通过调用短网址server使用短网址映射算法将其转化为长度一致的短网址。这样根据短网址生成的二维码就会疏密一致。因为尺寸相同的二维码中的内容越长,生成的越稠密。

    如果有用到logo图片,建议提前规定好二维码嵌入的logo图片尺寸,这样直接在资源服务器上提前上传上去对应的尺寸即可。这样就不需要对其进行程序压缩或拉伸了。因为程序压缩或放大图片,一定会多多少少的使得图片失真。从而影响二维码的清晰度。

    因为在二维码生成时能调整的选项,只有二维码尺寸、logo所占比例、容错系数。而这三者都不是影响二维码内容疏密的主因。考虑之下确定到生成二维码的文本内容长度,此会直接影响二维码。所以就考虑到通过一一对应关系使得固定长度的短网址替代生成二维码的长网址。而logo图标开始提供的只是一个很高分辨率的,但是经过程序处理之后就使得logo图标模糊了。所以才考虑直接舍弃掉程序处理的步骤,而需要多大的就提供多大像素的logo图标。

    本发明实施例能结合现有的长网址转短网址以达到获取规格相同二维码的目的。而二维码内嵌的logo图片,不用再进行程序压缩,当然如果web端需要不同像素的二维码和logo图片,就需在开发之初将对应的像素的logo图片制作成功,然后通过相应的程序判断进行使用。这样就可以达到美观的效果。

    通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

    实施例2

    在本实施例中还提供了一种二维码生成装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

    图4是根据本发明实施例的二维码生成装置的框图,如图4所示,包括:

    第一生成模块42,用于根据获取到的参数信息与调用接口的统一资源定位符url生成第一链接地址;

    第一获取模块44,用于根据所述第一链接地址获取第二链接地址,其中,所述第二链接地址的长度小于所述第一链接地址的长度;

    第二生成模块46,用于根据所述第二链接地址生成用于记载信息的二维码。

    图5是根据本发明优选实施例的二维码生成装置的框图一,如图5所示,所述装置还包括:

    接收模块52,用于接收触发生成所述二维码的触发指令,其中,所述触发指令中携带有所述参数信息;

    第二获取模块54,用于根据所述触发指令获取所述url。

    可选地,所述第一生成模块42,还用于

    将所述参数信息与所述url按照第一预设规则拼接,得到所述第一链接地址。

    可选地,所述第一获取模块44包括:

    加密子模块,用于对所述第一链接地址进行加密;

    转换子模块,用于通过md5算法将加密后的所述第一链接地址转换为32位字符串;

    截取子模块,用于按照第二预设规则从所述32位字符串中截取所述第二链接地址。

    可选地,所述截取子模块包括:

    拼接单元,用于在所述32位字符串包括4个子字符串,每个子字符串包括8个字符的情况下,分别从所述4个子字符串中获取预定数量的字符,拼接得到所述第二链接地址;

    确定单元,用于将获取到的包括所述预定数量的字符的4个字符串中的任意一个字符串确定所述第二链接地址的url。

    图6是根据本发明优选实施例的二维码生成装置的框图二,如图6所示,所述装置还包括:

    第三获取模块62,用于获取预设尺寸的目标图像;

    插入模块64,用于将所述目标图像插入所述二维码中。

    需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。

    实施例3

    本发明的实施例还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

    可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

    s1,根据获取到的参数信息与调用接口的统一资源定位符url生成第一链接地址;

    s2,根据所述第一链接地址获取第二链接地址,其中,所述第二链接地址的长度小于所述第一链接地址的长度;

    s3,根据所述第二链接地址生成用于记载信息的二维码。

    可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read-onlymemory,简称为rom)、随机存取存储器(randomaccessmemory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。

    实施例4

    本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

    可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

    可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

    s1,根据获取到的参数信息与调用接口的统一资源定位符url生成第一链接地址;

    s2,根据所述第一链接地址获取第二链接地址,其中,所述第二链接地址的长度小于所述第一链接地址的长度;

    s3,根据所述第二链接地址生成用于记载信息的二维码。

    可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

    显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

    以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。


    技术特征:

    1.一种二维码生成方法,其特征在于,包括:

    根据获取到的参数信息与调用接口的统一资源定位符url生成第一链接地址;

    根据所述第一链接地址获取第二链接地址,其中,所述第二链接地址的长度小于所述第一链接地址的长度;

    根据所述第二链接地址生成用于记载信息的二维码。

    2.根据权利要求1所述的方法,其特征在于,在根据获取到的参数信息与统一资源定位符url生成第一链接地址之前,所述方法还包括:

    接收触发生成所述二维码的触发指令,其中,所述触发指令中携带有所述参数信息;

    根据所述触发指令获取所述url。

    3.根据权利要求1所述的方法,其特征在于,根据获取到的参数信息与调用接口的统一资源定位符url生成第一链接地址包括:

    将所述参数信息与所述url按照第一预设规则拼接,得到所述第一链接地址。

    4.根据权利要求1所述的方法,其特征在于,根据所述第一链接地址获取预设长度的第二链接地址包括:

    对所述第一链接地址进行加密;

    通过md5算法将加密后的所述第一链接地址转换为32位字符串;

    按照第二预设规则从所述32位字符串中截取所述第二链接地址。

    5.根据权利要求4所述的方法,其特征在于,按照第二预设规则从所述32位字符串中截取所述第二链接地址包括:

    在所述32位字符串包括4个子字符串,每个子字符串包括8个字符的情况下,分别从所述4个子字符串中获取预定数量的字符,拼接得到所述第二链接地址;

    将获取到的包括所述预定数量的字符的4个字符串中的任意一个字符串确定所述第二链接地址的url。

    6.根据权利要求1至5中任一项所述的方法,其特征在于,在根据所述第二链接地址生成所述二维码之后,所述方法还包括:

    获取预设尺寸的目标图像;

    将所述目标图像插入所述二维码中。

    7.一种二维码生成装置,其特征在于,包括:

    第一生成模块,用于根据获取到的参数信息与调用接口的统一资源定位符url生成第一链接地址;

    第一获取模块,用于根据所述第一链接地址获取第二链接地址,其中,所述第二链接地址的长度小于所述第一链接地址的长度;

    第二生成模块,用于根据所述第二链接地址生成用于记载信息的二维码。

    8.根据权利要求7所述的装置,其特征在于,所述装置还包括:

    接收模块,用于接收触发生成所述二维码的触发指令,其中,所述触发指令中携带有所述参数信息;

    第二获取模块,用于根据所述触发指令获取所述url。

    9.一种计算机可读的存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至6任一项中所述的方法。

    10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至6任一项中所述的方法。

    技术总结
    本发明提供了一种二维码生成方法及装置,其中,该方法包括:根据获取到的参数信息与调用接口的统一资源定位符URL生成第一链接地址;根据该第一链接地址获取第二链接地址,其中,该第二链接地址的长度小于该第一链接地址的长度;根据该第二链接地址生成用于记载信息的二维码,可以解决相关技术中生成的二维码内容疏密不一,格式不同影响效果的问题,从长链接地址中截取长度相同的短链接底地址,基于短链接地址生成样式一致且清晰的二维码。

    技术研发人员:尹茂胜
    受保护的技术使用者:青岛海尔科技有限公司;海尔智家股份有限公司
    技术研发日:2020.12.15
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-18743.html

    最新回复(0)