发明内容
本申请实施例提供一种自动排版方法和云服务平台,用以提供一种新的自动排版方法。
第一方面,本申请实施例提供一种自动排版方法,该方法可由云服务平台执行。该方法包括:云服务平台接收第三方服务器发送的排版请求,所述排版请求中携带有目标分辨率和素材,所述素材包括图片和文字;所述云服务平台在存储的多个模板中选择第一模板,所述第一模板的模板分辨率与所述目标分辨率匹配;所述第一模板中包括至少一个区域,每个区域用于放置不同的素材;所述云服务平台将所述素材嵌套入所述第一模块,得到排版结果;所述云服务平台将所述排版结果发送给终端设备,所述终端设备显示所述排版结果。
在本申请实施例中,云服务平台可以根据用户的需求,自动生成符合用户需求的排版结果。比如,根据用户需求的分辨率选择合适的模板,然后将用户提供的素材嵌套到模板中,得到排版结果。这一过程中,用户参与度较高,有助于提升用户体验。
在一种可能的设计中,所述第一模板的模板分辨率与所述目标分辨率匹配,包括:所述第一模板的模板分辨率的长宽比等于所述目标分辨率的长宽比;或者所述第一模板的模板分辨率的长宽比与所述目标分辨率的长宽比之间的第一差值,小于所述多个模板中除所述第一模板之外的其它模板的模板分辨率的长宽比与所述目标分辨率的长宽比之间的第二差值;或者所述第一模板的模板分辨率的长宽比与所述目标分辨率的长宽比之间的差值在预设范围之内。
在本申请实施例中,云服务平台选择出的模板的分辨率较为符合用户需求的目标分辨率,即云服务平台可以根据用户的需求,自动生成符合用户需求的排版结果。这一过程中,用户参与度较高,有助于提升用户体验。
在一种可能的设计中,在所述云服务平台将素材嵌套入所述第一模块,得到排版结果之前,所述云服务平台确定所述第一模板的模板分辨率的长宽比大于所述目标分辨率的长宽比;所述云服务平台将素材嵌套入所述第一模块,得到排版结果,包括:所述云服务平台确定所述第一模板中用于放置图片Pi的目标区域;所述云服务平台将所述图片Pi的宽调整到等于所述目标区域的宽,将调整后的图片Pi嵌套入所述目标区域中;其中,所述i为从1取到n的正整数,所述n为所述素材中包括的图片数量。
在本申请实施例中,当选择出的模板的分辨率大于目标分辨率时,可以将图片Pi的宽调整到等于选择出的模板中的目标区域的宽,然后将调整后的图片Pi嵌套入目标区域中。通过这种方式,云服务平台可以自适应的调整用户提供的图片的尺寸,以适配模板中的区域,得到效果较好的排版结果,有助于提升用户体验。
在一种可能的设计中,在所述云服务平台将素材嵌套入所述第一模块,得到排版结果之前,所述云服务平台确定所述第一模板的模板分辨率的长宽比小于等于所述目标分辨率的长宽比;所述云服务平台将素材嵌套入所述第一模块,得到排版结果,包括:所述云服务平台确定所述第一模板中用于放置图片Pi的目标区域;所述云服务平台将所述图片Pi的长调整到等于所述目标区域的长,将调整后的图片Pi嵌套入所述目标区域中;其中,所述i为从1取到n的正整数,所述n为所述素材中包括的图片数量。
在本申请实施例中,当选择出的模板的分辨率小于等于目标分辨率时,可以将图片Pi的长调整到等于选择出的模板中的目标区域的长,然后将调整后的图片Pi嵌套入目标区域中。通过这种方式,云服务平台可以自适应的调整用户提供的图片的尺寸,以适配模板中的区域,得到效果较好的排版结果,有助于提升用户体验。
在一种可能的设计中,所述云服务平台将所述素材嵌套入所述第一模块,得到排版结果,包括:若所述素材中包括的图片Pi的边缘存在白色透明点,所述云服务平台将所述图片Pi边缘的白色透明点切除;若切除白色透明度之后的图片Pi的面积小于所述第一模板中的目标区域所占面积,则所述云服务平台将切除白色透明度之后的图片Pi放大;所述目标区域为所述第一模板中用于放置所述图片Pi的区域;所述云服务平台将放大后的图片Pi的重心移到所述目标区域的预设中心;其中,所述i为从1取到n的正整数,所述n为所述素材中包括的图片数量。
在本申请实施例中,云服务平台将图片Pi的重心移动到选择出的模板中的目标区域的预设中心处。通过这种方式,有助于调整模板中不同区域中图片的位置,得到效果较好的排版结果,有助于提升排版效果。
在一种可能的设计中,所述图片Pi的重心为所述图片Pi中目标对象的中心,或者为所述图片Pi的几何中心。
在一种可能的设计中,所述目标对象为预设的目标对象;或者,所述目标对象为根据所述图片Pi上的待拍摄主体确定的目标对象。
在一种可能的设计中,所述云服务平台将所述素材嵌套入所述第一模块,得到排版结果,包括:所述云服务平台根据所述图片的长宽比,从所述第一模板的设定区域的多种形状中选择第一形状;所述设定区域为所述第一模板中用于放置所述素材中包括的图片的区域;所述第一形状的长宽比与所述素材中包括的图片的长宽比相匹配;所述云服务平台将所述素材中包括的图片设置在所述设定区域中,且将所述素材中包括的图片的边缘形状调整为所述第一形状。
在本申请实施例中,云服务平台根据图片的长宽比选择模板中的设定区域的一种形状,然后将图片调整为这种形状。通过这种方式,有助于调整模板中不同区域中图片的形状,得到效果较好的排版结果,有助于提升排版效果。
第二方面,本申请实施例提供一种云服务平台,该云服务平台包括:接收器。处理器,存储器和发送器;
接收器,用于接收第三方服务器发送的排版请求,所述排版请求中携带有目标分辨率和素材,所述素材包括图片和文字;
存储器,用于存储多个模板;
处理器,用于存储的多个模板中选择第一模板,所述第一模板的模板分辨率与所述目标分辨率匹配;所述第一模板中包括至少一个区域,每个区域用于放置不同的素材;
所述处理器还用于,将所述素材嵌套入所述第一模块,得到排版结果;
发送器,用于将所述排版结果发送给终端设备,所述终端设备显示所述排版结果。
在一种可能的设计中,所述第一模板的模板分辨率与所述目标分辨率匹配,包括:所述第一模板的模板分辨率的长宽比等于所述目标分辨率的长宽比;或者所述第一模板的模板分辨率的长宽比与所述目标分辨率的长宽比之间的第一差值,小于所述多个模板中除所述第一模板之外的其它模板的模板分辨率的长宽比与所述目标分辨率的长宽比之间的第二差值;或者所述第一模板的模板分辨率的长宽比与所述目标分辨率的长宽比之间的差值在预设范围之内。
在一种可能的设计中,所述处理器还用于:确定所述第一模板的模板分辨率的长宽比大于所述目标分辨率的长宽比;所述处理器在用于将素材嵌套入所述第一模块,得到排版结果时,具体用于:确定所述第一模板中用于放置图片Pi的目标区域;将所述图片Pi的宽调整到等于所述目标区域的宽,将调整后的图片Pi嵌套入所述目标区域中;其中,所述i为从1取到n的正整数,所述n为所述素材中包括的图片数量。
在一种可能的设计中,所述处理器还用于:确定所述第一模板的模板分辨率的长宽比小于等于所述目标分辨率的长宽比;所述处理器在用于将素材嵌套入所述第一模块,得到排版结果时,具体用于:确定所述第一模板中用于放置图片Pi的目标区域;将所述图片Pi的长调整到等于所述目标区域的长,将调整后的图片Pi嵌套入所述目标区域中;其中,所述i为从1取到n的正整数,所述n为所述素材中包括的图片数量。
在一种可能的设计中,所述处理器在用于将所述素材嵌套入所述第一模块,得到排版结果时,具体用于:若所述素材中包括的图片Pi的边缘存在白色透明点,将所述图片Pi边缘的白色透明点切除;若切除白色透明度之后的图片Pi的面积小于所述第一模板中的目标区域所占面积,则将切除白色透明度之后的图片Pi放大;所述目标区域为所述第一模板中用于放置所述图片Pi的区域;将放大后的图片Pi的重心移到所述目标区域的预设中心;其中,所述i为从1取到n的正整数,所述n为所述素材中包括的图片数量。
在一种可能的设计中,所述图片Pi的重心为所述图片Pi中目标对象的中心,或者为所述图片Pi的几何中心。
在一种可能的设计中,所述目标对象为预设的目标对象;或者,所述目标对象为根据所述图片Pi上的待拍摄主体确定的目标对象。
在一种可能的设计中,所述处理器在用于将所述素材嵌套入所述第一模块,得到排版结果时,具体用于:根据所述图片的长宽比,从所述第一模板的设定区域的多种形状中选择第一形状;所述设定区域为所述第一模板中用于放置所述素材中包括的图片的区域;所述第一形状的长宽比与所述素材中包括的图片的长宽比相匹配;将所述素材中包括的图片设置在所述设定区域中,且将所述素材中包括的图片的边缘形状调整为所述第一形状。
第三方面,本申请实施例提供一种云服务平台。该云服务平台包括:处理器和存储器;其中,所述存储器用于存储一个或多个计算机程序;当所述存储器存储的一个或多个计算机程序被所述处理器执行时,使得所述云服务平台能够实现本申请实施例第一方面及其第一方面任一可能设计的技术方案。
第四方面,本申请实施例还提供了一种云服务平台,所述云服务平台包括执行第一方面或者第一方面的任意一种可能的设计的方法的模块/单元;这些模块/单元可以通过硬件实现,也可以通过硬件执行相应的软件实现。
第五方面,本申请实施例的一种芯片,所述芯片与云服务平台中的存储器耦合,执行本申请实施例第一方面及其第一方面任一可能设计的技术方案;本申请实施例中“耦合”是指两个部件彼此直接或间接地结合。
第六方面,本申请实施例的一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,当计算机程序在电子设备上运行时,使得所述电子设备执行本申请实施例第一方面及其第一方面任一可能设计的技术方案。
第七方面,本申请实施例的中一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行本申请实施例第一方面及其第一方面任一可能设计的技术方案。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
以下,对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
本申请实施例涉及的云服务平台,用于运行本申请实施例提供的自动排版方法的一个或多个服务器。
本申请实施例涉及的第三方服务器,用于提供素材的服务器。第三方服务器可以请求云服务器平台根据提供的素材自动排版,生成海报或者横幅等。
本申请实施例涉及的终端设备,与云服务平台连接,当云服务平台采用本申请实施例提供的自动排版方法生成最终的排版后,将该排版发送给终端设备,终端设备显示该排版。具体而言,终端设备可以在应用程序(application,app)的显示界面中显示该排版。其中,应用程序是能够实现某项或多项特定功能的计算机程序。通常,终端设备中可以安装多个应用程序。比如,相机应用、短信应用、彩信应用、各种邮箱应用、微信、腾讯聊天软件(QQ)、WhatsApp Messenger、连我(Line)、照片分享(instagram)、Kakao Talk、钉钉等。下文中提到的应用程序,可以是终端设备出厂时自带的应用程序,也可以是用户在使用终端设备的过程中从网络侧下载的应用程序。
举例来说,第三方服务器提供素材,请求云服务平台根据该素材设计排版,然后将排版发送给终端设备。比如,第三方服务器是关于音乐的素材,比如最新流行的音乐的名称和歌手的图像等。云服务平台根据这些素材运行本申请实施例提供的自动排版方法的代码,生成排版,然后将该排版发送给终端设备。终端设备检测到用户触发启动云音乐的app的操作时,终端设备显示该排版,在预设时间之后或者在检测到用于取消显示该排版的操作时,显示云音乐app的显示界面。
请参见图1所示,为本申请实施例提供的一种应用场景的示意图。如图1所示,该应用场景包括终端设备、云服务平台、第三方服务器。其中,第三方服务器向云服务平台发送排版请求,该排版请求中携带有第三方服务器提供的素材(比如图片、文字等)。比如,第三方服务器是支付宝,支付宝提供图片和文字等素材,请求云服务平台为其排版。云服务平台根据素材生成排版之后,将排版结果发送给终端设备。终端设备显示该排版结果(比如终端设备检测到用户触发点击支付宝的图标的操作时,显示该排版结果,在预设时长之后或者在检测到用于取消显示该排版结果的操作时,显示支付宝的显示界面)。
需要说明的是,云服务平台和第三方服务器可以是同一服务器平台,继续以支付宝为例,支付宝服务器可以自己基于本申请实施例提供的自动排版方式设计排版,然后将排版结果发送给终端设备(比如安装有支付宝的终端设备)。若云服务平台和第三方服务器不是同一服务器平台,第三方服务器可以请求专门设计排版的平台为其设计排版。云服务平台可以将排版发送给终端设备(比如华为云服务平台可以为第三方服务器设计排版,将设计的排版结果发送给华为终端设备)。
在本申请实施例中,云服务平台可以根据用户的需求,从多个模板中选择一个合适的模板。比如,第三方服务器的用户可以提出需求,比如设计成多大目标分辨率的排版结果。第三方服务器将该需求发送给云服务平台,云服务平台从多个模板中选择一个模板分辨率与该目标分辨率的相匹配的模板,然后将第三方服务器提供的图片、文字等嵌套到选择出的模板中,得到排版结果。通过这种方式,在排版的过程中,用户的参与度较多,符合用户需求,提升用户体验。
本申请实施例涉及的排版结果,包括广告、海报、横幅、网页等等,本申请实施例不限定。
本申请实施例涉及的分辨率,即图片所包含的像素的个数。图片的像素点越多,画面就越清晰。其中,像素为一张图片上的最小成像单元。一个像素可以对应图像上的一个坐标点。像素可以包括一个参数(比如灰度),也可以是多个参数的集合(比如灰度、颜色等)。通常,一张图片在水平方向上和垂直方向上的像素点个数不同。比如,一张图片的分辨率为1280*768,即该图片在水平方向上的像素点数为1024个,垂直方向上的像素点数为768个。通常,一张图片的尺寸也可以用分辨率表示,比如,分辨率为1280*768的图片的尺寸即为1280*768。
本申请实施例涉及的目标分辨率,即第三方服务器自定义的分辨率,是为了满足第三方服务器的个性需求,比如,第三方服务器想要设计一个较小排版结果,那么第三方服务器可以定义目标分辨率较小。云服务平台可以根据第三方服务器提供的目标分辨率选择较为合适模板,生成排版结果。
本申请实施例涉及的图片,可以是一张图片,也可以仅是图像参数的集合,本申请实施例不限定。
本申请实施例涉及的多个,是指大于或等于两个。
需要说明的是,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。且在本发明实施例的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
下面介绍终端设备的结构,该终端设备比如是图1所示的应用场景中的终端设备。
以下介绍终端设备、用于这样的终端设备的图形用户界面(graphical userinterface,GUI)、和用于使用这样的终端设备的实施例。在本申请一些实施例中,终端设备可以是便携式终端,诸如手机、平板电脑、具备无线通讯功能的可穿戴设备(如智能手表)等。该便携式终端包含能够与其他设备进行通信的器件(比如天线,移动通信模块或无线通信模块)。便携式终端的示例性实施例包括但不限于搭载
或者其它操作系统的便携式终端。上述便携式终端也可以是其它便携式终端,只要能够与其他设备进行通信即可。还应当理解的是,在本申请其他一些实施例中,上述终端设备也可以不是便携式终端,而是能够与其他设备进行通信的台式计算机。
在本申请另一些实施例中,终端设备还可以具有能够采用本申请实施例提供的自动排版方法对第三方服务器提供的素材进行排版的功能,即图1所示的应用场景中,云服务平台的排版过程由终端设备进行。示例性的,第三方服务器将排版请求发送给云服务平台,然后云服务平台将排版请求发送给终端设备,终端设备采用本申请实施例提供的自动排版方法,对素材进行排版,得到排版结果,然后显示该排版结果。以第三方服务器是支付宝服务器为例,终端设备(比如安装有支付宝应用的终端设备)接收到素材之后可以暂时存储该素材,当检测到用户触发支付宝应用的操作时,终端设备采用本申请实施例提供的自动排版方法,对素材进行排版,得到排版结果,并显示该排版结果。
以终端设备是手机为例,图2示出了手机100的结构示意图。
手机100可以包括处理器110,外部存储器接口120,内部存储器121,天线1,天线2,移动通信模块151,无线通信模块152,传感器模块180,按键190,显示屏194,按键190等。其中传感器模块180可以包括触摸传感器180K等(手机100还可包括其他传感器比如距离传感器、指纹传感器、温度传感器、环境光传感器、陀螺仪传感器等,图中未示出)。
可以理解的是,本申请实施例示意的结构并不构成对手机100的具体限定。在本申请另一些实施例中,手机100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
下面对图2示出的手机100中的部件进行介绍。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。其中,控制器可以是手机100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
处理器110可以运行本申请实施例提供的自动排版方法的代码,对素材进行自动排版,具体过程将在后文介绍。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行手机100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统、应用程序(比如支付宝应用,微信应用等)的软件代码。存储数据区可存储手机100使用过程中所创建的个人数据(比如相机应用拍摄的图片、视频等)。
若手机100自身具有运行本申请实施例提供的自动排版方法,根据素材生成排版结果的功能,则内部存储器121还可以存储本申请实施例提供的自动排版方法的软件代码。当处理器110运行该代码时,实现自动排版功能。内部存储器121还可以存储第三方服务器提供的素材(比如图片和文字等)。
其中,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
外部存储器接口120,用于将外部存储器和手机100连接,其中,外部存储器包括外置存储卡(SD存储卡)和NAS存储设备等,本申请实施例不限定。为了节省内部存储器121的存储空间,手机100也可以将申请实施例提供的自动排版方法的软件代码、第三方服务器提供的素材等存储在外部存储器中。处理器110可以通过外部存储器接口120访问存储在外部存储器中的数据。
下面介绍传感器模块180的功能。
触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器180K可以将检测到的触摸操作传递给处理器110,以确定触摸事件类型,可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于手机100的表面,与显示屏194所处的位置不同。
触摸传感器180K可以辅助处理器110进行自动排版。以手机100的触摸屏显示主界面为例,主界面中包括多个应用的图标,比如支付宝应用、云音乐应用、应用市场应用等。触摸传感器180K可以检测用户在触摸屏上的触摸操作,并将该触摸操作发送给处理器110,处理器100基于该触摸操作,可以确定该触摸操作对应的图标,即确定出用户要点击的应用。假设处理器110基于触摸操作确定用户点击支付宝应用,手机100可以显示排版结果(比如该排版结果是接收云服务平台发送的排版结果)。
类似的,手机100还可以通过按键190接收输入操作,并将输入操作发送给处理器110,处理器110确定输入操作对应的图标,比如支付宝应用。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,手机100可以包括1个或N个显示屏194,N为大于1的正整数。
显示屏194用于显示主界面,或者显示某个应用的显示界面,比如支付宝应用的显示界面。当手机100检测到用户点击支付宝应用的操作时,显示屏194显示排版结果。
手机100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在本申请一些实施例中,手机100可以通过移动通信模块151或者无线通信模块152接收云服务平台发送的排版结果。
尽管图2未示出,手机100还可以包括摄像头,例如前置摄像头、后置摄像头;还可以包括马达,用于产生振动提示(比如来电振动提示);还可以包括指示器比如指示灯,用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。另外,手机100还可以包括音频模块(扬声器,受话器,麦克风,耳机接口)等。
下面介绍本申请实施例提供的自动排版方法的过程,请参见图3所示,为本申请实施例提供的自动排版方法的流程示意图,该方法可以适用于图1所示的应用场景或类似的场景。如图3所示,该方法的流程包括:
S301:第三方服务器确定目标分辨率。
示例性的,第三方服务器可以根据自身需求确定目标分辨率,比如,1280*960,1600*1200等。
S302:第三方服务器向云服务平台发送素材和目标分辨率,该素材包括图片和文字。
S303:云服务平台根据目标分辨率从多个模板中选择模板,选择出的模板的分辨率与目标分辨率相匹配。
在本申请实施例中,云服务平台中存储有多个模板。请参见图4,为本申请实施例提供的一种模板的示意图。云服务平台还存储有每个模板的相关信息。其中,相关信息包括模板的模板分辨率、模板中元素的位置,元素的尺寸等等(其中一个元素即模板中的一个区域)。举例来说,请参见图5所示,为本申请实施例提供的一种模板的相关信息。图5中所示的模板是以图4所示的模板为例的,模板的相关信息中包括模板的模板编号、模板分辨率、模板中元素的位置、尺寸等。以元素1为例,元素1的模板分辨率为1280*960,元素1的尺寸为元素1的长宽(长以x1表示,宽以y1表示)。元素1的位置为元素1距离模板边缘的距离(比如元素1距离侧面边缘的距离以a1表示,元素1距离底面边缘的距离以b1表示)。
请参见图6所示,为本申请实施例提供的云服务平台选择模板的过程示意图。如图6所示,该过程包括:
第一步,云服务平台计算目标分辨率的长宽比。
如前述内容可知,第三方服务器可以根据需求确定目标分辨率,若目标分辨率是1280*960,则长宽比为3:1。
第二步,云服务平台判断存储的多个模板中是否存在模板分辨率的长宽比与目标分辨率的长宽比相等的第一模板;若是,则执行第三步;若否,则执行第四步。
请继续参见图5所示,云服务平台中存储有每个模板的相关信息(包括模板分辨率),云服务平台可以从多个模板中寻找模板分辨率的长宽比等于目标分辨率的长宽比的第一模板。请继续参见图5所示,元素1的模板分辨率的长宽比等于3:1,等于目标分辨率的长宽比,则云服务平台确定模板1即为第一模板。
第三步,云服务平台将素材嵌套入第一模板。
具体而言,云服务平台可以将素材嵌套入第一模板中。以图4所示的模板为例,云服务平台将素材中的图片嵌套如该模板中的元素1中。其中,关于云服务平台嵌套素材的过程,将在后文介绍。
第四步,云服务平台从所有模板中选择模板分辨率的长宽比与目标分辨率的长宽比最接近的第二模板。
当云服务平台中不存在与目标分辨率的长宽比相等的第一模块,则云服务平台寻找第二模板,第二模板的模板分辨率的长宽比与目标分辨率的长宽比最接近。
举例来说,目标分辨率的长宽比为3:1,云服务平台中存储的每个模板的模板分辨率的长宽比分别为:2:1,4:1,3:2,则其中长宽比是3:2的模板与目标分辨率的长宽比最接近。
第五步,云服务平台判断第二模板的模板分辨率的长宽比是否大于目标分辨率的长宽比;若是,则执行第六步,若否,则执行第七步。
在第四步中,云服务平台确定出模板分辨率的长宽比与目标分辨率的长宽比最接近的第二模板,然后,云服务平台可以判断第二模板的模板分辨率的长宽比是否大于目标分辨率的长宽比,若大于,则执行第六步,若否,则执行第七步。
第六步,云服务平台将素材中图片的宽调整为第二模板中的元素的宽,将调整后的图片嵌套入第二模板中。
以图4所示的模板为例,云服务平台将素材中的图片的宽调整到等于元素1的宽,长可以保持不变,云服务平台将调整后的图像嵌套到第二模板中,具体的嵌套过程将在后文介绍。
第七步,云服务平台将素材中图片的长调整为第二模板中的元素的长,将调整后的图片嵌套如第二模板中。
继续以图4所示的模板为例,云服务平台将素材中图片的长调整为第二模板中的元素1的长,宽可以保持不变,云服务平台将调整后的图像嵌套到第二模板中,具体的嵌套过程将在后文介绍。
通过图6所示的模板选择过程可知,云服务平台根据第三方服务器提供的目标分辨率选择模板,首选判断是否存在模板分辨率的长宽比与目标分辨率的长宽比相等的模板,若没有,则寻找模板分辨率的长宽比与目标分辨率的长宽比最接近的模板。在另一些实施例中,云服务平台还可以寻找模板分辨率的长宽比与目标分辨率的长宽比之间的差值在预设范围之内的模板即可,无需寻找模板分辨率的长宽比与目标分辨率的长宽比相等或者最接近的模板。
在本申请另一些实施例中,云服务平台选择出的模板中可能有多个元素,每个元素可以嵌套一张图片。因此,作为一种示例,云服务器平台接收到包含目标分辨率和图片的排版请求后,先根据目标分辨率确定模板,若确定出的模板有多个,那么从中选择用于放置图片的元素个数大于等于第三方服务器发送的图片个数的模板;或者,第三方服务器也可以先发送排版请求,该排版请求中仅包括目标分辨率,云服务平台根据目标分辨率确定出模板之后,将该模板中包含的元素(用户放置图片的元素)个数发送个第三方服务器,然后第三方服务器向云服务平台提供相应数量的图片。
S304:云服务平台选择出模板后,将素材嵌套入该模板中。
下面继续以图4所示的模板为例,介绍云服务平台将图像嵌套如模板中的过程,请参见图7所示,为本申请实施例提供的一种模板中图片嵌套的方法流程示意图,如图7所示,该方法的流程包括:
第一步,若图片的边缘存在白色透明点,则云服务平台将图像边缘的白色透明点切除。
举例来说,图片边缘区域存在像素为RGB分别为255的像素点,即该像素点是白色,则云服务平台将白色像素点切除。
第二步,若切除边缘白色像素点之后的图片的尺寸小于元素1所占区域的尺寸,则云服务平台将切除白色像素点之后的图片放大,将放大后的图片放入元素1中。
举例来说,云服务平台可以根据切除边缘透明区域后,图片距离元素1边缘的距离计算需放大的最小倍数,即将切除边缘透明区域之后的图像填充满元素1即可。
当然,若切除边缘白色像素点之后的图片的尺寸大于元素1所占区域的尺寸,云服务平台暂时无需放大该图片。
第三步,云服务平台调整图片的重心到元素1的预设中心。
其中,图片的重心可以通过以下方式获取:
方式一:根据图像显著性检测(image saliency detection,ISD)获取图片中的感兴趣区域,感兴趣区域的中心点即为图片重心。
具体而言,图像显著性检测的过程可以包括,将图片分割成多个片段(每个片段作为一个像素组)。图像分割可以是将标签分配给图像中的每个像素的过程,使得具有相同标签的像素共享某些特征,即图像分割结果是图像划分不用区域,一个区域中的每个像素在某些特征是相似的,例如颜色或纹理相似。相邻区域在相同特征方面明显不同(比如颜色明显不同,和/或纹理明显不同)。因此,通过图像显著性检测算法将图像分割为不同区域之后,可以确定感兴趣区域(感兴趣区域可以是图像中多个区域中颜色或者纹理突出的区域,或者是多个区域中位于图像中间的区域),感兴趣区域的几何中心即为图片的重心。
方式二,图片的重心可以是图片中目标对象的中心,目标对象可以是第三方指定的,也可以是云服务平台自动识别出的。
举例来说,图片中包括多个对象比如包括人和动物,第三方指定目标对象是图片中的人,则云服务平台将图片中的人的中心作为图片的重心(比如,人的中心可以是图片中人所在区域的几何中心)。
再例如,云服务平台自动识别图片中的目标对象,比如云服务平台预先设置了目标对象所属的物体类型。当云服务平台识别出图片中某个对象属于预先设置的物体类型时,该对象被识别为目标对象。比如,云服务平台预先设置目标对象的物体类型包括“人物”、“动物”、“植物”等,云服务平台识别出图片中一个对象属于动物类型,所以该对象被识别为目标对象。
比如,目标对象还可以是多个物体类型。比如,云服务平台识别出一张图片上包括两个对象分别属于预先设置的不同的物体类型(比如,人物”类型和“动物”类型),所以这两个对象都是目标对象。
当然,云服务平台可以预先设置有多个物体类型的优先级顺序:比如,人物高于动物,动物高于建筑。示例性的,假设一张图片上包括人物、动物和建筑,则优先级最高的物体类型人物为目标对象,或者优先级最高的两个物体类型人物和动物为目标对象。再示例性的,若图片上不包括人物,而包括动物和其他物体,则图片上包括的优先级最高的动物为目标对象。
云服务平台确定图片中的目标对象之后,确定目标对象所在区域(比如目标对象的轮廓所围成的区域)的几何中心,该几何中心即为图片中的重心。
方式三,图片的重心可以基于现有算法工具确定。其中,现有算法工具可以是OpenCV、Matlab等,本申请实施例不多赘述。
方式四,图片的重心是整张图片的几何中心。
当然,在实际应用中,还可以有其它方式获取图片的重心,本申请实施例不限定。
云服务平台确定图片的重心之后,移动图片移动到重心与元素1的预设中心重合的位置处。其中,预设中心可以是设计人员设计模板时,设置的模板中元素的中心。举例来说,请参见图4所示,元素1中预设中心为A点。若图片的重心的坐标为(240,110),元素1的预设中心是(300,180),云服务平台将图片整体平移,使得重心移动到预设中心处。
在实际应用中,云服务平台移动图片的过程中,可能会出现图片的边缘移动到元素1内部的过程,这种情况下,云服务平台可以放大图像,然后将放大后的图片的重心移动到元素1的预设中心,即移动图片的位置之后,保证图片能够填充满元素1,即保证元素1中没有空白区域(即没有图片填充的区域)。
上述图7所示的实施例中,是以将一张图片嵌入到图4所示的模板中的元素1为例的。在实际应用中,模板中包括多个用于填充图片的元素,即一个模板中包括多个元素,每个元素可以填充一张图片。云服务平台可以对模板中每个元素采用图7所示的方式填充图片;或中,云服务平台可以将多张图片中的主图按照图7所示的方式填充到目的元素中,将除去主图之外的其他图片(为了方便区分主图,下文称之为背景图),填充到其它元素中(可以按照图7所示的方式,也可以按照其他方式)。其中,主图可以是第三方服务器可以提供多张图片中的一张图像,比如主图可以是第三方服务器的用户指定某一张图片作为主图,其他图片为背景图。因此,第三方服务器可以告知云服务平台主图是哪一张,比如第三方服务器可以将主图的信息(比如每张图片设置一个编号,主图的信息即主图的编号)携带于排版请求中发送给云服务平台,这样,云服务平台就知晓哪一张图片时主图。
在本申请另一些实施例中,若选择出的模板中包括多个用于放置图片的元素(图4所示的模板中只有元素1用于放置图片)时,云服务平台还可以从多个元素中选择放置主图的目标元素,比如选择多个元素中所占面积最大的元素为目标元素,或者选择位于模板中间的元素为目标元素,或者目标元素也可以是由第三方服务器指定的,比如云服务平台可以将选择出的模板发送给第三方服务器,第三方服务器在该模板中的多个元素中指定哪一个元素是目标元素。
云服务平台确定放置主图的目标元素之后,还可以依次确定放置背景图的其它元素,可以随机匹配背景图和其它元素,或者也可以按照图片的长宽比选择长宽比最接近该图片的长宽比的元素。
对于模板中包括多个用于填充图片的元素,云服务平台可以在每个元素中填充图片之后,调整图片的位置,保证图片之间没有重叠部分。比如,多张图片中存在两张图片有部分区域覆盖在主图上,则移动这两张图片或者缩小这两张图片,避免其它图片遮挡主图。
S305:云服务平台将排版结果发送给手机100。
S306:手机100显示该排版结果。
可选的,第三方服务器向云服务平台发送排版请求时,可以告知云服务平台将排版结果发送给哪些终端设备,或者告知终端设备通过哪些应用程序显示该排版结果。比如,支付宝为例,支付宝向云服务平台发送排版请求的同时、之前或者之后,可以告知云服务平台将排版结果发送给安装支付宝的终端设备。再比如,继续以支付宝为例,支付宝向云服务平台发送排版请求的同时、之前或者之后,可以告知云服务平台将排版结果通过支付宝和淘宝显示。因此,终端设备接收到云服务平台发送的排版结果之后,若检测到用户触发启动支付宝或者淘宝的操作时,显示该排版结果。
在上面的实施例中,图4所示的模板中每个元素放置的内容是事先确定好的,即元素1只能放置图片,元素2只能设置文字。这种情况下,云服务平台将图片默认设置在元素1中。在本申请另一些实施例中,图4所示的模板中每个元素要放置的内容并未事先确定,即每个元素要放置图片还是文字并不是事先设置好的。这种情况下,云服务平台可以按照一定策略选择图片放置在哪一个元素中,文字放置在哪一个元素中。
请参见图8所示,为本申请实施例提供的另一种模板的示意图。如图8所示,该模拟中包括3个元素,每个元素并未事先设置好放置什么内容。下面介绍图8所示的模板中,素材嵌套过程。请参见图9所示,为本申请实施例提供的排版方式的示意图。图9中以在模板中嵌套主图为例,如图9所示,该方法的流程包括:
第一步,从模板中选择目标元素。
举例来说,目标元素可以是模板中尺寸最大的元素,或者目标元素可以是位于模板中心位置的元素,或者目标元素是第三方服务器指定的(云服务平台可以将模板呈现在第三方服务器中,第三方服务器的用户可以指定哪一个元素是目标元素,即指定哪一个元素放置主图)。
第二步,确定目标元素的多个备用版式。
举例来说,目标元素可以有多个不同的版式(版式可以包括目标元素的形状)。以图8所示模板中的元素1为例,元素1可以是正方形、长方形的,心形等。
第三步,根据主图的长宽比,从备用版式中选择最佳版式。
具体而言,若主图的长宽比较大,即主图长度较大,宽度较小,则从备用版式中选择长度较大的版式,比如长方形版式,即主图呈现长方形,进一步,还可以选择竖直形的长方形或者水平型的长方形。
第四步,将主图嵌入选择出的最佳版式中。
具体而言,云服务平台可以按照图7所示的过程将主图嵌入选择出的最佳版式中,在此不再赘述。当然,云服务平台还可以将主图的边缘形状调整为所述最佳版式的形状。
第五步,将背景图(除去主图之外的其它图)嵌入其它元素中。
当然,云服务平台可以按照图7所示的过程将背景图嵌入到其它元素中,在此不再赘述。
以上的实施例中介绍图片如何嵌入模板中,下面介绍文字如何嵌入模板中。
以图4所示的模板为例,将文字放置在元素2和元素3中,根据文字所占的行数和字数,调整文字的大小和位置。比如,如果文字较多时,且文字放置在元素2中,则文字的行数增加,字体缩小。以图8所示的模板为例,由于并未规定哪个元素放置文字,所以文字可以放置在每个元素中,即呈现每个元素中的图片上。
在本申请另一些实施例中,模板中每个元素中可以设置文字的位置和大小。文字的嵌套过程可以是从第三方服务器提供的多个文字中选择一个文字对应的放置在一个元素中即可。通常,图片的大小,元素的大小以及文字的大小设置相对合适时,会使得最终排版结果效果较好。因此,云服务平台在根据图片的长宽比嵌套到一个元素的最佳版式之后,还可以对文字的大小进行调整。比如,根据图片的实际尺寸(比如长或宽)和模板尺寸(元素尺寸)的放大比例(可以但不限于由模板的宽和图片的宽确定比值,该比值即放大比例),根据该放大比例对文字进行大小调整。因为,在前述的图片嵌套的过程中,会放大图像,将放大的图片的中心移动到元素的预设中心,因此图片实际上被放大了,而图片变大后,文字的尺寸也可以适应的调整。因此,当计算出图片的实际尺寸相对于模板尺寸的放大比例之后,可以按照该放大比例计算文字的比例。具体而言,云服务平台可以将文字的当前的尺寸除以该放大比例,得到的尺寸即为文字的最终尺寸,通过这种方式可以以保证文字的大小的可读性,有助于提升用户体验。
请参见图10所示,为本申请实施例提供的一种排版结果的示例,如图10所示,该排版结果中每个元素中放置图片,且每张图片上设置有文字。在图10所示的示例中,每个元素中图片是相同的,实际上每个元素中的图片可以不同,本申请实施例不限定。
如图10所示,每个元素中的预设中心不同,所以每个元素中的图片的重心位置不同,所以排版结果中不同区域的图片的呈现位置不同。而且每个元素中的文字的显示位置不同。关于在图10中每个元素中嵌套图片、文字的过程,前述内容已经描述过,在此不赘述。
通过以上描述可知,本申请实施例提供的技术方案中,云服务平台可以根据用户需求选择模板,比如选择出的模板的分辨率和用户需求的目标分辨率是相匹配的,并且,素材是用户提供的,在这一过程中,用户(第三方服务器的用户)参与度较高,提升用户体验。
本申请实施例提供的自动排版方案中,元服务平台可以根据第三方服务器提供的素材自动排版生成排版结果,所以本申请实施例提供的自动排版方案可以进行批量生成,只要用户提供素材,云服务平台采用该自动排版方案就可以得到排版结果,因此,本申请实施例提供的自动排版方案的实用性、普适性更强。
需要说明的是,本申请实施例提供的自动排版方案可以适用于多种场景,比如,网页的排版、或者app中广告的排版设计,或者海报的设计,或者多组图片生成拼图的场景,或者,微信公众号的设计,或者卡片(比如明信片、书签等)的排版设计等等。
以广告为例,支付宝可以提供图片,请求云服务平台根据图片进行排版设计,生成广告,然后将广告投放到终端设备,以方便用户查看。以明信片为例,终端设备中的应用程序可以提醒用户设计生日祝福卡片发送给好友,终端设备可以将存储的图片(比如自己和好友的图片)发送给云服务平台,云服务平台根据这些图片,生成生日祝福卡片(或者终端设备也可以自己根据这些图片生成生日祝福卡片)。
本申请的各个实施方式可以任意进行组合,以实现不同的技术效果。
上述本申请提供的实施例中,从云服务平台作为执行主体的角度对本申请实施例提供的方法进行了介绍。为了实现上述本申请实施例提供的方法中的各功能,云服务平台可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。
基于相同的构思,图11所示为本申请提供的另一种云服务平台1100。如图11所示,云服务平台1100可以包括:处理单元1101、发送单元1102、接收单元1103。处理单元1101可以执行图3所示的实施例中S303、S304,和/或用于支持本文所描述的技术的其它过程。发送单元1102可以执行图3所示的实施例中的S305,和/或用于支持本文所描述的技术的其它过程。接收单元1103可以执行图3所示的实施例中的S302,和/或用于支持本文所描述的技术的其它过程。具体的方法可参考上文及附图中的相关描述,此处不再赘述。
在本发明实施例中,云服务平台1100对应各个功能划分各个功能模块的形式来呈现,或者,可以采用集成的方式划分各个功能模块的形式来呈现。这里的“模块”可以指特定应用集成电路(application-specific integrated circuit,ASIC),执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。
在一个简单的实施例中,本领域的技术人员可以想到,还可以将图11所示的云服务平台1100通过如图12所示的结构实现。
如图12所示,为本申请提供的另一种云服务平台1200。如图12所示,云服务平台1200可以包括:存储器1201、处理器1202、系统总线1203以及通信接口1204。其中,处理器1202、存储器1201以及通信接口1204通过系统总线1203连接。存储器1201用于存储计算机执行指令,还用于存储多个模板,当处理器1202执行存储器1201存储的计算机执行指令时,云服务平台1200可以执行图3所示的实施例中的全部或部分方法步骤(比如S303、S304、S305)。具体的方法可参考上文及附图中的相关描述,此处不再赘述。
其中,通信接口1204可以是收发器,或者是独立的接收器和发送器。假设通信接口1204是独立的接收器和发送器,其中,接收器可以用于执行图3所示的实施例中的S302,和/或用于支持本文所描述的技术的其它过程。发送器可以用于执行图3所示的实施例中的S305,和/或用于支持本文所描述的技术的其它过程。
本申请实施例还提供一种计算机可读存储介质,该存储介质可以包括存储器,该存储器可存储有程序,该程序被执行时,使得电子设备执行包括如前的图3、图6、图7、图9所示的方法实施例中记载的全部或部分步骤。
本申请实施例还提供一种包含计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行包括如前的图3、图6、图7、图9所示的方法实施例中记载的全部或部分步骤。
上述实施例中所用,根据上下文,术语“当…时”可以被解释为意思是“如果…”或“在…后”或“响应于确定…”或“响应于检测到…”。类似地,根据上下文,短语“在确定…时”或“如果检测到(所陈述的条件或事件)”可以被解释为意思是“如果确定…”或“响应于确定…”或“在检测到(所陈述的条件或事件)时”或“响应于检测到(所陈述的条件或事件)”。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘)等。
为了解释的目的,前面的描述是通过参考具体实施例来进行描述的。然而,上面的示例性的讨论并非意图是详尽的,也并非意图要将本申请限制到所公开的精确形式。根据以上教导内容,很多修改形式和变型形式都是可能的。选择和描述实施例是为了充分阐明本申请的原理及其实际应用,以由此使得本领域的其他技术人员能够充分利用具有适合于所构想的特定用途的各种修改的本申请以及各种实施例。
上述本申请提供的实施例中,从终端设备作为执行主体的角度对本申请实施例提供的方法进行了介绍。为了实现上述本申请实施例提供的方法中的各功能,终端设备可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。