CN116030149A - 一种图像生成方法、装置、计算机设备及存储介质 - Google Patents
一种图像生成方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN116030149A CN116030149A CN202211550337.0A CN202211550337A CN116030149A CN 116030149 A CN116030149 A CN 116030149A CN 202211550337 A CN202211550337 A CN 202211550337A CN 116030149 A CN116030149 A CN 116030149A
- Authority
- CN
- China
- Prior art keywords
- target
- image
- content
- replaced
- target image
- 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
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本公开提供了一种图像生成方法、装置、计算机设备及存储介质,包括:响应于目标应用程序中的目标触发操作,通过所述目标应用程序的前端获取与所述目标触发操作对应的初始图像模板,所述目标触发操作用于指示生成目标图像,所述目标图像用于描述所述目标应用程序当前展示的目标内容;基于所述初始图像模板中各区域的属性信息,确定所述初始图像模板中的待替换区域;所述区域的属性信息用于表征所述区域的图像内容是否可变;获取最近更新的与所述待替换区域匹配的目标内容,基于所述目标内容对所述待替换区域进行更新,得到更新的目标图像模板;基于所述目标图像模板,生成与所述目标触发操作对应的目标图像。
Description
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种图像生成方法、装5置、计算机设备及存储介质。
背景技术
随着移动互联网的发展,越来越多的人通过网络来获取各种资讯,例如获取商品信息、活动信息等。用户可能需要将资讯分享给其他用户,例
如可以通过链接分享、口令分享等,最直观的分享方式是海报分享,通过0生成与资讯相关的海报,并将海报分享给其他用户,其他用户可以通过海报直观的查看到资讯内容。
然而相关技术中,用户端在请求海报分享时,需要在服务端先生成海报,然后服务端再将生成的海报发送至用户端,但是由于在生成海报时,
渲染海报的过程所耗费的计算资源较多,因此在高并发的场景中服务端的5压力比较大,生成海报的速度较慢;并且由于生成海报所需要的数据可能是用户端在请求时上传的,因此若生成海报的速度较慢,则可能导致生成的海报中所包含的内容的实时性较差。
发明内容
0本公开实施例至少提供一种图像生成方法、装置、计算机设备及存储介质。
第一方面,本公开实施例提供了一种图像生成方法,包括:
响应于目标应用程序中的目标触发操作,通过所述目标应用程序的前端获取与所述目标触发操作对应的初始图像模板,所述目标触发操作用于指示生成目标图像,所述目标图像用于描述所述目标应用程序当前展示的目标内容;
基于所述初始图像模板中各区域的属性信息,确定所述初始图像模板中的待替换区域;所述区域的属性信息用于表征所述区域的图像内容是否可变;
获取最近更新的与所述待替换区域匹配的目标内容,基于所述目标内容对所述待替换区域进行更新,得到更新的目标图像模板;
基于所述目标图像模板,生成与所述目标触发操作对应的目标图像。
一种可能的实施方式中,所述通过所述目标应用程序的前端获取与所述目标触发操作对应的初始图像模板,包括:
确定所述目标触发操作所针对的目标操作页面;
通过所述目标应用程序的前端获取与所述目标操作页面对应的初始图像模板。
一种可能的实施方式中,针对任一待替换区域,所述方法还包括根据以下方法确定与所述任一待替换区域匹配的目标内容:
确定所述任一待替换区域对应的数据类型;
将预先存储的信息集合中,与所述数据类型对应的最近更新的内容作为与所述任一待替换区域匹配的目标内容,或者从服务器获取与该数据类型对应的最近更新的内容作为与所述任一待替换内容匹配的目标内容。
一种可能的实施方式中,在生成与所述目标触发操作对应的目标图像之后,所述方法还包括:
在检测到任一目标内容发生更新的情况下,确定更新后的目标内容在所述目标图像中对应的目标待替换区域;
基于所述更新后的目标内容,对所述目标图像中的目标待替换区域进行更新。
一种可能的实施方式中,所述基于所述目标图像模板,生成与所述目标触发操作对应的目标图像,包括:
对所述目标图像模板进行离屏渲染,得到渲染结果;
对所述渲染结果进行格式转换,得到所述目标触发操作对应的目标图像。
一种可能的实施方式中,所述目标图像模板为超文本标记语言HTML文档,所述渲染结果包括所述目标图像模板对应的文档结构数据;
所述对所述渲染结果进行格式转换,得到所述目标触发操作对应的目标图像,包括:
将所述文档结构数据转换成可扩展标记语言XML文档;
基于所述XML文档,生成所述目标图像。
一种肯能的实施方式中,所述将所述文档结构数据转换成可扩展标记语言XML文档,包括:
遍历所述文档结构数据中的各个节点,建立各个节点标识与节点样式的对应关系;以及,将所述文档结构数据中的各个节点转换成XML格式;
基于所述对应关系和所述XML格式的各个节点的节点标识,填充所述XML格式的各个节点的节点样式,得到所述XML文档。
第二方面,本公开实施例还提供一种图像生成装置,包括:
获取模块,用于响应于目标应用程序中的目标触发操作,通过所述目标应用程序的前端获取与所述目标触发操作对应的初始图像模板,所述目标触发操作用于指示生成目标图像,所述目标图像用于描述所述目标应用程序当前展示的目标内容;
确定模块,用于基于所述初始图像模板中各区域的属性信息,确定所述初始图像模板中的待替换区域;所述区域的属性信息用于表征所述区域的图像内容是否可变;
更新模块,用于获取最近更新的与所述待替换区域匹配的目标内容,基于所述目标内容对所述待替换区域进行更新,得到更新的目标图像模板;
生成模块,用于基于所述目标图像模板,生成与所述目标触发操作对应的目标图像。
一种可能的实施方式中,所述获取模块,在通过所述目标应用程序的前端获取与所述目标触发操作对应的初始图像模板时,用于:
确定所述目标触发操作所针对的目标操作页面;
通过所述目标应用程序的前端获取与所述目标操作页面对应的初始图像模板。
一种可能的实施方式中,针对任一待替换区域,所述确定模块用于根据以下方法确定与所述任一待替换区域匹配的目标内容:
确定所述任一待替换区域对应的数据类型;
将预先存储的信息集合中,与所述数据类型对应的最近更新的内容作为与所述任一待替换区域匹配的目标内容,或者从服务器获取与该数据类型对应的最近更新的内容作为与所述任一待替换内容匹配的目标内容。
一种可能的实施方式中,在生成与所述目标触发操作对应的目标图像之后,所述生成模块,还用于:
在检测到任一目标内容发生更新的情况下,确定更新后的目标内容在所述目标图像中对应的目标待替换区域;
基于所述更新后的目标内容,对所述目标图像中的目标待替换区域进行更新。
一种可能的实施方式中,所述生成模块,在基于所述目标图像模板,生成与所述目标触发操作对应的目标图像时,用于:
对所述目标图像模板进行离屏渲染,得到渲染结果;
对所述渲染结果进行格式转换,得到所述目标触发操作对应的目标图像。
一种可能的实施方式中,所述目标图像模板为超文本标记语言HTML文档,所述渲染结果包括所述目标图像模板对应的文档结构数据;
所述生成模块,在对所述渲染结果进行格式转换,得到所述目标触发操作对应的目标图像时,用于:
将所述文档结构数据转换成可扩展标记语言XML文档;
基于所述XML文档,生成所述目标图像。
一种肯能的实施方式中,所述生成模块,在将所述文档结构数据转换成可扩展标记语言XML文档时,用于:
遍历所述文档结构数据中的各个节点,建立各个节点标识与节点样式的对应关系;以及,将所述文档结构数据中的各个节点转换成XML格式;
基于所述对应关系和所述XML格式的各个节点的节点标识,填充所述XML格式的各个节点的节点样式,得到所述XML文档。
第三方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
基于此,本公开提供了一种图像生成方法、装置、计算机设备及存储介质,在检测到在目标应用程序执行的目标触发操作之后,可以通过所述目标应用程序的前端获取初始图像模板,并通过目标应用程序的前端执行生成目标图像的过程,这样可以在高并发的场景中,将渲染图像的压力分散到各个用户端,以在高并发的场景中实现快速生成图像。
进一步的,由于生成目标图像的过程在用户端执行,在生成目标图像模板时所应用的目标内容也是来源于用户端的或通过用户端实时获取的,因此可以保证生成的目标图像中所包含的内容都是最近更新的,从而提高了目标图像内容的实时性。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种图像生成方法的流程图;
图2示出了本公开实施例所提供的图像生成方法中,确定目标内容的具体方法的流程图;
图3示出了本公开实施例所提供的一种图像生成方法的整体流程图;
图4示出了本公开实施例所提供的图像生成方法中,目标图像的示意图;
图5示出了本公开实施例所提供的一种图像生成装置的架构示意图;
图6示出了本公开实施例所提供的一种计算机设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开中所称海报一般为图像,所述海报的格式包括但不仅限于jpeg、png、gif等格式。
相关技术中,生成海报的过程一般是在服务端完成的。具体的,服务端可以从用户端或者从服务端的数据库中获取数据,并基于获取的数据生成海报。然而由于用户端接收到的海报就是图像格式,而海报的原始数据一般为超文本标记语言HTML格式,因此需要基于HTML格式的原始数据生成海报,生成的过程就包括图像渲染。
但是由于图像渲染所耗费的计算资源比较多,因此这种方式服务器所能承受的每秒查询率(Queries-per-second,QPS)比较低,对于高并发的场景中,生成图像的速度较慢。
进一步的,由于生成海报所需要的数据可能是用户端在请求时上传的,若生成图像的速度较慢的话,则可能会导致生成的海报中所包含的内容是更新之前的数据内容,实时性较差。
基于上述研究,本公开提供了一种图像生成方法、装置、计算机设备及存储介质,在检测到在目标应用程序执行的目标触发操作之后,可以通过所述目标应用程序的前端获取初始图像模板,并通过目标应用程序的前端执行生成目标图像的过程,这样可以在高并发的场景中,将渲染图像的压力分散到各个用户端,以在高并发的场景中实现快速生成图像。
进一步的,由于生成目标图像的过程在用户端执行,在生成目标图像模板时所应用的目标内容也是来源于用户端的或通过用户端实时获取的,因此可以保证生成的目标图像中所包含的内容都是最近更新的,从而提高了目标图像内容的实时性。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
可以理解的是,在使用本公开各实施例公开的技术方案之前,均应当依据相关法律法规通过恰当的方式对本公开所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。
例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确地提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示信息来自主地选择是否向执行本公开技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。
作为一种可选的但非限定性的实现方式,响应于接收到用户的主动请求,向用户发送提示信息的方式例如可以是弹窗的方式,弹窗中可以以文字的方式呈现提示信息。此外,弹窗中还可以承载供用户选择“同意”或者“不同意”向电子设备提供个人信息的选择控件。
可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本公开的实现方式构成限定,其它满足相关法律法规的方式也可应用于本公开的实现方式中。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种图像生成方法进行详细介绍,本公开实施例所提供的图像生成方法的执行主体一般为终端设备,所述终端设备上安装有目标应用程序,终端设备可以为智能手机、平板电脑、智能电视、个人计算机等。
本公开中所述目标应用程序为通过客户端与web前端混合开发的方式进行开发的,实际业务中,一般是通过客户端开发数据的处理逻辑,通过前端开发与用户进行交互的内容;本公开中所述前端,可以理解为前端数据,本公开所提供的方法可以全部在前端执行。
参见图1所示,为本公开实施例提供的一种图像生成方法的流程图,所述方法包括步骤101~步骤103,其中:
步骤101、响应于目标应用程序中的目标触发操作,通过所述目标应用程序的前端获取与所述目标触发操作对应的初始图像模板。
步骤102、基于所述初始图像模板中各区域的属性信息,确定所述初始图像模板中的待替换区域;所述区域的属性信息用于表征所述区域的图像内容是否可变。
步骤103、获取最近更新的与所述待替换区域匹配的目标内容,基于所述目标内容对所述待替换区域进行更新,得到更新的目标图像模板。
步骤104、基于所述目标图像模板,生成与所述目标触发操作对应的目标图像。
以下是对上述步骤的详细描述。
针对步骤101、
所述目标触发操作用于指示生成目标图像,所述目标图像用于描述所述目标应用程序当前展示的目标内容,例如所述目标图像可以是宣传海报,所述目标触发操作可以是针对“分享”按钮的触发操作;所述初始图像模板可以理解为与所述目标触发操作对应的通用模板,所述初始图像模板中包括至少一个区域,不同的区域用于展示不同的内容。
这里,所述获取所述目标触发操作对应的初始图像模板,可以是指从所述目标应用程序对应的服务器获取所述初始图像模板,或者可以是从内容分发网络(ContentDelivery Network,CDN)上获取所述初始图像模板。
实际应用中,在不同的操作页面执行目标触发操作之后,所需要分享的内容是不同的,相应的生成的目标图像中所包含的内容也可能是不同的,因此,在获取与所述目标触发操作对应的初始图像模板时,还可以结合所述目标触发操作所针对的操作页面的类型。
一种可选的实施方式中,在通过所述目标应用程序的前端获取与所述目标触发操作对应的初始图像模板时,可以先确定所述目标触发操作所针对的目标操作页面,然后通过所述目标应用程序前端获取与所述目标操作页面对应的初始图像模板。
示例性的,在确定所述目标触发操作所针对的目标操作页面之后,可以向所述服务器或者CDN发送携带有所述目标操作页面标识的模板获取请求,所述服务器或者CDN中可以存储有多个图像模板,以及各个图像模板与操作页面标识之间的对应关系,在接收到所述模板获取请求之后,可以根据所述模板获取请求中携带的目标操作页面标识以及所述对应关系,确定对应的初始图像模板,并将初始图像模板返回至用户端,具体的可以是返回至目标应用程序的前端。
同一应用程序内在不同操作页面执行的目标触发操作,其对应的初始图像模板可以是相同的,不同应用程序内执行的目标触发操作,其对应的初始图像模板可以是不同的,例如,应用A可能包含多个操作页面,在应用A内的任一操作页面上执行目标触发操作之后,获取的初始图像模板可以均为模板A,而在应用B的任一操作页面上执行目标触发操作之后,获取的初始图像模板可以为模板B。
因此,在另外一种可能的实施方式中,在通过所述目标应用程序的前端获取的初始图像模板,可以是与所述目标应用程序的初始图像模板。
具体的,在检测到在目标应用程序执行的目标触发操作之后,可以向服务器或者CDN发送携带有所述目标应用程序标识的模板获取请求,所述服务器或者CDN中可以存储有多个图像模板,以及各个图像模板与各个应用程序标识之间的对应关系,在接收到所述模板获取请求之后,可以根据所述模板获取请求中携带的目标应用程序标识以及所述对应关系,确定对应的初始图像模板,并将初始图像模板返回至用户端,具体的可以是返回至目标应用程序的前端。
可选地,所述初始图像模板可以是通过HTML编写的,开发人员在编写初始图像模板之后,可以将初始图像模板上传至服务器或者CDN进行存储,所述初始图像模板可以理解为初始HTML文档,所述初始HTML文档中可以通过标签注入CSS进行样式定义(例如可以通过<style>标签),例如设置各个展示区域的长、宽、在目标图像中的位置等。
针对步骤102、
所述初始图像模板中包括多个区域,任一区域可以对应一个容器,用于展示对应的内容,所述区域可以分为静态区域和动态区域,所述静态区域可以理解为固定不变的区域,即不同用户端生成的目标图像中所包含的相同内容区域;所述动态区域可以理解为内容可变区域,或个性化区域,即不同用户端生成的目标图像中所包含的不同内容区域。
生成的目标图像可以用于对执行目标触发操作的目标页面进行分享或宣传(所述目标页面即为所述目标应用程序当前展示的目标内容),因此生成的所述目标图像中可以包括所述目标页面的相关信息,和/或可以包括所述目标应用程序的相关信息,例如可以包括所述目标页面的活动信息、所述目标页面的地址,或者可以包括所述目标应用程序的图标标识或名称等,上述内容可以是属于上述静态区域的内容。
一种可能的实施方式中,所述初始图像模板中各个区域都对应有属性信息,所述区域的属性信息也可以理解为该区域对应的容器的属性信息,用于表征所述区域的图像内容是否可变,属性信息为可变的区域为动态区域,属性信息为不可变的区域为静态区域。
具体实施中,在所述初始图像模板为上述初始HTML文档时,可以在所述初始HTML文档的标签上添加各个区域的属性信息。
在基于所述初始图像模板中各区域的属性信息,确定所述初始图像模板中的待替换区域时,示例性的,可以将所述初始图像模板中,对应的属性信息为可变的区域确定为所述待替换区域,所述待替换区域可以包括至少一个区域。
在另外一种可能的场景中,所述初始图像模板中所包含的各区域均为动态区域,这样可以将所述初始动态模板中所有的区域均作为所述待替换区域。
针对步骤103、
获取的初始图像模板中,所述待替换区域展示的内容可以为默认内容,不同的待替换区域可能需要不同的目标内容来进行填充,因此,一种可能的实施方式中,与所述待替换区域匹配的目标内容来源于用户端本地,和/或,来源于服务器。
一种可能的场景中,在可执行目标触发操作的目标页面被触发展示之后,可以直接从服务器获取生成目标图像所需的目标内容,或者可以从用户端本地获取生成目标图像所需的目标内容,并进行存储,然后在响应目标触发操作之后,生成目标图像时,可以直接从存储的目标内容中获取。
例如,可以预先构建传入所述初始图像模板的目标内容的内容集合,所述传入所述初始图像模板可以理解为对所述初始图像模板内的内容进行替换。
实际应用中,针对任一待替换区域,可以通过如图2所示的方法,确定与该待替换区域匹配的目标内容,包括以下几个步骤:
步骤201、确定所述任一待替换区域对应的数据类型。
步骤202、将预先存储的信息集合中,与所述数据类型对应的最近更新的内容作为与所述任一待替换区域匹配的目标内容,或者从服务器获取与该数据类型对应的最近更新的内容作为与所述任一待替换内容匹配的目标内容。
这里,所述数据类型例如可以包括不同的用户属性,如用户名、在线时长、分享次数等等。获取和使用个人信息的方式可参见本公开具体实施方式部分的第10~13段的说明。一种可能的实施方式中,所述初始图像模板中可以预先定义各个待替换区域对应的数据类型。
一种可能的实施方式中,所述目标图像所需的目标内容存储在同一信息集合中,在这种情况下,可以仅通过待替换区域对应的数据类型,直接从信息集合中查找目标内容即可;在另外一种实施方式中,所述目标图像所需的目标内容较多,因此可能需要多个信息集合进行存储,在这种情况下,在执行步骤201时,在确定所述任一待替换区域对应的数据类型时,还需要同步确定所述数据类型对应的目标信息集合,然后执行步骤202中,将预先存储的目标信息集合中,与所述数据类型对应的最近更新的内容作为与所述任一待替换区域匹配的目标内容。
示例性的,若初始图像模板中某待替换区域定义的数据类型为“window.numberOfExamples”,则“window”表示信息集合名称,“numberOfExamples”表示数据类型。该定义的意义为将“window”集合中的“numberOfExamples”添加到该待替换区域。
在基于所述初始图像模板中与各待替换区域匹配的目标内容,对各待替换区域进行更新之后,可以得到所述更新后的目标图像模板。
这里,需要说明的是,与待替换区域匹配的目标内容可能会发生变化,如名次、点赞数等,这里获取的是最近更新的与所述待替换区域匹配的目标内容,可以保证所述目标图像的实时性。所述信息集合可能是预先存储的,如可以是在进入所述目标页面时存储的,但是所述信息集合中所包含的内容可以是不断更新的。
针对步骤104、
由于最终请求的目标图像是图像格式的,而所述更新后的目标图像模板也是HTML格式的,因此,一种可能的实施方式中,可以先对所述目标图像模板进行离屏渲染,得到渲染结果,然后对所述渲染结果进行格式转换,得到与所述目标触发操作对应的目标图像。
具体的,由于HTML格式的目标图像模板在进行渲染之后是网页格式,而用户端并不需要展示网页格式的目标图像,因此所述目标图像模板需要进行离屏渲染,所述离屏渲染可以理解为不进行展示的渲染。
示例性的,在对所述目标图像模板进行离屏渲染,得到渲染结果时,可以先创建文档流,然后将目标图像模板在创建的文档流中进行渲染,得到渲染结果。
由于创建的文档流并未替换/挂载到用户可见的节点,因此可以实现离屏渲染的效果;而渲染结果实际上也只是包括所述目标图像模板对应的文档结构数据。
在对渲染结果进行格式转换,得到与目标触发操作对应的目标图像时,可以是先将文档结构数据转换成可扩展标记语言XML文档,然后基于所述XML文档,生成所述目标图像。
由于所述文档结构数据实际上也是HTML格式的,而文档结构数据中各个节点的样式是通过上述标签定义的(即上述通过CSS定义样式),转换成XML文档之后,XML的样式是在行中定义的,因此XML无法消费文档结构数据中定义的样式,因此需要建立各个节点与节点样式之间的对应关系。
具体的,在转换XML文档时,可以先遍历所述文档结构数据中的各个节点,建立各个节点标识与节点样式的对应关系;以及,将所述文档结构数据中的各个节点转换成XML格式;然后遍历XML格式的各个节点,并基于所述对应关系和所述XML格式的各个节点的节点标识,填充所述XML格式的各个节点的节点样式,得到所述XML文档。
XML的格式定义是在行内定义的,而HTML的格式定义是单独定义的,因此通过构建各个节点与样式之间的对应关系,可以将HTML的格式定义转换成XML的格式定义。
一种可能的实施方式中,在基于所述XML文档,生成所述目标图像时,可以先将XML文档转换成可缩放的矢量图形(Scalable Vector Graphics,SVG)格式,然后通过画布canvas将SVG格式转换成目标图像对应的目标格式,得到所述目标图像。
这里,所述目标图像可以对应有多个格式,如jpeg、png等格式,不同格式的目标图像可以用于执行不同的业务逻辑。
在生成目标图像之后,可以将所述目标图像输出至业务层,并按照所述业务层的业务逻辑进行处理,例如可以进行展示,或者进行引导分享处理等。
一种可能的实施方式中,在生成所述目标图像之后,可以将所述目标图像进行存储,之后当再次检测所述目标触发操作之后,可以直接获取存储的目标图像,避免重复执行生成所述目标图像所造成的资源浪费。
在另外一种可能的实施方式中,当再次检测到所述目标触发操作之后,所述目标图像中的展示内容可能会发生变化,示例性的,若生成的目标图像中包含用户名称以及用户当前排名,当再次执行所述目标触发操作之后,用户当前排名可能会发生变化,因此此时需要对目标图像进行更新。
因此,当生成所述目标图像之后,可以存储所述XML文档,当再次检测到所述目标触发操作之后,可以检测所述信息集合中各信息内容是否发生更新,若是,则基于更新后的信息内容,对所述XML文档进行更新,并基于更新后的XML文档重新生成目标图像。
这样,由于所述XML文档中可能包括部分并未更新的信息内容,因此相比较直接重新拉取初始图像模板生成目标图像而言,提升了生成目标图像的效率。
另外,由于生成所述目标图像的过程是由前端执行的,因此可以通过前端对生成所述目标图像的目标内容进行监控,在检测到任一目标内容发生更新的情况下,可以确定更新后的目标内容在所述目标图像中对应的目标待替换区域,然后基于所述更新后的目标内容,对所述目标图像中的目标待替换区域进行更新。
在对所述目标图像中的目标待替换区域进行更新时,一种可能的实施方式中,可以直接对所述目标图像进行处理(例如可以扣除所述目标待替换区域当前展示的内容,并将更新后的目标内容展示在所述目标待替换区域),或者在另外一种可能的实施方式中,可以直接重新生成所述目标待替换区域。
具体的,可以先确定所述目标待替换区域在所述XML文档中对应的目标节点,然后基于所述更新后的目标内容对所述目标节点进行更新,再基于更新后的XML文档重新生成目标图像。
在检测到所述目标图像更新之后,可以对接业务层,向业务层传输目标图像的更新指令,并按照所述业务层对于更新指令的处理逻辑进行处理。
示例性的,若生成所述目标图像之后,可以引导用户对所述目标图像进行分享,例如可以分享到社交平台或者分享给其他用户,当检测到所述目标图像更新之后,可以对之前分享的目标图像进行更新,这样当其他用户查看当前用户分享的目标图像时,查看到的为更新之后的目标图像,提升了目标图像的实时性。
本公开中,由于生成目标图像的过程是由前端执行的,因此分担了服务端的渲染压力,可以适用于高并发的场景,而若将生成目标图像的过程放在客户端来执行,当生成所述目标图像的生成逻辑发生更新时,只能通过重新发版的方式来对各个客户端进行更新,流程较为繁琐,相较于放在客户端来执行,在前端来执行可以避免发版流程,提升了更新效率。
综上,上述图像生成方法的整体流程如图3所示,包括以下步骤:
步骤1、检测到用户在目标应用程序执行目标触发操作。
步骤2、通过目标应用程序的前端从CDN拉取初始图像模板。
步骤3、更新初始图像模板中的动态区域,得到目标图像模板。
步骤4、将目标图像模板进行离屏渲染,得到文档结构数据。
步骤5、遍历文档结构数据的各个节点,建立各个节点标识与节点样式的对应关系。
步骤6、将文档结构数据中的各个节点转换成XML格式。
步骤7、基于对应关系和所述XML格式的各个节点的节点标识,填充所述XML格式的各个节点的节点样式,得到XML文档。
步骤8、将带样式的XML文档转换成SVG格式。
步骤9、通过画布canvas填充SVG生成目标图像。
步骤10、将目标图像输出至业务层。
示例性的,若目标应用程序为足球比赛展示页面,则用户点击“分享海报”按钮之后,则前端可以先从CDN拉取与足球比赛对应的初始图像模板,拉取的初始图像模板包括静态区域和动态区域,所述静态区域例如可以包括比赛名称,背景图像、观看地址(该观看地址即为所述足球比赛展示页面的地址)等;所述动态区域例如可以包括参赛队伍名称、当前比分等。
在进入所述足球比赛展示页面时,可以直接获取用于生成目标图像(即海报)所需的目标内容,这里目标内容包括参赛队伍名称、当前比分等,并且进行实时更新;当用户点击“分享海报”按钮,并拉取初始图像模板之后,可以将存储的目标内容参赛队伍名称、当前比分等填充至对应位置,例如若当前参赛队伍为A队和B队,当前比分为2:1,则相应的生成的目标图像可以如图4所示,图4中除了标注出的区域为动态区域外,其余区域均为静态区域。
在生成所述目标图像之后,在检测到目标内容发生变化的情况下,可以相应的对目标图像进行更新,例如在检测到当前比分发生变化的情况下,可以将生成的目标图像中的当前比分进行更新。
本公开提供的图像生成方法,在检测到在目标应用程序执行的目标触发操作之后,可以通过所述目标应用程序的前端获取初始图像模板,并通过目标应用程序的前端执行生成目标图像的过程,这样可以在高并发的场景中,将渲染图像的压力分散到各个用户端,以在高并发的场景中实现快速生成图像。
进一步的,由于生成目标图像的过程在用户端执行,在生成目标图像模板时所应用的目标内容也是来源于用户端的或通过用户端实时获取的,因此可以保证生成的目标图像中所包含的内容都是最近更新的,从而提高了目标图像内容的实时性。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与图像生成方法对应的图像生成装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述图像生成方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图5所示,为本公开实施例提供的一种图像生成装置的架构示意图,所述装置包括:获取模块501、确定模块502、更新模块503、以及生成模块504;其中,
获取模块501,用于响应于目标应用程序中的目标触发操作,通过所述目标应用程序的前端获取与所述目标触发操作对应的初始图像模板,所述目标触发操作用于指示生成目标图像,所述目标图像用于描述所述目标应用程序当前展示的目标内容;
确定模块502,用于基于所述初始图像模板中各区域的属性信息,确定所述初始图像模板中的待替换区域;所述区域的属性信息用于表征所述区域的图像内容是否可变;
更新模块503,用于获取最近更新的与所述待替换区域匹配的目标内容,基于所述目标内容对所述待替换区域进行更新,得到更新的目标图像模板;
生成模块504,用于基于所述目标图像模板,生成与所述目标触发操作对应的目标图像。
一种可能的实施方式中,所述获取模块501,在通过所述目标应用程序的前端获取与所述目标触发操作对应的初始图像模板时,用于:
确定所述目标触发操作所针对的目标操作页面;
通过所述目标应用程序的前端获取与所述目标操作页面对应的初始图像模板。
一种可能的实施方式中,针对任一待替换区域,所述确定模块502用于根据以下方法确定与所述任一待替换区域匹配的目标内容:
确定所述任一待替换区域对应的数据类型;
将预先存储的信息集合中,与所述数据类型对应的最近更新的内容作为与所述任一待替换区域匹配的目标内容,或者从服务器获取与该数据类型对应的最近更新的内容作为与所述任一待替换内容匹配的目标内容。
一种可能的实施方式中,在生成与所述目标触发操作对应的目标图像之后,所述生成模块504,还用于:
在检测到任一目标内容发生更新的情况下,确定更新后的目标内容在所述目标图像中对应的目标待替换区域;
基于所述更新后的目标内容,对所述目标图像中的目标待替换区域进行更新。
一种可能的实施方式中,所述生成模块504,在基于所述目标图像模板,生成与所述目标触发操作对应的目标图像时,用于:
对所述目标图像模板进行离屏渲染,得到渲染结果;
对所述渲染结果进行格式转换,得到所述目标触发操作对应的目标图像。
一种可能的实施方式中,所述目标图像模板为超文本标记语言HTML文档,所述渲染结果包括所述目标图像模板对应的文档结构数据;
所述生成模块504,在对所述渲染结果进行格式转换,得到所述目标触发操作对应的目标图像时,用于:
将所述文档结构数据转换成可扩展标记语言XML文档;
基于所述XML文档,生成所述目标图像。
一种可能的实施方式中,所述生成模块504,在将所述文档结构数据转换成可扩展标记语言XML文档时,用于:
遍历所述文档结构数据中的各个节点,建立各个节点标识与节点样式的对应关系;以及,将所述文档结构数据中的各个节点转换成XML格式;
基于所述对应关系和所述XML格式的各个节点的节点标识,填充所述XML格式的各个节点的节点样式,得到所述XML文档。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
基于同一技术构思,本公开实施例还提供了一种计算机设备。参照图6所示,为本公开实施例提供的计算机设备600的结构示意图,包括处理器601、存储器602、和总线603。其中,存储器602用于存储执行指令,包括内存6021和外部存储器6022;这里的内存6021也称内存储器,用于暂时存放处理器601中的运算数据,以及与硬盘等外部存储器6022交换的数据,处理器601通过内存6021与外部存储器6022进行数据交换,当计算机设备600运行时,处理器601与存储器602之间通过总线603通信,使得处理器601在执行以下指令:
响应于目标应用程序中的目标触发操作,通过所述目标应用程序的前端获取与所述目标触发操作对应的初始图像模板,所述目标触发操作用于指示生成目标图像,所述目标图像用于描述所述目标应用程序当前展示的目标内容;
基于所述初始图像模板中各区域的属性信息,确定所述初始图像模板中的待替换区域;所述区域的属性信息用于表征所述区域的图像内容是否可变;
获取最近更新的与所述待替换区域匹配的目标内容,基于所述目标内容对所述待替换区域进行更新,得到更新的目标图像模板;
基于所述目标图像模板,生成与所述目标触发操作对应的目标图像。
一种可能的实施方式中,处理器601执行的指令中,所述通过所述目标应用程序的前端获取与所述目标触发操作对应的初始图像模板,包括:
确定所述目标触发操作所针对的目标操作页面;
通过所述目标应用程序的前端获取与所述目标操作页面对应的初始图像模板。
一种可能的实施方式中,处理器601执行的指令中,针对任一待替换区域,还包括根据以下方法确定与所述任一待替换区域匹配的目标内容:
确定所述任一待替换区域对应的数据类型;
将预先存储的信息集合中,与所述数据类型对应的最近更新的内容作为与所述任一待替换区域匹配的目标内容,或者从服务器获取与该数据类型对应的最近更新的内容作为与所述任一待替换内容匹配的目标内容。
一种可能的实施方式中,处理器601执行的指令中,在生成与所述目标触发操作对应的目标图像之后,还包括:
在检测到任一目标内容发生更新的情况下,确定更新后的目标内容在所述目标图像中对应的目标待替换区域;
基于所述更新后的目标内容,对所述目标图像中的目标待替换区域进行更新。
一种可能的实施方式中,处理器601执行的指令中,所述基于所述目标图像模板,生成与所述目标触发操作对应的目标图像,包括:
对所述目标图像模板进行离屏渲染,得到渲染结果;
对所述渲染结果进行格式转换,得到所述目标触发操作对应的目标图像。
一种可能的实施方式中,处理器601执行的指令中,所述目标图像模板为超文本标记语言HTML文档,所述渲染结果包括所述目标图像模板对应的文档结构数据;
所述对所述渲染结果进行格式转换,得到所述目标触发操作对应的目标图像,包括:
将所述文档结构数据转换成可扩展标记语言XML文档;
基于所述XML文档,生成所述目标图像。
一种可能的实施方式中,处理器601执行的指令中,所述将所述文档结构数据转换成可扩展标记语言XML文档,包括:
遍历所述文档结构数据中的各个节点,建立各个节点标识与节点样式的对应关系;以及,将所述文档结构数据中的各个节点转换成XML格式;
基于所述对应关系和所述XML格式的各个节点的节点标识,填充所述XML格式的各个节点的节点样式,得到所述XML文档。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的图像生成方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的图像生成方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种图像生成方法,其特征在于,包括:
响应于目标应用程序中的目标触发操作,通过所述目标应用程序的前端获取与所述目标触发操作对应的初始图像模板,所述目标触发操作用于指示生成目标图像,所述目标图像用于描述所述目标应用程序当前展示的目标内容;
基于所述初始图像模板中各区域的属性信息,确定所述初始图像模板中的待替换区域;所述区域的属性信息用于表征所述区域的图像内容是否可变;
获取最近更新的与所述待替换区域匹配的目标内容,基于所述目标内容对所述待替换区域进行更新,得到更新的目标图像模板;
基于所述目标图像模板,生成与所述目标触发操作对应的目标图像。
2.根据权利要求1所述的方法,其特征在于,所述通过所述目标应用程序的前端获取与所述目标触发操作对应的初始图像模板,包括:
确定所述目标触发操作所针对的目标操作页面;
通过所述目标应用程序的前端获取与所述目标操作页面对应的初始图像模板。
3.根据权利要求1所述的方法,其特征在于,针对任一待替换区域,所述方法还包括根据以下方法确定与所述任一待替换区域匹配的目标内容:
确定所述任一待替换区域对应的数据类型;
将预先存储的信息集合中,与所述数据类型对应的最近更新的内容作为与所述任一待替换区域匹配的目标内容,或者从服务器获取与该数据类型对应的最近更新的内容作为与所述任一待替换内容匹配的目标内容。
4.根据权利要求1所述的方法,其特征在于,在生成与所述目标触发操作对应的目标图像之后,所述方法还包括:
在检测到任一目标内容发生更新的情况下,确定更新后的目标内容在所述目标图像中对应的目标待替换区域;
基于所述更新后的目标内容,对所述目标图像中的目标待替换区域进行更新。
5.根据权利要求1所述的方法,其特征在于,所述基于所述目标图像模板,生成与所述目标触发操作对应的目标图像,包括:
对所述目标图像模板进行离屏渲染,得到渲染结果;
对所述渲染结果进行格式转换,得到所述目标触发操作对应的目标图像。
6.根据权利要求5所述的方法,其特征在于,所述目标图像模板为超文本标记语言HTML文档,所述渲染结果包括所述目标图像模板对应的文档结构数据;
所述对所述渲染结果进行格式转换,得到所述目标触发操作对应的目标图像,包括:
将所述文档结构数据转换成可扩展标记语言XML文档;
基于所述XML文档,生成所述目标图像。
7.根据权利要求6所述的方法,其特征在于,所述将所述文档结构数据转换成可扩展标记语言XML文档,包括:
遍历所述文档结构数据中的各个节点,建立各个节点标识与节点样式的对应关系;以及,将所述文档结构数据中的各个节点转换成XML格式;
基于所述对应关系和所述XML格式的各个节点的节点标识,填充所述XML格式的各个节点的节点样式,得到所述XML文档。
8.一种图像生成装置,其特征在于,包括:
获取模块,用于响应于目标应用程序中的目标触发操作,通过所述目标应用程序的前端获取与所述目标触发操作对应的初始图像模板,所述目标触发操作用于指示生成目标图像,所述目标图像用于描述所述目标应用程序当前展示的目标内容;
确定模块,用于基于所述初始图像模板中各区域的属性信息,确定所述初始图像模板中的待替换区域;所述区域的属性信息用于表征所述区域的图像内容是否可变;
更新模块,用于获取最近更新的与所述待替换区域匹配的目标内容,基于所述目标内容对所述待替换区域进行更新,得到更新的目标图像模板;
生成模块,用于基于所述目标图像模板,生成与所述目标触发操作对应的目标图像。
9.一种计算机设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至7任一项所述的图像生成方法的步骤。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任一项所述的图像生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211550337.0A CN116030149A (zh) | 2022-12-05 | 2022-12-05 | 一种图像生成方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211550337.0A CN116030149A (zh) | 2022-12-05 | 2022-12-05 | 一种图像生成方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116030149A true CN116030149A (zh) | 2023-04-28 |
Family
ID=86078523
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211550337.0A Pending CN116030149A (zh) | 2022-12-05 | 2022-12-05 | 一种图像生成方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116030149A (zh) |
-
2022
- 2022-12-05 CN CN202211550337.0A patent/CN116030149A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8707164B2 (en) | Integrated document viewer | |
CN113691853B (zh) | 页面显示方法、装置及存储介质 | |
CN111462281A (zh) | 海报生成方法、装置、设备及存储介质 | |
CN112800370B (zh) | 业务单据的处理方法、装置、计算机设备和存储介质 | |
US20130042190A1 (en) | Systems and methods for remote dashboard image generation | |
US20120236004A1 (en) | Information output apparatus and information output method and recording medium | |
CN111949908A (zh) | 媒体信息的处理方法、装置、电子设备及存储介质 | |
CN111767492B (zh) | 图片加载方法、装置、计算机设备及存储介质 | |
CN117093386A (zh) | 页面截图方法、装置、计算机设备和存储介质 | |
CN112581568A (zh) | 动态海报的生成方法、装置、服务器及存储介质 | |
CN110866014A (zh) | 一种标准指标数据接入及展示的方法 | |
US9965446B1 (en) | Formatting a content item having a scalable object | |
CN116030149A (zh) | 一种图像生成方法、装置、计算机设备及存储介质 | |
CN115904167A (zh) | 网页图标的处理方法、装置、存储介质及电子设备 | |
CN112328940A (zh) | 网页嵌入过渡页的方法、装置、计算机设备及存储介质 | |
KR20200111387A (ko) | 키워드 감지에 기반한 키보드 영역 내 광고 제공 방법 | |
CN115250259B (zh) | 信息交互方法、装置和电子设备 | |
CN112286576B (zh) | 跨平台渲染方法、客户端及介质 | |
CN118300959A (zh) | 信息推送方法、装置、计算机设备及计算机可读存储介质 | |
CN115509530A (zh) | 建议书的生成方法、装置及计算机可读存储介质 | |
CN118277018A (zh) | 客户端页面布局的展示方法及装置、电子设备、存储介质 | |
CN115878246A (zh) | 一种远程桌面连接的方法、系统、装置及设备 | |
CN118170282A (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
CN117635739A (zh) | 图像显示方法及其装置、存储介质、程序产品 | |
CN114202754A (zh) | 页面显示方法、图像处理方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |