图片合成方法及装置与流程

文档序号:11842729阅读:169来源:国知局
图片合成方法及装置与流程

本申请涉及互联网技术领域,尤其涉及一种图片合成方法及装置。



背景技术:

基于互联网的推广活动经常采用在网页上或社交平台上扩散图片的形式,在一些活动中,需要在短时间内为众多用户生成大量不同的图片。这些图片通常是将原始素材组合后生成,例如,对由背景图像、前景图像、前景文字组成的原始素材,将前景图像和前景文字绘制在背景图像的指定位置,即可完成图片的合成。

现有技术中,客户端/服务器结构的应用通常采用两种方式来进行图片的生成,第一种是由服务器将原始素材组合为图片后,下发给客户端;第二种是服务器将原始素材和如何将原始素材组合为图片的指导文件发送给客户端,由客户端根据指导文件将原始素材组合后生成图片。

在短时间内要生成大量不同图片的应用场景中,由于将原始素材组合为图片需要一定的处理时间,第一种方式会造成服务器端压力过大,对服务器的处理性能和服务器的数量存在很大挑战;由于合成一张图片所需的原始素材的总字节数远远超过该张图片的字节数,第二种方式会消耗较多的用户流量,对网络带宽有限的用户还会造成响应速度过慢,给用户带来不良体验。



技术实现要素:

有鉴于此,本申请提供一种图片合成方法,应用服务器上,所述方法包括:

接收用户通过客户端对图片的请求;

将所述图片的共用图像、用于生成所述图片专用图像的原始素材和配置文件下发给所述客户端,供所述客户端根据配置文件,采用接收的原始素材和共用图像生成所述图片;所述共用图像由部分所述图片的原始素材生成。

本申请还提供了一种图片合成装置,应用服务器上,所述装置包括:

请求接收单元,用于接收用户通过客户端对图片的请求;

素材响应单元,用于将所述图片的共用图像、用于生成所述图片专用图像的原始素材和配置文件下发给所述客户端,供所述客户端根据配置文件,采用接收的原始素材和共用图像生成所述图片;所述共用图像由部分所述图片的原始素材生成。

由以上技术方案可见,本申请的实施例通过将图片的共用图像在服务器上合成,将图片的专用图像在客户端合成,不仅大大降低了服务器的负荷,在占用少量服务器资源的条件下能够实现高并发的图片合成;同时限制了需要传输给客户端的原始素材的大小,减少客户端的流量消耗。

附图说明

图1是一个例子中一个推广活动中所使用的两张图片;

图2是本申请实施例中一种图片合成方法的流程图;

图3是图1的例子中图片的共用图像;

图4是图1的例子中资源文件包的组成示意图;

图5是本申请应用示例中生成合成图片时客户端和服务器的处理过程示意图;

图6是图1的例子中在客户端合成的图片示例图;

图7是应用本申请实施例的服务器一种硬件结构图;

图8是本申请实施例中一种图片合成装置的逻辑结构图。

具体实施方式

在推广活动中,需要在短时间内生成的大量不同图片往往具有较多的共性元素,例如相同的背景图像、公司logo(徽标)、活动名称等等,而图片之间的不同之处则通常较少。例如,在支付宝推出的输口令抢红包活动中使用的两张口令图片如图1所示,这两张图片的背景图素和提示文案均相同,变化的是口令和金额信息。

根据图片的上述特性,本申请的实施例中,将需要生成的图片划分为两个部分:通用于多个用户的共用图像和对应于用户的专用图像,图片由这两部分组合而成。具体的组合方式多种多样,例如,专用图像显示在共用图像的背景上,专用图像接续在共用图像的某个边界上等等。共用图像可以对应于业务类型,某一类型的业务具有至少一个共用图像,不同类型的业务所应用的共用图像不同;共用图像也可以对应于用户类型,某一类型的用户具有至少一个共用图像,不同类型的用户所应用的共用图像不同;还可以对应于业务类型和用户类型;专用图像可以对应于一个到多个用户;本申请的实施例中不做限定。

本申请的实施例提出一种新的图片合成方法,在服务器端生成共用图像,在客户端将共用图像和一部分用来生成专用图像的原始素材合成为图片,既能减少服务器的图片合成操作,又能减小向客户端下发原始素材所需的带宽,从而解决现有技术存在的问题。本实施例中的方法应用在服务器上,其流程如图2所示。

步骤210,接收用户通过客户端对图片的请求。

步骤220,将图片的共用图像、用于生成所请求图片的专用图像的原始素材和配置文件下发给请求图片的客户端,供该客户端根据配置文件,采用接收的原始素材和共用图像生成所请求的图片。

共用图像由部分所请求图片的原始素材生成。针对需要在客户端展现给用户的大量图片,从中提取共性部分,将这些共性部分划分为共用图像。需 要说明的是,共用图像可以是适用于所有用户的共性部分,也可以是适用于一部分用户的共性部分。图片中除共用图像之外的组成部分为对应于用户的专用图像。

在划分共用图像和专用图像时,还可以考虑生成图片时原始素材组合的便利程度和所生成图片的美观程度,将一些通用于多个用户的图素划归到专用图像中。仍以图1中的口令图片为例,虽然“红包金额”、“元”在两张图片上均存在,但考虑到金额变化时该行字的间距随之变化会更为整齐美观,可以将整行字都划归专用图像,对应的共用图像如图3所示。

从合成图片所需的所有原始素材中,选择用于合成共用图像的部分原始素材,由服务器利用这部分原始素材来生成共用图像。服务器可以在接收用户通过客户端对图片的请求前,预先采用部分该图片的原始素材生成共用图像;这种方式适用于共用图像与用户请求的具体内容无关的情形。服务器也可以在收到用户通过客户端对图片的请求后,根据接收的请求采用部分该图片的原始素材生成共用图像;这种方式适用于共用图像可能因用户请求的具体内容而不同的情形。

在服务器收到客户端对图片的请求后,把共用图像、生成所请求图片专用图像所需的原始素材和配置文件下发给该客户端。其中,配置文件中包括将共用图像和下发的原始素材合成为图片时所需的操作信息,或者说,配置文件用来告知客户端如何将共用图像和下发的其他原始素材组合为图片。例如,配置文件中可以描述原始素材和共用图像的绘制方式、绘制位置、对原始素材或共用图像进行的特殊处理等等。再如,配置文件中可以包括:将用于生成专用图像的原始素材绘制在共用图像上,以及以怎样的位置、大小和/或旋转角度来绘制原始素材,或者包括确定绘制位置、大小和/或旋转角度的计算方法。

收到服务器下发的上述内容后,客户端可以按照配置文件,将共用图像和接收的原始素材合成为图片。从客户端的角度看来,共用图像也是合成图片的原始素材之一,因此客户端可以采用现有技术中合成图片的方式来实现 这一过程,不再赘述。此外,客户端在绘制图片时,可以将用户通过客户端输入的内容、指定的图像、和/或其他素材一并合成到图片中;用户还可以自定义如何上述素材与共用图像、接收的原始素材合成为图片。

根据实际应用场景的不同,服务器可以采用不同的方式来进行配置文件和用于生成所请求图片的专用图像的原始素材的下发。

例如,服务器可以为每一个用户生成该用户使用的配置文件和生成该用户图片专用图像所需的原始素材。

再如,对具有相同共用图像的图片,服务器可以将生成这些图片的专用图像所需的所有原始素材、以及对应于所有原始素材的配置文件都下发给客户端;也就是说,服务器对不同的用户下发了同样的共用图像、原始素材和配置文件。在收到用户通过客户端对图片的请求后,服务器按照客户端的请求生成对应于用户的文本信息,并将生成的文本信息下发给客户端。下发的文本信息中指明生成该用户的专用图像所使用的原始素材,客户端按照配置文件,采用与该文本信息对应的原始素材和共用图像,即可生成该用户的图片。由于处理文本信息占用的硬件资源远小于处理图像资源,这种方式进一步减轻服务器的负荷。

在一些应用场景中,不同类型的业务展现在客户端的图片所具有的共性特征不同。在这些场景中,服务器可以按照图片所应用的业务类型,来生成对应于业务类型的共用图像,将对应于业务类型的共用图像、生成应用于该业务类型的图片的专用图像所需的所有原始素材、配置文件打包成对应于该业务类型的资源文件包。在收到客户端对该业务类型图片的请求后,服务器根据接收的请求生成该业务类型的文本信息,并将生成的文本信息、对应于该业务类型的资源文件包下发给请求该业务类型的客户端。客户端结合配置文件和文本信息,将资源文件包中的共用图像和部分原始素材合成为图片。

可见,本申请的实施例中,在服务器端生成共用图像,在客户端将共用图像和部分原始素材合成为图片,这样服务器只需生成少量图片即可满足所有用户的需求,大大降低了服务器的负荷;而客户端也只需接收少量的原始 素材来生成图片,减少客户端的流量消耗。

需要说明的是,本实施例中的服务器可以是一个逻辑或物理上的服务器;也可以是两个或两个以上逻辑或物理上的服务器,由这些服务器协同完成上述方法中的各个步骤。

在本申请的一个应用示例中,服务器侧包括两个逻辑服务器,业务服务器和图片服务器,业务服务器用于接收和响应客户端的业务请求;图片服务器用于生成以及向客户端下发对应于所请求业务类型的资源文件包。

在图片服务器上,针对每种业务类型所使用的图片,划分出图片的共用图像和专用图像,并预先生成对应于业务类型的共用图像;图片服务器将生成某种业务类型图片的专用图像所需的所有原始素材、对应于该业务类型的共用图像、以及引用这些原始素材和共用图像的配置文件打包成为一个与该业务类型对应的资源文件包并保存。

以业务类型为支付宝红包的口令图片为例,图片服务器上为该业务类型生成的资源文件包的组成如图4所示,其中,bg.jpg为所有用户口令图片的共用图像;config为配置文件;其他文件为生成口令图片专用图像所需的所有原始素材,专用图像中可能用到的每个汉字和符号都是一个图像格式的原始素材。

图5所示为生成合成图片时客户端和服务器的处理过程,用户通过客户端向业务服务器发起对某种业务类型的图片的请求;业务服务器接收到客户端发来的请求后,向图片服务器发送下发资源文件包的指令,指令中包括资源文件包的业务类型和下发的客户端地址;业务服务器根据客户端的请求生成对应于该用户的文本信息并返回至该客户端。图片服务器收到业务服务器的指令,将对应于指令中业务类型的资源文件包下发给指令中的客户端。客户端收到来自业务服务器的文本信息,来自图片服务器的资源文件包后,生成完整的图片并展现给用户。

一个例子中,假设用户通过客户端向业务服务器请求支付宝红包的口令图片,业务服务器生成包括“红包金额0-9元”、“password=85599”的文 本信息下发给客户端。从图片服务器下发给客户端的资源文件包中,config文件包括如下内容:

客户端根据文字信息中“红包金额0-9元”、“找到配置文件中对应于每个字、数字或符号的原始素材,再按照配置文件中指定的位置和大小将原始素材绘制共用图像上。对文字信息中的“password=85599”,则按照配置文件中对password的指定的位置和绘制格式,将“85599”绘制在共用图像 上。在客户端上合成的图片如图6所示。

配置文件中还可以指定绘制原始素材的位置、大小、旋转角度等因素的计算方法。例如,在以(x,y)为起点,长度为length,倾角(与X轴夹角)为angle的直线上绘制包括N个字符的字符串,可以在配置文件中,指定将第i个字符对应的原始素材图像的中心位置为:

(xi,yi)=(x+(i*length/N)*cos(angle),y+(i*length/N)*sin(angle))

指定每个字符绘制时原始素材图像的大小为:

(width,height)=(length/N,length/N)

如果希望每个字符随机旋转一定角度,可指定每个字符绘制时原始素材图像的旋转角度为:

angle+random(rotate)-rotate/2

其中,rotate为对应于每个字符的原始素材图像在该直线倾角的基础上最大的可随机旋转的角度。

与上述流程实现对应,本申请的实施例还提供了一种图片合成装置。该装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为逻辑意义上的装置,是通过所在计算设备的CPU(Central Process Unit,中央处理器)将对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了图7所示的CPU、内存以及非易失性存储器之外,生成合成图像的装置所在的设备通常还包括用于实现网络通信功能的板卡等其他硬件。

图8所示为本申请实施例提供的一种图片合成装置,应用在服务器上,从功能上划分,所述装置包括请求接收单元和素材响应单元,其中:请求接收单元用于接收用户通过客户端对图片的请求;素材响应单元用于将所述图片的共用图像、用于生成所述图片专用图像的原始素材和配置文件下发给所述客户端,供所述客户端根据配置文件,采用接收的原始素材和共用图像生成所述图片;所述共用图像由部分所述图片的原始素材生成。

可选的,所述装置还包括:文本响应单元,用于根据所述请求生成对应 于用户的文本信息并下发给所述客户端;供所述客户端根据配置文件,采用与所述文本信息对应的原始素材和共用图像生成所述图片。

可选的,所述共用图像包括按照图片应用的业务类型,采用部分原始素材生成的对应于业务类型的共用图像;所述装置还包括:资源文件包生成单元,用于将对应于业务类型的共用图像、生成应用于所述业务类型的专用图像所需的所有原始素材和配置文件打包为资源文件包;所述素材响应单元具体用于:将所述资源文件包下发给请求所述业务类型的客户端。

可选的,所述装置还包括第一共用图像单元或第二共用图像单元,其中:第一共用图像单元用于在接收用户通过客户端对图片的请求前,预先采用部分所述图片的原始素材生成共用图像;第二共用图像单元用于在收到用户通过客户端对图片的请求后,根据所述请求采用部分所述图片的原始素材生成共用图像。

可选的,所述配置文件中包括:将用于生成专用图像的原始素材绘制在共用图像上的位置、大小和/或旋转角度,或用来确定所述位置、大小和/或旋转角度的计算方法。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随 机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1