CN107025676B - 一种图片模板以及图片的生成方法及相关装置 - Google Patents
一种图片模板以及图片的生成方法及相关装置 Download PDFInfo
- Publication number
- CN107025676B CN107025676B CN201610892482.5A CN201610892482A CN107025676B CN 107025676 B CN107025676 B CN 107025676B CN 201610892482 A CN201610892482 A CN 201610892482A CN 107025676 B CN107025676 B CN 107025676B
- Authority
- CN
- China
- Prior art keywords
- color
- node
- data
- key
- picture
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种图片模板以及图片的生成方法及相关装置,在本申请所述技术方案中,可直接将设计文件导出为关联有对应的数据和元数据的SVG文件后,添加到模板库供用户制作图片,省略了前端开发将设计文件转换为HTML的过程,在同一款设计有多组配色和/或多个尺寸的情况下,能够快速产出图片模板,提高了图片模板以及图片的生成效率。
Description
技术领域
本申请涉及图片制作技术领域,尤其涉及一种图片模板以及图片的生成方法及相关装置。
背景技术
广告图片等用于实现信息发布或推广的图片是以图形为主要表现形式来传递信息的,其主要由图形和文字组成,形象性较强,已广泛应用于各种场景中。
目前,以广告图片为例,为了生成所需的广告图片,可采用以下方式:
方式一、由设计人员直接通过相应的图形制作软件来生成广告图片。但是,由于采用该种方式生成相应图片时,没有图片模板的存在,因而,无法将一份设计提供给其他用户来进行素材替换以产出新创意图片,从而大大降低了用户的应用体验。另外,当一份设计存在多种配色和/或多种尺寸时,设计人员常常需要人为生成多种具备相应配色的图片,图片的生成效率较低。
方式二、由设计人员提供AI或者PSD等视觉设计文件,之后,由前端开发人员根据视觉设计文件生成HTML(Hyper Text Markup Language,超文本标记语言),并生成相应的数据(data)和元数据(metadata),用于浏览器渲染和编辑。用户基于浏览器对数据修改完成后,提交最终创意文件至服务端,使用现有技术生成最终图片。
但是,由于在采用方式二生成相应图片时,需由前端开发人员介入,以将视觉设计文件还原为HTML并生成相应的数据和元数据,因而,在视觉设计文件有多种配色和/或多种尺寸的情况下,需要开发多个图片模板,导致时间成本较高,无法快速地产出最终模板,进而使得图片的生成效率也较低。
也就是说,现有的图片模板以及图片的生成效率较低,因此,亟需提供一种新的图片模板生成方式以及图片生成方式以解决上述问题。
发明内容
本申请实施例提供了一种图片模板以及图片的生成方法及相关装置,以提高图片模板以及图片的生成效率。
一方面,本申请实施例提供了一种图片模板生成方法,包括:
针对设计文件所涉及的尺寸中的至少一个尺寸,根据所述设计文件所支持的配色信息中的至少一组配色信息,对具备相应尺寸的所述设计文件进行配色,得到至少一个配置有相应配色信息的设计文件,并基于所得到的每一个配置有相应配色信息的设计文件,生成对应的SVG(Scalable Vector Graphics,可缩放矢量图形)文件;
根据设定的图层命名规则,对各SVG文件进行可编辑内容的解析,得到对应的数据和元数据;所述图层命名规则用于指明所述视觉设计文件的各图层中的可编辑内容的类型;
将具备对应的数据和元数据的各SVG文件作为图片模板。
另一方面,本申请实施例还提供了一种基于本申请实施例所述图片模板的生成方法所生成的图片模板的图片生成方法,包括:
针对任一图片模板,获取所述图片模板所对应的数据以及元数据,并将所述图片模板所对应的数据渲染为编辑面板;
获取用户基于所述编辑面板对所述图片模板所对应的数据中的一个或多个数据进行修改时,所输入的修改信息;并针对每一存在修改的数据,根据该数据对应的元数据以及该数据对应的修改信息,对所述图片模板的文档对象模型中的与该数据相对应的节点的内容进行修改;
根据修改后的各节点的内容,得到新的文档对象模型,并基于所述新的文档对象模型,生成所需的图片。
又一方面,本申请实施例还提供了一种图片模板生成装置,包括:
文件生成模块,用于针对设计文件所涉及的尺寸中的至少一个尺寸,根据所述设计文件所支持的配色信息中的至少一组配色信息,对具备相应尺寸的所述设计文件进行配色,得到至少一个配置有相应配色信息的设计文件,并基于所得到的每一个配置有相应配色信息的设计文件,生成对应的SVG文件;
文件解析模块,用于根据设定的图层命名规则,对各SVG文件进行可编辑内容的解析,得到对应的数据和元数据;所述图层命名规则用于指明设计文件的各图层中的可编辑内容的类型;
模板确定模块,用于将具备对应的数据和元数据的各SVG文件作为图片模板。
再一方面,本申请实施例还提供了一种图片生成装置,包括:
数据渲染模块,用于针对任一图片模板,获取所述图片模板所对应的数据以及元数据,并将所述图片模板所对应的数据渲染为编辑面板;其中,所述图片模板为基于本申请实施例所述图片模板的生成方法所生成的图片模板;
数据修改模块,用于获取用户基于所述编辑面板对所述图片模板所对应的数据中的一个或多个数据进行修改时,所输入的修改信息;并针对每一存在修改的数据,根据该数据对应的元数据以及该数据对应的修改信息,对所述图片模板的文档对象模型中的与该数据相对应的节点的内容进行修改;
图片生成模块,用于根据修改后的各节点的内容,得到新的文档对象模型,并基于所述新的文档对象模型,生成所需的图片。
另一方面,本申请实施例还提供了另一种图片模板生成装置,包括:
存储器,用于存储软件程序以及模块;
处理器,用于通过运行存储在存储器内的软件程序以及模块,执行以下操作:
针对设计文件所涉及的尺寸中的至少一个尺寸,根据所述设计文件所支持的配色信息中的至少一组配色信息,对具备相应尺寸的所述设计文件进行配色,得到至少一个配置有相应配色信息的设计文件,并基于所得到的每一个配置有相应配色信息的设计文件,生成对应的SVG文件;
根据设定的图层命名规则,对各SVG文件进行可编辑内容的解析,得到对应的数据和元数据;所述图层命名规则用于指明设计文件的各图层中的可编辑内容的类型;
将具备对应的数据和元数据的各SVG文件作为图片模板。
又一方面,本申请实施例还提供了另一种图片生成装置,包括:
存储器,用于存储软件程序以及模块;
处理器,用于通过运行存储在存储器内的软件程序以及模块,执行以下操作:
针对任一图片模板,获取所述图片模板所对应的数据以及元数据,并将所述图片模板所对应的数据渲染为编辑面板;其中,所述图片模板为基于本申请实施例所述图片模板的生成方法所生成的图片模板;
获取用户基于所述编辑面板对所述图片模板所对应的数据中的一个或多个数据进行修改时,所输入的修改信息;并针对每一存在修改的数据,根据该数据对应的元数据以及该数据对应的修改信息,对所述图片模板的文档对象模型中的与该数据相对应的节点的内容进行修改;
根据修改后的各节点的内容,得到新的文档对象模型,并基于所述新的文档对象模型,生成所需的图片。
本申请有益效果如下:
本申请实施例提供了一种图片模板以及图片的生成方法及相关装置,在本申请所述方案中,可以直接将设计文件导出为关联有对应的数据和元数据的SVG文件后,添加到模板库供用户制作图片,省略了前端开发将设计文件转换为HTML的过程,在同一款设计有多组配色和/或多个尺寸的情况下,能够快速产出图片模板,提高了图片模板以及图片的生成效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1所示为本申请实施例一中的图片模板生成方法的流程示意图;
图2所示为本申请实施例二中的图片生成方法的流程示意图;
图3所示为本申请实施例三中的一种图片模板生成装置的结构示意图;
图4所示为本申请实施例三中的另一种图片模板生成装置的结构示意图;
图5所示为本申请实施例三中的一种图片生成装置的结构示意图;
图6所示为本申请实施例三中的另一种图片生成装置的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
实施例一:
本申请实施例一提供了一种图片模板生成方法,所述图片模板生成方法可适用于各种设计文件,如支持至少一组配色信息,和/或,支持至少一个尺寸的设计文件等的图片模板的生成,其中,设计文件是指使用Adobe Illustrator、Photoshop、Sketch等图形制作软件生成的、用于生成相应图片的视觉设计文件(也可称为视觉设计稿),对此不作赘述。具体地,如图1所示,其为本申请实施例一中所述图片模板生成方法的流程示意图,所述图片模板生成方法可包括以下步骤:
步骤101:设定设计文件的图层命名规则,以指明所述设计文件的各图层中的可编辑内容的类型。
其中,所述设计文件的各图层中的可编辑内容的类型可包括文案、图片以及配色中的任意一种或多种。即,用户可修改的内容可为文案、图片以及配色等。
具体地,命名的基本格式可为:
“type1;type2;...”。其中,type可以是以下类型:image或i,代表可修改图片;text或t,代表可修改文案;colour,color或c,代可参与配色方案的变更。例如,当一个图层包含多个用户可修改类型,如可修改文案亦参与配色时,可命名为“text;color”或“t;c”。
另外,文案和图片类型还可以配置相应的可选项options,类型和可选项之间可使用“|”等分隔符分隔。此时,命名格式可表示为:“type1|options;type2|options;...”。
其中,可选项的基本格式可表示为:
“property(属性)1:value(属性值)1,property2:value2,…”。
例如,对于图片类型来说,其可选项可包括宽和/或高,以包括宽和高为例,则命名格式可表示为:
“image|width:300,height:250”。
另外,具体命名时,还可将property部分省略,只保留value部分,例如,将上述命名格式表示为“i|300,250”等。
类似地,由于对于文案类型来说,其可选项可包括字数下限、字数上限以及对齐方式中的一种或多种,因而,以包括字数下限、字数上限以及对齐方式为例,其命名格式可表示为:
“text|min:2,max:8,align:center”。其中,对齐方式可包括居左(left或l)、居中(center或c)和居右(right或r)。
同样地,具体命名时,也可将property部分省略,将字数限制合并为[min-max]的形式,例如:“t|2-8,c”等。另外,若不需要字数下限,则上述示例中,还可省略“2-”部分,表示为“t|8,c”。
由上述内容可知,当所述可编辑内容的类型为文案时,所述可编辑内容的属性可包括字数下限、字数上限以及对齐方式中的任意一种或多种;当所述可编辑内容的类型为图片时,所述可编辑内容的属性可包括宽和/或高,此处不作赘述。
另外,需要说明的是,本步骤101并不是每次生成图片模板时均需要执行的操作。如,针对任一设计文件,在根据步骤101对其图层进行命名规则的设定之后,可多次执行下述步骤102~步骤104所述的操作,此处也不作赘述。
步骤102:针对所述设计文件所涉及的尺寸中的至少一个尺寸,根据所述设计文件所支持的配色信息中的至少一组配色信息,对具备相应尺寸的所述设计文件进行配色,得到至少一个配置有相应配色信息的设计文件,并基于所得到的每一个配置有相应配色信息的设计文件,生成对应的SVG文件。
其中,所述设计文件所支持的每一组配色信息中的颜色个数与所述设计文件所涉及的、使用颜色最多的尺寸所对应的颜色个数相同;且,
所述设计文件所支持的每一组配色信息的第N个位置上的颜色与所述设计文件所支持的其它组配色信息的第N个位置上的颜色相互对应;其中,所述N为正整数,且其取值不大于所述设计文件所支持的每一组配色信息中的颜色个数。
也就是说,对于图片模板的一款设计来说,可选择该设计的使用颜色(具体可为除图片之外的其它元素使用到的颜色)最多的一个尺寸,由具备该尺寸的该设计所使用的颜色的数量来决定该设计所支持的每一组配色信息中的颜色个数,以将该设计所支持的每一组配色信息在对应的色板里(如当设计文件为Illustrator文档时,为Illustrator色板等)使用具备相同数量的颜色元素的颜色组的方式提供。另外,每组配色相同位置上的颜色相互对应,以使得当配色变更时,相同位置上的颜色值将对应被替换。
可选地,本实施例中,针对所述设计文件所涉及的任一尺寸,可通过以下方式根据所述设计文件所支持的至少一组配色信息,对具备该尺寸的所述设计文件进行配色:
在根据所述设计文件所支持的所述至少一组配色信息中的任一组配色信息对具备该尺寸的所述设计文件进行初次配色后,确定具备该尺寸的所述设计文件的当前配色信息;
根据所述设计文件所支持的所述至少一组配色信息中的任一组未使用过的配色信息以及具备该尺寸的所述设计文件的当前配色信息,对具备该尺寸的所述设计文件进行配色的变更,并在配色变更后,重新执行上述确定具备该尺寸的所述设计文件的当前配色信息并基于所述至少一组配色信息中的任一组未使用过的配色信息,对具备该尺寸的所述设计文件进行配色的变更的操作,直至已根据所述设计文件所支持的所述至少一组配色信息中的每一组配色信息,对所述设计文件进行了配色。
可选地,本实施例中,可通过以下方式确定具备该尺寸的所述设计文件的当前配色信息:
循环具备该尺寸的所述设计文件的各图层,针对满足所述设定的图层命名规则中的配色一项的每一图层,确定该图层中的元素的颜色(如,当元素的填充色为纯色时,确定该元素的填充色和边框色;而当元素的填充色为渐变色时,确定该渐变色的所有停靠色),并在该图层中的元素的颜色与所述设计文件所支持的任一组配色信息中的颜色相匹配时,增加该组配色信息的权重(如,N个元素颜色相匹配,则权重加N等,N为任意正整数);将图层循环结束后配色权重最高的一组配色信息,作为具备该尺寸的所述设计文件的当前配色信息。
当然,需要说明的是,本实施例中,除了可通过上述方式确定具备该尺寸的所述设计文件的当前配色信息之外,还可通过其他方式确定具备该尺寸的所述设计文件的当前配色信息,如,对具备该尺寸的所述设计文件每次配色时使用到的配色信息进行记录,并直接将最新记录的配色信息作为具备该尺寸的所述设计文件的当前配色信息,此处不作限定。
进一步地,针对所述设计文件所涉及的任一尺寸,在确定具备该尺寸的所述设计文件的当前配色信息之后,可通过以下方式对具备该尺寸的所述设计文件进行配色的变更:
循环具备该尺寸的所述设计文件的各图层;
针对满足所述设定的图层命名规则中的配色一项的每一图层,确定该图层中的各元素的颜色,并确定该图层中的各元素在所述当前配色信息对应的配色信息组中的位置,以及,基于该图层中的各元素在所述当前配色信息对应的配色信息组中的位置,将该图层中的各元素的颜色替换为所述设计文件所支持的所述至少一组配色信息中的任一组未使用过的配色信息所对应的配色信息组中的相应位置处的颜色。
可选地,由于设计文件所支持的配色信息对应的配色信息组通常可按照设定的顺序依次排列,因而,上述将该图层中的各元素的颜色替换为所述设计文件所支持的所述至少一组配色信息中的任一组未使用过的配色信息所对应的配色信息组中的相应位置处的颜色,可具体实施为:
将该图层中的各元素的颜色替换为所述设计文件所支持的所述至少一组配色信息对应的至少一组配色信息组中的、与所述当前配色信息对应的配色信息组相邻的下一组配色信息组中的相应位置处的颜色,以提高配色变更的效率。
其中,特殊地,当与所述当前配色信息对应的配色信息组为所述设计文件所支持的所述至少一组配色信息对应的至少一组配色信息组的最后一组时,与所述当前配色信息对应的配色信息组相邻的下一组配色信息组为所述设计文件所支持的所述至少一组配色信息对应的至少一组配色信息组中的第一组配色信息组,对此不作赘述。
另外,需要说明的是,本步骤102中,针对所述设计文件所涉及的任一尺寸,在根据所述设计文件所支持的配色信息中的至少一组配色信息,对具备该尺寸的所述设计文件进行配色时,通常可根据所述设计文件所支持的每一组配色信息(即所有配色信息),对具备该尺寸的所述设计文件进行配色,以提高后续该尺寸下的每一配色信息对应的图片模板的生成效率。
具体地,下面将针对所述设计文件所涉及的任一尺寸,以一实例来简要描述具备该尺寸的所述设计文件的配色过程,假设可根据所述设计文件所支持的每一组配色信息,对具备该尺寸的所述设计文件进行配色,则其配色过程可包括以下步骤:
步骤1、提取设计文件的配色信息(该步骤可选)。如,以设计文件为Illustrator文档为例,在Illustrator文档提供配色信息之后,可将配色提取为一份JSON描述,其中每一组配色为一个数组,数组的每一项为对应颜色的RGB值,示例:
步骤2、获取具备该尺寸的设计文件的当前配色。如,循环相应尺寸的Illustrator文档的图层,当发现图层名满足命名规范中所述的color一项时,检查该图层元素的填充色和边框色,若与某组配色的其中一个颜色相匹配,则该组配色权重加1。待循环结束,配色权重值最高的那组配色,即为当前文件使用的配色。
步骤3、重新配色并保存。如,循环相应尺寸的Illustrator文档的图层,当发现图层名满足命名规范中所述的color一项时,检查该图层元素的填充色和边框色,找到它们在当前配色信息组里的位置,并替换为相邻的下一组配色信息组里,对应位置上的颜色。待循环结束,将当前文档作为配色变更后的文档。
步骤4、重复步骤2以及步骤3,直到具备该尺寸的设计文件的所有配色文档生成完毕。需要说明的是,在重复执行步骤2时,可直接将上一次配色变更时所使用的配色作为下一次配色时,设计文件的当前配色,以降低复杂性,此处不再赘述。
需要说明的是,当元素的填充色为渐变色时,在上述步骤2中使用该渐变色所有停靠色,来和配色信息组里的颜色进行对比;在上述步骤3中对该渐变色的停靠色进行重新配色,而非元素填充本身。
另外,需要说明的是,在得到每一配置有相应配色信息的设计文件之后,即可基于相应的图形制作软件,将该配置有相应配色信息的设计文件导出为对应的SVG文件。
再有,需要说明的是,设计文件的每一图层里可以包含各种元素,例如,图片,矩形,路径等等;当将设计文件导出为对应的SVG文件后,图层中的相应元素,如图片,矩形,路径等等都会对应SVG文件中的相应节点,此处不作赘述。
另外,需要说明的是,为了进一步提高图片模板的生成效率,本步骤102中,针对任一设计文件,可针对所述设计文件所涉及的每一尺寸,根据所述设计文件所支持的至少一组配色信息(如每一组配色信息),对具备该尺寸的所述设计文件进行配色,对此也不作赘述。
步骤103:根据设定的图层命名规则,对各SVG文件进行可编辑内容的解析,得到对应的数据和元数据。
可选地,针对任一SVG文件,可通过以下方式对所述SVG文件进行可编辑内容的解析,得到对应的数据和元数据:
针对所述SVG文件的文档对象模型(DOM)中的任一节点,当所述节点的标识满足所述设定的图层命名规则中的图片一项时,生成与所述节点相对应的、键为当前节点的标识(即能够唯一标识当前节点的节点ID)且值为基于设定的图片编码方式(如base64编码方式等)对该节点对应的图片进行编码所得到的字符串的数据,以及,键为当前节点的标识且值为至少包含一个键为类型(即type),值为图片类型(即image)的键值对的元数据;或者,
当所述节点的标识满足所述设定的图层命名规则中的文案一项时,生成与所述节点相对应的、键为当前节点的标识且值为该节点对应的文案的数据,以及,键为当前节点的标识且值为至少包含一个键为类型(即type),值为文案类型(即text)的键值对的元数据;或者,
当所述节点的标识满足所述设定的图层命名规则中的配色一项时,在与所述SVG文件的颜色数据相对应的颜色元数据的对应的颜色描述项中,增加一个键为该节点的标识,值为该节点的颜色信息的键值对;其中,所述颜色数据的键为不同于系统中的任一节点的标识的设定标识(以避免冲突),值为由所述设计文件所支持的各组配色信息的代表色的颜色值所形成的数组;所述颜色元数据的键为所述设定标识、值为与所述设计文件所支持的各组配色信息一一对应的至少一组颜色描述项,每一组颜色描述项包括所述SVG文件中的所有类型为颜色的节点的颜色描述信息。
进一步地,由于所述图层命名规则还可用于指明所述设计文件的各图层中的可编辑内容的属性及对应的属性值;因而,根据设定的图层命名规则,对各SVG文件进行可编辑内容的解析,得到对应的数据和元数据,还可包括:
针对所述SVG文件的文档对象模型中的任一节点,当所述节点的标识满足所述设定的图层命名规则中的图片或文案一项时,若根据所述设定的图层命名规则,确定所述图层命名规则指明了可编辑内容的属性及对应的属性值,则与该节点相对应的元数据中还包含键为可编辑内容的属性,值为该节点的、与该可编辑内容的属性相对应的属性值的键值对。
进一步地,当所述节点的标识满足所述设定的图层命名规则中的配色一项时,在与所述SVG文件的颜色数据相对应的颜色元数据的对应的颜色描述项中,增加一个键为该节点的标识,值为该节点的颜色信息的键值对,可包括:
当所述节点的标识满足所述设定的图层命名规则中的配色一项时,若确定所述节点的填充色为纯色,则在与所述SVG文件的颜色数据相对应的颜色元数据的对应的颜色描述项中,增加一个键为该节点的标识,值为包括第一子键值对以及第二子键值对的键值对,其中,第一子键值对的键为填充类型、值为该节点的填充色对应的颜色值,第二子键值对的值为边框类型、值为该节点的边框色对应的颜色值;或者,
若确定所述节点的填充色为渐变色,则在与所述SVG文件的颜色数据相对应的颜色元数据的对应的颜色描述项中,增加一个键为该节点的标识,值为第三子键值对的键值对;其中,第三子键值对的键为填充类型、值为一个由所述节点所包含的各子节点对应的色彩信息所组成的数组;每一子节点的色彩信息包含颜色、不透明度以及位移信息。
也就是说,针对任一SVG文件,可通过以下方式对其进行文案以及图片的解析:
循环其对应的SVG DOM(SVG文档对象模型),当节点ID满足图层命名方案一节所述image或text类型时,生成相应的数据和元数据。数据和元数据各为一个字典,字典的键为当前节点的ID,值因类型而异。
如,当为image类型时,数据的值为该图片经base64编码后的字符串,元数据的值为一个字典,至少包含一个键为type,值为'image'的键值对;若配置了该图片的宽高,则还会包含键为width和height的两个键值对。示例:
数据:
{'i|300,250':'data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEAUABQAAD/…'};
元数据:{'i|300,250':{type:'image',width:300,height:250}}。
当为text类型时,数据的值为设计文件中的文案,元数据的值为一个字典,至少包含一个键为type,值为'text'的键值对。若配置了该文案的可选项,则还可能包含键为align,min或max的键值对,分别对应文案的对齐方式,最小和最大字数限制。示例:
数据:{'t|r,6':'新品一件包邮'};
元数据:{'t|r,6':{type:'text',align:'right',max:6}}。
另外,文案和图片解析完成后,可新增一个颜色数据和颜色元数据,以实现配色的解析。其中,颜色数据以及颜色元数据的键的名称任意,保持整个应用统一并避免冲突即可;颜色数据的值为一个数组,数组的每一项为所述设计文件所支持的每组配色信息的代表色的颜色值;颜色元数据的值为一个包含至少一个颜色描述项的数组,数组的颜色描述项与所述设计文件所支持的配色信息的代表色的颜色值一一对应(且,每一颜色描述项在颜色元数据中的位置、和与该颜色描述项相对应的配色信息代表色的颜色值在颜色数据中的位置通常相同),且包含SVG文档中所有类型为color节点的颜色描述。
具体地,针对任一SVG文档,可通过以下方式对其进行配色解析,以得到各节点的颜色描述:
循环该SVG文件的DOM结构,当节点ID满足图层命名方案一节所述color类型时,进行颜色解析。
首先,在颜色元数据的对应的颜色描述项中新增一个键值对,键为该节点ID,值为一个字典,下面根据填充是否纯色,这个字典的键值对有所不同。
若该节点为纯色的填充,则上述字典包含两个子键值对,一个子键值对的键为fill,另一个子键值对的键为stroke,值可为这两个颜色值的十六进制表示;
若该节点填充为渐变色,则上述字典键为fill的值,为一个数组。在SVG结构里,该节点将包含若干子节点,每个子节点包含颜色、不透明度和位移信息等,因此上述数组的每一项,均为一个包含这3个色彩信息的字典。
示例:
数据:{themes:['#6AAF57','#0098CB','#A84FE2','#D8AD3E']}
元数据:{themes:[{…},{…},{…},{…}]}
元数据的某一项展开后示例:
另外,需要说明的是,由于由一款设计的同一个尺寸的各完成配色的设计文件所导出的SVG文件的图片以及文案等内容均是一致的,因而,在对SVG文件进行解析时,可将一款设计的同一个尺寸所对应的各SVG划分为同一组,并对该组中的任意一个SVG文件进行图片和文案解析,并将相应的图片和文案解析结果作为该组中的所有SVG的图片和文案解析结果,以降低数据解析的处理量、提高解析效率。
再有,由于一款设计的同一个尺寸所对应的各SVG文件的配色互不相同,因而,在对SVG文件进行配色解析时,需对一款设计的同一个尺寸所对应的各SVG文件均进行配色解析,此处不作赘述。
步骤104:将具备对应的数据和元数据的各SVG文件作为图片模板。
至此,即完成所需图片模板的生成。
由于在本申请所述技术方案中,可直接将设计文件导出为关联有对应的数据和元数据的SVG文件后,添加到模板库供用户制作图片,省略了前端开发将设计文件转换为HTML的过程,在同一款视觉设计有多组配色和/或多个尺寸的情况下,能够快速产出图片模板,提高了图片模板以及图片的生成效率。
最后,需要说明的是,本申请实施例所述方案无语言、软件或者硬件的限制。但是,为了提高图片模板的生成效率,可优先选用性能高的编程语言,如JavaScript(Windows/Mac)、AppleScript(Mac)、VBScript(Windows)、Adobe ExtendScript(前提是选用了Adobe公司的设计软件,例如Illustrator等来设计视觉文件)等编程语言,和性能高的硬件等来实现,本申请实施例对此不作赘述。
实施例二:
本申请实施例二提供了一种基于实施例一所生成的图片模板的图片生成方法。具体地,如图2所示,其为本申请实施例二中所述图片生成方法的流程示意图,所述图片生成方法可包括以下步骤:
步骤201:针对任一图片模板,获取所述图片模板所对应的数据以及元数据,并将所述图片模板所对应的数据渲染为编辑面板;
步骤202:获取用户基于所述编辑面板对所述图片模板所对应的数据中的一个或多个数据进行修改时,所输入的修改信息;并针对每一存在修改的数据,根据该数据对应的元数据以及该数据对应的修改信息,对所述图片模板的文档对象模型中的与该数据相对应的节点的内容进行修改;
步骤203:根据修改后的各节点的内容,得到新的文档对象模型,并基于所述新的文档对象模型,生成所需的图片。
可选地,针对每一存在修改的数据,根据该数据对应的元数据以及该数据对应的修改信息,对所述图片模板的文档对象模型中的与该数据相对应的节点的内容进行修改,可包括:
若确定该数据对应的修改信息为文案(即,存在修改的该数据为值为文案的数据,且,该数据的文案存在相应改动),且,该数据对应的元数据中包含字数上限和/或字数下限,则根据该数据对应的元数据中的字数上限和/或字数下限对该数据对应的新的文案进行校验;并在校验成功(即不大于字数上限、不小于字数下限等)后,基于该数据所对应的键,确定所述图片模板的文档对象模型中的相应节点,并基于该新的文案更新该节点的文案;
其中,若该数据对应的元数据包含对齐方式,则当对齐方式为居左时,直接基于该新的文案更新该节点的文案(这是因为,浏览器默认会按照居左效果渲染);若对齐为居中或居右时,在更新该节点的文案之前,获取该节点的水平向中点或最右点坐标,记为第一坐标(x0,y0),再更新该节点的文案,之后,根据新的渲染结果,获取该节点的新的水平向中点或最右点坐标,记为第二坐标(x1,y1);根据第一坐标以及第二坐标,计算该节点的水平向偏移量x1-x0;将该节点的对齐属性值(即left值)减去该偏移量,得到该节点的新的对齐属性值。
例如,假设文案“新品一件包邮”在原设计文档里的图层名称为text|align:center”,解析出的数据和元数据分别为“{"text|align:center":"新品一件包邮"}”和“{"text|align:center":{type:"text",align:"center"}}”;则当用户变更该文案为“第二件五折”时,除了更新SVG DOM节点的文案之外,还需更新该节点左上角点相对文档原点的位移,以确保文本居中对齐。
进一步地,针对每一存在修改的数据,根据该数据对应的元数据以及该数据对应的修改信息,对所述图片模板的文档对象模型中的与该数据相对应的节点的内容进行修改,还可包括:
若确定该数据对应的修改信息为图片(即,存在修改的该数据为值为图片字符串的数据,且,该数据对应的图片存在相应改动),则若确定该数据对应的元数据含有宽高信息,则将该数据对应的新图片缩放裁切为所述宽高信息所限定的尺寸,并基于设定的图片编码方式对缩放裁切后的新图片进行编码得到对应的字符串;以及,使用该数据所对应的键,确定所述图片模板的文档对象模型中的相应节点,并根据基于缩放裁切后的新图片所生成的字符串更新该节点的原图片(即,将该节点对应的原图片更新为缩放裁切后的新图片,或者也可认为是,将该节点的图片源更新为基于缩放裁切后的新图片所生成的字符串;另外,在将该节点的图片源更新为基于缩放裁切后的新图片所生成的字符串后,还可将该节点的变换矩阵设置为单位矩阵,以使得用户能够在浏览器中看到新的图片效果);或者,
若确定该数据对应的元数据不包含宽高信息,则确定所述图片模板中,该节点是否应用遮罩图形,若是,则获取该遮罩图形的外接矩形的宽高值,并基于该外接矩形的宽高值对该新图片保持宽高比缩放,使得缩放后的新图片适合于该外接矩形(如,缩放后的新图片的宽、高分别不大于该外接矩形的宽、高等),之后,基于设定的图片编码方式对该缩放后的新图片进行编码得到对应的字符串,并根据基于该缩放后的新图片所生成的字符串更新该节点的原图片;若否(即未应用遮罩图形),则获取该节点的原图片的宽高值,并基于该原图片的宽高值对新图片保持宽高比缩放(如,使得缩放后的新图片的宽、高分别不大于该节点的原图片的宽、高等),之后,基于设定的图片编码方式对缩放后的新图片进行编码得到对应的字符串,并根据基于该缩放后的新图片所生成的字符串更新该节点的原图片。
进一步地,针对每一存在修改的数据,根据该数据对应的元数据以及该数据对应的修改信息,对所述图片模板的文档对象模型中的与该数据相对应的节点的内容进行修改,还可包括:
若确定该数据对应的修改信息为配色信息,则根据该数据对应的新的配色信息在该数据中的位置,获取该数据对应的元数据中对应位置上的颜色描述项;遍历该颜色描述项所包含的每一键值对,根据每一键值对的键获得所述图片模板的文档对象模型中的相应节点,再根据该键值对的值所包含的不同颜色信息,对该节点进行配色;
其中,若该键值对的值含有以边框类型为键的子键值对,则更新该节点的边框色(即,以该子键值对的值更新该节点的边框色);若该键值对的值含有以填充类型为键的子键值对,则若确定该子键值对的值为字符串(即,该子键值对所对应的节点的填充色为纯色),则直接更新该节点的填充色(即,以该子键值对的值更新该节点的填充色),若确定该子键值对的值为数组(即,该子键值对所对应的节点的填充色为渐变色),则删去该节点的所有子节点,再根据该数组的每一项(即该数组中的每一色彩信息),重新依次创建每一个停靠色子节点,并依次插入到该节点内。
由本申请实施例所述技术方案可知,以设计文件为Adobe Illustrator文档为例,可以使用Adobe Illustrator软件内置的功能,直接将AI文档导出为SVG。一份图片模板,可供用户编辑的内容有文案、图片以及配色等。因此,制定一种图层命名的规范,便可解析导出的SVG文件,将用户可编辑的部分抽象为数据和元数据。浏览器可以直接展现SVG文件,并支持访问和修改SVG DOM结构。上述数据和元数据与SVG DOM结构之间有对应关系,在浏览器里可以将数据部分渲染成一份编辑面板,供用户修改,使用元数据来判断数据的合法性和渲染样式(图片的尺寸、文本对齐等)。用户修改完成后,提交SVG DOM到服务端,便可使用现有技术生成最终图片。
实施例三:
基于与本申请实施例一相同的发明构思,本申请实施例二提供了一种图片模板生成装置,该图片模板生成装置的具体实施可参见上述方法实施例一中的相关描述,重复之处不再赘述,如图3所示,该图片模板生成装置30主要可包括:
文件生成模块31,可用于针对设计文件所涉及的尺寸中的至少一个尺寸,根据所述设计文件所支持的配色信息中的至少一组配色信息,对具备相应尺寸的所述设计文件进行配色,得到至少一个配置有相应配色信息的设计文件,并基于所得到的每一个配置有相应配色信息的设计文件,生成对应的SVG文件;
文件解析模块32,可用于根据设定的图层命名规则,对各SVG文件进行可编辑内容的解析,得到对应的数据和元数据;所述图层命名规则用于指明设计文件的各图层中的可编辑内容的类型;
模板确定模块33,可用于将具备对应的数据和元数据的各SVG文件作为图片模板。
其中,所述设计文件所支持的每一组配色信息中的颜色个数与所述设计文件所涉及的、使用颜色最多的尺寸所对应的颜色个数相同;且,
所述设计文件所支持的每一组配色信息的第N个位置上的颜色与所述设计文件所支持的其它组配色信息的第N个位置上的颜色相互对应;其中,所述N为正整数,且其取值不大于所述设计文件所支持的每一组配色信息中的颜色个数。
另外,所述设计文件的各图层中的可编辑内容的类型包括文案、图片以及配色中的任意一种或多种。
可选地,所述文件生成模块31,具体可用于针对所述设计文件所涉及的任一尺寸,通过以下方式根据所述设计文件所支持的至少一组配色信息,对具备该尺寸的所述设计文件进行配色:
在根据所述设计文件所支持的所述至少一组配色信息中的任一组配色信息对具备该尺寸的所述设计文件进行初次配色后,确定具备该尺寸的所述设计文件的当前配色信息;
根据所述设计文件所支持的所述至少一组配色信息中的任一组未使用过的配色信息以及具备该尺寸的所述设计文件的当前配色信息,对具备该尺寸的所述设计文件进行配色的变更,并在配色变更后,重新执行上述确定具备该尺寸的所述设计文件的当前配色信息并基于所述至少一组配色信息中的任一组未使用过的配色信息,对具备该尺寸的所述设计文件进行配色的变更的操作,直至已根据所述设计文件所支持的所述至少一组配色信息中的每一组配色信息,对所述设计文件进行了配色。
进一步地,所述文件生成模块31,具体可用于针对所述设计文件所涉及的任一尺寸,在确定具备该尺寸的所述设计文件的当前配色信息之后,通过以下方式对具备该尺寸的所述设计文件进行配色的变更:
循环具备该尺寸的所述设计文件的各图层;
针对满足所述设定的图层命名规则中的配色一项的每一图层,确定该图层中的各元素的颜色,并确定该图层中的各元素在所述当前配色信息对应的配色信息组中的位置,以及,基于该图层中的各元素在所述当前配色信息对应的配色信息组中的位置,将该图层中的各元素的颜色替换为所述设计文件所支持的所述至少一组配色信息中的任一组未使用过的配色信息所对应的配色信息组中的相应位置处的颜色。
进一步地,所述文件解析模块32,具体可用于针对任一SVG文件,通过以下方式对所述SVG文件进行可编辑内容的解析,得到对应的数据和元数据:
针对所述SVG文件的文档对象模型中的任一节点,当所述节点的标识满足所述设定的图层命名规则中的图片一项时,生成与所述节点相对应的、键为当前节点的标识且值为基于设定的图片编码方式对该节点对应的图片进行编码所得到的字符串的数据,以及,键为当前节点的标识且值为至少包含一个键为类型,值为图片类型的键值对的元数据;或者,
当所述节点的标识满足所述设定的图层命名规则中的文案一项时,生成与所述节点相对应的、键为当前节点的标识且值为该节点对应的文案的数据,以及,键为当前节点的标识且值为至少包含一个键为类型,值为文案类型的键值对的元数据;或者,
当所述节点的标识满足所述设定的图层命名规则中的配色一项时,在与所述SVG文件的颜色数据相对应的颜色元数据的对应的颜色描述项中,增加一个键为该节点的标识,值为该节点的颜色信息的键值对;其中,所述颜色数据的键为不同于系统中的任一节点的标识的设定标识,值为由所述设计文件所支持的各组配色信息的代表色的颜色值所形成的数组;所述颜色元数据的键为所述设定标识、值为与所述设计文件所支持的各组配色信息一一对应的至少一组颜色描述项,每一组颜色描述项包括所述SVG文件中的所有类型为颜色的节点的颜色描述信息。
进一步地,所述图层命名规则还用于指明所述设计文件的各图层中的可编辑内容的属性及对应的属性值;
所述文件解析模块32,还可用于针对所述SVG文件的文档对象模型中的任一节点,当所述节点的标识满足所述设定的图层命名规则中的图片或文案一项时,若根据所述设定的图层命名规则,确定所述图层命名规则指明了可编辑内容的属性及对应的属性值,则与该节点相对应的元数据中还包含键为可编辑内容的属性,值为该节点的、与该可编辑内容的属性相对应的属性值的键值对。
其中,当所述可编辑内容的类型为文案时,所述可编辑内容的属性包括字数下限、字数上限以及对齐方式中的任意一种或多种;当所述可编辑内容的类型为图片时,所述可编辑内容的属性包括宽和/或高。
进一步地,所述文件解析模块32,具体可用于当所述节点的标识满足所述设定的图层命名规则中的配色一项时,若确定所述节点的填充色为纯色,则在与所述SVG文件的颜色数据相对应的颜色元数据的对应的颜色描述项中,增加一个键为该节点的标识,值为包括第一子键值对以及第二子键值对的键值对,其中,第一子键值对的键为填充类型、值为该节点的填充色对应的颜色值,第二子键值对的值为边框类型、值为该节点的边框色对应的颜色值;或者,
若确定所述节点的填充色为渐变色,则在与所述SVG文件的颜色数据相对应的颜色元数据的对应的颜色描述项中,增加一个键为该节点的标识,值为第三子键值对的键值对;其中,第三子键值对的键为填充类型、值为一个由所述节点所包含的各子节点对应的色彩信息所组成的数组;每一子节点的色彩信息包含颜色、不透明度以及位移信息。
进一步地,基于与本申请实施例一同样的发明构思,本申请实施例三还提供了另一种图片模板生成装置,该另一种图片模板生成装置的具体实施可参见本申请实施例一中的相关描述,对此不作赘述。具体地,如图4所示,该另一种图片模板生成装置40可包括:
存储器41,可用于存储软件程序以及模块;
处理器42,可用于通过运行存储在存储器41内的软件程序以及模块,执行以下操作:
针对设计文件所涉及的尺寸中的至少一个尺寸,根据所述设计文件所支持的配色信息中的至少一组配色信息,对具备相应尺寸的所述设计文件进行配色,得到至少一个配置有相应配色信息的设计文件,并基于所得到的每一个配置有相应配色信息的设计文件,生成对应的SVG文件;
根据设定的图层命名规则,对各SVG文件进行可编辑内容的解析,得到对应的数据和元数据;所述图层命名规则用于指明设计文件的各图层中的可编辑内容的类型;
将具备对应的数据和元数据的各SVG文件作为图片模板。
其中,所述设计文件所支持的每一组配色信息中的颜色个数与所述设计文件所涉及的、使用颜色最多的尺寸所对应的颜色个数相同;且,
所述设计文件所支持的每一组配色信息的第N个位置上的颜色与所述设计文件所支持的其它组配色信息的第N个位置上的颜色相互对应;其中,所述N为正整数,且其取值不大于所述设计文件所支持的每一组配色信息中的颜色个数。
另外,所述设计文件的各图层中的可编辑内容的类型通常可包括文案、图片以及配色中的任意一种或多种。
可选地,所述处理器42具体可用于针对所述设计文件所涉及的任一尺寸,通过以下方式根据所述设计文件所支持的至少一组配色信息,对具备该尺寸的所述设计文件进行配色:
在根据所述设计文件所支持的所述至少一组配色信息中的任一组配色信息对具备该尺寸的所述设计文件进行初次配色后,确定具备该尺寸的所述设计文件的当前配色信息;
根据所述设计文件所支持的所述至少一组配色信息中的任一组未使用过的配色信息以及具备该尺寸的所述设计文件的当前配色信息,对具备该尺寸的所述设计文件进行配色的变更,并在配色变更后,重新执行上述确定具备该尺寸的所述设计文件的当前配色信息并基于所述至少一组配色信息中的任一组未使用过的配色信息,对具备该尺寸的所述设计文件进行配色的变更的操作,直至已根据所述设计文件所支持的所述至少一组配色信息中的每一组配色信息,对所述设计文件进行了配色。
另外,所述处理器42具体可用于针对所述设计文件所涉及的任一尺寸,在确定具备该尺寸的所述设计文件的当前配色信息之后,通过以下方式对具备该尺寸的所述设计文件进行配色的变更:
循环具备该尺寸的所述设计文件的各图层;
针对满足所述设定的图层命名规则中的配色一项的每一图层,确定该图层中的各元素的颜色,并确定该图层中的各元素在所述当前配色信息对应的配色信息组中的位置,以及,基于该图层中的各元素在所述当前配色信息对应的配色信息组中的位置,将该图层中的各元素的颜色替换为所述设计文件所支持的所述至少一组配色信息中的任一组未使用过的配色信息所对应的配色信息组中的相应位置处的颜色。
进一步地,所述处理器42具体可用于针对任一SVG文件,通过以下方式对所述SVG文件进行可编辑内容的解析,得到对应的数据和元数据:
针对所述SVG文件的文档对象模型中的任一节点,当所述节点的标识满足所述设定的图层命名规则中的图片一项时,生成与所述节点相对应的、键为当前节点的标识且值为基于设定的图片编码方式对该节点对应的图片进行编码所得到的字符串的数据,以及,键为当前节点的标识且值为至少包含一个键为类型,值为图片类型的键值对的元数据;或者,
当所述节点的标识满足所述设定的图层命名规则中的文案一项时,生成与所述节点相对应的、键为当前节点的标识且值为该节点对应的文案的数据,以及,键为当前节点的标识且值为至少包含一个键为类型,值为文案类型的键值对的元数据;或者,
当所述节点的标识满足所述设定的图层命名规则中的配色一项时,在与所述SVG文件的颜色数据相对应的颜色元数据的对应的颜色描述项中,增加一个键为该节点的标识,值为该节点的颜色信息的键值对;其中,所述颜色数据的键为不同于系统中的任一节点的标识的设定标识,值为由所述设计文件所支持的各组配色信息的代表色的颜色值所形成的数组;所述颜色元数据的键为所述设定标识、值为与所述设计文件所支持的各组配色信息一一对应的至少一组颜色描述项,每一组颜色描述项包括所述SVG文件中的所有类型为颜色的节点的颜色描述信息。
具体地,所述处理器42具体可用于当所述节点的标识满足所述设定的图层命名规则中的配色一项时,若确定所述节点的填充色为纯色,则在与所述SVG文件的颜色数据相对应的颜色元数据的对应的颜色描述项中,增加一个键为该节点的标识,值为包括第一子键值对以及第二子键值对的键值对,其中,第一子键值对的键为填充类型、值为该节点的填充色对应的颜色值,第二子键值对的值为边框类型、值为该节点的边框色对应的颜色值;或者,
若确定所述节点的填充色为渐变色,则在与所述SVG文件的颜色数据相对应的颜色元数据的对应的颜色描述项中,增加一个键为该节点的标识,值为第三子键值对的键值对;其中,第三子键值对的键为填充类型、值为一个由所述节点所包含的各子节点对应的色彩信息所组成的数组;每一子节点的色彩信息包含颜色、不透明度以及位移信息。
进一步地,所述图层命名规则还用于指明所述设计文件的各图层中的可编辑内容的属性及对应的属性值;
所述处理器42,还可用于针对所述SVG文件的文档对象模型中的任一节点,当所述节点的标识满足所述设定的图层命名规则中的图片或文案一项时,若根据所述设定的图层命名规则,确定所述图层命名规则指明了可编辑内容的属性及对应的属性值,则与该节点相对应的元数据中还包含键为可编辑内容的属性,值为该节点的、与该可编辑内容的属性相对应的属性值的键值对。
其中,当所述可编辑内容的类型为文案时,所述可编辑内容的属性可包括字数下限、字数上限以及对齐方式中的任意一种或多种;当所述可编辑内容的类型为图片时,所述可编辑内容的属性可包括宽和/或高。
即,在一种可能的设计中,该另一种图片模板生成装置40的结构中可包括存储器41和处理器42,所述处理器42被配置为支持执行本申请实施例一中的图片模板生成方案。所述存储器41用于与处理器42耦合,其保存处理器42执行本申请实施例一中的图片模板生成方案所必要的程序指令和数据。
其中,存储器41可包括内存411和外部存储器412,内存411用于暂时存放处理器42中的运算数据,以及与硬盘等外部存储器412交换的数据,处理器42通过内存411与外部存储器412进行数据交换。内存411可以为非易失存储器(Non-Volatile Random AccessMemory,NVRAM)、动态随机存储器(Dynamic Random Access Memory,DRAM)、静态随机存储器(Static RAM,SRAM)、Flash闪存等其中之一;外部存储器412可以为硬盘、光盘、USB盘、软盘或磁带机等。
另外,处理器42可以是中央处理器(CPU),通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC),现场可编程门阵列(FPGA)或者其他可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器42也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
再有,本领域普通技术人员可以理解,所述存储器41和所述处理器42之间可通过图4中所示的总线43通信相连;且,图4所示的结构仅为示意,其并不对该另一种图片模板生成装置40的结构造成限定。例如,该另一种图片模板生成装置40还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置等。
进一步地,基于与本申请实施例二相同的发明构思,本申请实施例三还提供了一种图片生成装置,该图片生成装置的具体实施可参见上述方法实施例二中的相关描述,重复之处不再赘述,如图5所示,该图片生成装置50主要可包括:
数据渲染模块51,可用于针对任一图片模板,获取所述图片模板所对应的数据以及元数据,并将所述图片模板所对应的数据渲染为编辑面板;其中,所述图片模板为基于本申请实施例所述图片模板的生成方法所生成的图片模板;
数据修改模块52,可用于获取用户基于所述编辑面板对所述图片模板所对应的数据中的一个或多个数据进行修改时,所输入的修改信息;并针对每一存在修改的数据,根据该数据对应的元数据以及该数据对应的修改信息,对所述图片模板的文档对象模型中的与该数据相对应的节点的内容进行修改;
图片生成模块53,可用于根据修改后的各节点的内容,得到新的文档对象模型,并基于所述新的文档对象模型,生成所需的图片。
可选地,所述数据修改模块52具体可用于针对每一存在修改的数据,若确定该数据对应的修改信息为文案,且,该数据对应的元数据中包含字数上限和/或字数下限,则根据该数据对应的元数据中的字数上限和/或字数下限对该数据对应的新的文案进行校验;并在校验成功后,基于该数据所对应的键,确定所述图片模板的文档对象模型中的相应节点,并基于该新的文案更新该节点的文案;
其中,若该数据对应的元数据包含对齐方式,则当对齐方式为居左时,直接基于该新的文案更新该节点的文案;若对齐为居中或居右时,在更新该节点的文案之前,获取该节点的水平向中点或最右点坐标,记为第一坐标,再更新该节点的文案,之后,根据新的渲染结果,获取该节点的新的水平向中点或最右点坐标,记为第二坐标;根据第一坐标以及第二坐标,计算该节点的水平向偏移量;将该节点的对齐属性值减去该偏移量,得到该节点的新的对齐属性值。
进一步地,所述数据修改模块52,具体还可用于针对每一存在修改的数据,若确定该数据对应的修改信息为图片,则若确定该数据对应的元数据含有宽高信息,则将该数据对应的新图片缩放裁切为所述宽高信息所限定的尺寸,并基于设定的图片编码方式对缩放裁切后的新图片进行编码得到对应的字符串;以及,使用该数据所对应的键,确定所述图片模板的文档对象模型中的相应节点,并根据基于缩放裁切后的新图片所生成的字符串更新该节点的原图片;
若确定该数据对应的元数据不包含宽高信息,则确定所述图片模板中,该节点是否应用遮罩图形,若是,则获取该遮罩图形的外接矩形的宽高值,并基于该外接矩形的宽高值对该新图片保持宽高比缩放,使得缩放后的新图片适合于该外接矩形,之后,基于设定的图片编码方式对该缩放后的新图片进行编码得到对应的字符串,并根据基于该缩放后的新图片所生成的字符串更新该节点的原图片;若否,则获取该节点的原图片的宽高值,并基于该原图片的宽高值对新图片保持宽高比缩放,之后,基于设定的图片编码方式对缩放后的新图片进行编码得到对应的字符串,并根据基于该缩放后的新图片所生成的字符串更新该节点的原图片。
进一步地,所述数据修改模块52,具体还可用于针对每一存在修改的数据,若确定该数据对应的修改信息为配色信息,则根据该数据对应的新的配色信息在该数据中的位置,获取该数据对应的元数据中对应位置上的颜色描述项;遍历该颜色描述项所包含的每一键值对,根据每一键值对的键获得所述图片模板的文档对象模型中的相应节点,再根据该键值对的值所包含的不同颜色信息,对该节点进行配色;
其中,若该键值对的值含有以边框类型为键的子键值对,则更新该节点的边框色;若该键值对的值含有以填充类型为键的子键值对,则若确定该子键值对的值为字符串,则直接更新该节点的填充色,若确定该子键值对的值为数组,则删去该节点的所有子节点,再根据该数组的每一项,重新依次创建每一个停靠色子节点,并依次插入到该节点内。
进一步地,基于与本申请实施例二相同的发明构思,本申请实施例三还提供了另一种图片生成装置,该另一种图片生成装置的具体实施可参见上述方法实施例二中的相关描述,重复之处不再赘述,如图6所示,该另一种图片生成装置60主要可包括:
存储器61,可用于存储软件程序以及模块;
处理器62,可用于通过运行存储在存储器61内的软件程序以及模块,执行以下操作:
针对任一图片模板,获取所述图片模板所对应的数据以及元数据,并将所述图片模板所对应的数据渲染为编辑面板;其中,所述图片模板为基于本申请实施例所述图片模板的生成方法所生成的图片模板;
获取用户基于所述编辑面板对所述图片模板所对应的数据中的一个或多个数据进行修改时,所输入的修改信息;并针对每一存在修改的数据,根据该数据对应的元数据以及该数据对应的修改信息,对所述图片模板的文档对象模型中的与该数据相对应的节点的内容进行修改;
根据修改后的各节点的内容,得到新的文档对象模型,并基于所述新的文档对象模型,生成所需的图片。
可选地,所述处理器62具体可用于针对每一存在修改的数据,若确定该数据对应的修改信息为文案,且,该数据对应的元数据中包含字数上限和/或字数下限,则根据该数据对应的元数据中的字数上限和/或字数下限对该数据对应的新的文案进行校验;并在校验成功后,基于该数据所对应的键,确定所述图片模板的文档对象模型中的相应节点,并基于该新的文案更新该节点的文案;
其中,若该数据对应的元数据包含对齐方式,则当对齐方式为居左时,直接基于该新的文案更新该节点的文案;若对齐为居中或居右时,在更新该节点的文案之前,获取该节点的水平向中点或最右点坐标,记为第一坐标,再更新该节点的文案,之后,根据新的渲染结果,获取该节点的新的水平向中点或最右点坐标,记为第二坐标;根据第一坐标以及第二坐标,计算该节点的水平向偏移量;将该节点的对齐属性值减去该偏移量,得到该节点的新的对齐属性值。
可选地,所述处理器62具体可用于针对每一存在修改的数据,若确定该数据对应的修改信息为图片,则若确定该数据对应的元数据含有宽高信息,则将该数据对应的新图片缩放裁切为所述宽高信息所限定的尺寸,并基于设定的图片编码方式对缩放裁切后的新图片进行编码得到对应的字符串;以及,使用该数据所对应的键,确定所述图片模板的文档对象模型中的相应节点,并根据基于缩放裁切后的新图片所生成的字符串更新该节点的原图片;
若确定该数据对应的元数据不包含宽高信息,则确定所述图片模板中,该节点是否应用遮罩图形,若是,则获取该遮罩图形的外接矩形的宽高值,并基于该外接矩形的宽高值对该新图片保持宽高比缩放,使得缩放后的新图片适合于该外接矩形,之后,基于设定的图片编码方式对该缩放后的新图片进行编码得到对应的字符串,并根据基于该缩放后的新图片所生成的字符串更新该节点的原图片;若否,则获取该节点的原图片的宽高值,并基于该原图片的宽高值对新图片保持宽高比缩放,之后,基于设定的图片编码方式对缩放后的新图片进行编码得到对应的字符串,并根据基于该缩放后的新图片所生成的字符串更新该节点的原图片。
可选地,所述处理器62具体可用于针对每一存在修改的数据,若确定该数据对应的修改信息为配色信息,则根据该数据对应的新的配色信息在该数据中的位置,获取该数据对应的元数据中对应位置上的颜色描述项;遍历该颜色描述项所包含的每一键值对,根据每一键值对的键获得所述图片模板的文档对象模型中的相应节点,再根据该键值对的值所包含的不同颜色信息,对该节点进行配色;
其中,若该键值对的值含有以边框类型为键的子键值对,则更新该节点的边框色;若该键值对的值含有以填充类型为键的子键值对,则若确定该子键值对的值为字符串,则直接更新该节点的填充色,若确定该子键值对的值为数组,则删去该节点的所有子节点,再根据该数组的每一项,重新依次创建每一个停靠色子节点,并依次插入到该节点内。
即,在一种可能的设计中,该另一种图片生成装置60的结构中可包括存储器61和处理器62,所述处理器62被配置为支持执行本申请实施例二中的图片生成方案。所述存储器61用于与处理器62耦合,其保存处理器62执行本申请实施例二中的图片生成方案所必要的程序指令和数据。
其中,存储器61可包括内存611和外部存储器612,内存611用于暂时存放处理器62中的运算数据,以及与硬盘等外部存储器612交换的数据,处理器62通过内存611与外部存储器612进行数据交换。内存611可以为非易失存储器、动态随机存储器、静态随机存储器、Flash闪存等其中之一;外部存储器612可以为硬盘、光盘、USB盘、软盘或磁带机等。
另外,处理器62可以是中央处理器(CPU),通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC),现场可编程门阵列(FPGA)或者其他可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器62也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
再有,本领域普通技术人员可以理解,所述存储器61和所述处理器62之间可通过图6中所示的总线63通信相连;且,图6所示的结构仅为示意,其并不对该另一种图片生成装置60的结构造成限定。例如,该另一种图片生成装置60还可包括比图6中所示更多或者更少的组件,或者具有与图6所示不同的配置等。
本领域技术人员应明白,本申请的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (24)
1.一种图片模板生成方法,其特征在于,包括:
针对设计文件多个元素的尺寸中的至少一个尺寸,根据所述设计文件所支持的配色信息中的至少一组配色信息,对具备相应尺寸的所述设计文件进行配色,得到至少一个配置有相应配色信息的设计文件,并基于所得到的每一个配置有相应配色信息的设计文件,生成对应的可缩放矢量图形SVG文件;
根据设定的图层命名规则,对各SVG文件进行可编辑内容的解析,得到对应的数据和元数据;所述图层命名规则用于指明设计文件的各图层中的可编辑内容的类型;
将具备对应的数据和元数据的各SVG文件作为图片模板。
2.如权利要求1所述的方法,其特征在于,所述设计文件所支持的每一组配色信息中的颜色个数与所述设计文件所涉及的、使用颜色最多的尺寸所对应的颜色个数相同;且,
所述设计文件所支持的每一组配色信息的第N个位置上的颜色与所述设计文件所支持的其它组配色信息的第N个位置上的颜色相互对应;其中,所述N为正整数,且其取值不大于所述设计文件所支持的每一组配色信息中的颜色个数。
3.如权利要求1所述的方法,其特征在于,所述设计文件的各图层中的可编辑内容的类型包括文案、图片以及配色中的任意一种或多种。
4.如权利要求3所述的方法,其特征在于,针对所述设计文件所涉及的任一尺寸,通过以下方式根据所述设计文件所支持的至少一组配色信息,对具备该尺寸的所述设计文件进行配色:
在根据所述设计文件所支持的所述至少一组配色信息中的任一组配色信息对具备该尺寸的所述设计文件进行初次配色后,确定具备该尺寸的所述设计文件的当前配色信息;
根据所述设计文件所支持的所述至少一组配色信息中的任一组未使用过的配色信息以及具备该尺寸的所述设计文件的当前配色信息,对具备该尺寸的所述设计文件进行配色的变更,并在配色变更后,重新执行上述确定具备该尺寸的所述设计文件的当前配色信息并基于所述至少一组配色信息中的任一组未使用过的配色信息,对具备该尺寸的所述设计文件进行配色的变更的操作,直至已根据所述设计文件所支持的所述至少一组配色信息中的每一组配色信息,对所述设计文件进行了配色。
5.如权利要求4所述的方法,其特征在于,针对所述设计文件所涉及的任一尺寸,在确定具备该尺寸的所述设计文件的当前配色信息之后,通过以下方式对具备该尺寸的所述设计文件进行配色的变更:
循环具备该尺寸的所述设计文件的各图层;
针对满足所述设定的图层命名规则中的配色一项的每一图层,确定该图层中的各元素的颜色,并确定该图层中的各元素在所述当前配色信息对应的配色信息组中的位置,以及,基于该图层中的各元素在所述当前配色信息对应的配色信息组中的位置,将该图层中的各元素的颜色替换为所述设计文件所支持的所述至少一组配色信息中的任一组未使用过的配色信息所对应的配色信息组中的相应位置处的颜色。
6.如权利要求3所述的方法,其特征在于,针对任一SVG文件,通过以下方式对所述SVG文件进行可编辑内容的解析,得到对应的数据和元数据:
针对所述SVG文件的文档对象模型中的任一节点,当所述节点的标识满足所述设定的图层命名规则中的图片一项时,生成与所述节点相对应的、键为当前节点的标识且值为基于设定的图片编码方式对该节点对应的图片进行编码所得到的字符串的数据,以及,键为当前节点的标识且值为至少包含一个键为类型,值为图片类型的键值对的元数据;或者,
当所述节点的标识满足所述设定的图层命名规则中的文案一项时,生成与所述节点相对应的、键为当前节点的标识且值为该节点对应的文案的数据,以及,键为当前节点的标识且值为至少包含一个键为类型,值为文案类型的键值对的元数据;或者,
当所述节点的标识满足所述设定的图层命名规则中的配色一项时,在与所述SVG文件的颜色数据相对应的颜色元数据的对应的颜色描述项中,增加一个键为该节点的标识,值为该节点的颜色信息的键值对;其中,所述颜色数据的键为不同于系统中的任一节点的标识的设定标识,值为由所述设计文件所支持的各组配色信息的代表色的颜色值所形成的数组;所述颜色元数据的键为所述设定标识、值为与所述设计文件所支持的各组配色信息一一对应的至少一组颜色描述项,每一组颜色描述项包括所述SVG文件中的所有类型为颜色的节点的颜色描述信息。
7.如权利要求6所述的方法,其特征在于,所述图层命名规则还用于指明所述设计文件的各图层中的可编辑内容的属性及对应的属性值;则根据设定的图层命名规则,对各SVG文件进行可编辑内容的解析,得到对应的数据和元数据,还包括:
针对所述SVG文件的文档对象模型中的任一节点,当所述节点的标识满足所述设定的图层命名规则中的图片或文案一项时,若根据所述设定的图层命名规则,确定所述图层命名规则指明了可编辑内容的属性及对应的属性值,则与该节点相对应的元数据中还包含键为可编辑内容的属性,值为该节点的、与该可编辑内容的属性相对应的属性值的键值对。
8.如权利要求7所述的方法,其特征在于,当所述可编辑内容的类型为文案时,所述可编辑内容的属性包括字数下限、字数上限以及对齐方式中的任意一种或多种;当所述可编辑内容的类型为图片时,所述可编辑内容的属性包括宽和/或高。
9.如权利要求6所述的方法,其特征在于,当所述节点的标识满足所述设定的图层命名规则中的配色一项时,在与所述SVG文件的颜色数据相对应的颜色元数据的对应的颜色描述项中,增加一个键为该节点的标识,值为该节点的颜色信息的键值对,包括:
当所述节点的标识满足所述设定的图层命名规则中的配色一项时,若确定所述节点的填充色为纯色,则在与所述SVG文件的颜色数据相对应的颜色元数据的对应的颜色描述项中,增加一个键为该节点的标识,值为包括第一子键值对以及第二子键值对的键值对,其中,第一子键值对的键为填充类型、值为该节点的填充色对应的颜色值,第二子键值对的值为边框类型、值为该节点的边框色对应的颜色值;或者,
若确定所述节点的填充色为渐变色,则在与所述SVG文件的颜色数据相对应的颜色元数据的对应的颜色描述项中,增加一个键为该节点的标识,值为第三子键值对的键值对;其中,第三子键值对的键为填充类型、值为一个由所述节点所包含的各子节点对应的色彩信息所组成的数组;每一子节点的色彩信息包含颜色、不透明度以及位移信息。
10.一种基于权利要求1~9任一所述方法所生成的图片模板的图片生成方法,其特征在于,包括:
针对任一图片模板,获取所述图片模板所对应的数据以及元数据,并将所述图片模板所对应的数据渲染为编辑面板;
获取用户基于所述编辑面板对所述图片模板所对应的数据中的一个或多个数据进行修改时,所输入的修改信息;并针对每一存在修改的数据,根据该数据对应的元数据以及该数据对应的修改信息,对所述图片模板的文档对象模型中的与该数据相对应的节点的内容进行修改;
根据修改后的各节点的内容,得到新的文档对象模型,并基于所述新的文档对象模型,生成所需的图片。
11.如权利要求10所述的方法,其特征在于,针对每一存在修改的数据,根据该数据对应的元数据以及该数据对应的修改信息,对所述图片模板的文档对象模型中的与该数据相对应的节点的内容进行修改,包括:
若确定该数据对应的修改信息为文案,且,该数据对应的元数据中包含字数上限和/或字数下限,则根据该数据对应的元数据中的字数上限和/或字数下限对该数据对应的新的文案进行校验;并在校验成功后,基于该数据所对应的键,确定所述图片模板的文档对象模型中的相应节点,并基于该新的文案更新该节点的文案;
其中,若该数据对应的元数据包含对齐方式,则当对齐方式为居左时,直接基于该新的文案更新该节点的文案;若对齐为居中或居右时,在更新该节点的文案之前,获取该节点的水平向中点或最右点坐标,记为第一坐标,再更新该节点的文案,之后,根据新的渲染结果,获取该节点的新的水平向中点或最右点坐标,记为第二坐标;根据第一坐标以及第二坐标,计算该节点的水平向偏移量;将该节点的对齐属性值减去该偏移量,得到该节点的新的对齐属性值。
12.如权利要求10所述的方法,其特征在于,针对每一存在修改的数据,根据该数据对应的元数据以及该数据对应的修改信息,对所述图片模板的文档对象模型中的与该数据相对应的节点的内容进行修改,包括:
若确定该数据对应的修改信息为图片,则若确定该数据对应的元数据含有宽高信息,则将该数据对应的新图片缩放裁切为所述宽高信息所限定的尺寸,并基于设定的图片编码方式对缩放裁切后的新图片进行编码得到对应的字符串;以及,使用该数据所对应的键,确定所述图片模板的文档对象模型中的相应节点,并根据基于缩放裁切后的新图片所生成的字符串更新该节点的原图片;
若确定该数据对应的元数据不包含宽高信息,则确定所述图片模板中,该节点是否应用遮罩图形,若是,则获取该遮罩图形的外接矩形的宽高值,并基于该外接矩形的宽高值对该新图片保持宽高比缩放,使得缩放后的新图片适合于该外接矩形,之后,基于设定的图片编码方式对该缩放后的新图片进行编码得到对应的字符串,并根据基于该缩放后的新图片所生成的字符串更新该节点的原图片;若否,则获取该节点的原图片的宽高值,并基于该原图片的宽高值对新图片保持宽高比缩放,之后,基于设定的图片编码方式对缩放后的新图片进行编码得到对应的字符串,并根据基于该缩放后的新图片所生成的字符串更新该节点的原图片。
13.如权利要求10所述的方法,其特征在于,针对每一存在修改的数据,根据该数据对应的元数据以及该数据对应的修改信息,对所述图片模板的文档对象模型中的与该数据相对应的节点的内容进行修改,包括:
若确定该数据对应的修改信息为配色信息,则根据该数据对应的新的配色信息在该数据中的位置,获取该数据对应的元数据中对应位置上的颜色描述项;遍历该颜色描述项所包含的每一键值对,根据每一键值对的键获得所述图片模板的文档对象模型中的相应节点,再根据该键值对的值所包含的不同颜色信息,对该节点进行配色;
其中,若该键值对的值含有以边框类型为键的子键值对,则更新该节点的边框色;若该键值对的值含有以填充类型为键的子键值对,则若确定该子键值对的值为字符串,则直接更新该节点的填充色,若确定该子键值对的值为数组,则删去该节点的所有子节点,再根据该数组的每一项,重新依次创建每一个停靠色子节点,并依次插入到该节点内。
14.一种图片模板生成装置,其特征在于,包括:
文件生成模块,用于针对设计文件多个元素的尺寸中的至少一个尺寸,根据所述设计文件所支持的配色信息中的至少一组配色信息,对具备相应尺寸的所述设计文件进行配色,得到至少一个配置有相应配色信息的设计文件,并基于所得到的每一个配置有相应配色信息的设计文件,生成对应的可缩放矢量图形SVG文件;
文件解析模块,用于根据设定的图层命名规则,对各SVG文件进行可编辑内容的解析,得到对应的数据和元数据;所述图层命名规则用于指明设计文件的各图层中的可编辑内容的类型;
模板确定模块,用于将具备对应的数据和元数据的各SVG文件作为图片模板。
15.一种图片生成装置,其特征在于,包括:
数据渲染模块,用于针对任一图片模板,获取所述图片模板所对应的数据以及元数据,并将所述图片模板所对应的数据渲染为编辑面板;其中,所述图片模板为基于权利要求1~9任一所述方法所生成的图片模板;
数据修改模块,用于获取用户基于所述编辑面板对所述图片模板所对应的数据中的一个或多个数据进行修改时,所输入的修改信息;并针对每一存在修改的数据,根据该数据对应的元数据以及该数据对应的修改信息,对所述图片模板的文档对象模型中的与该数据相对应的节点的内容进行修改;
图片生成模块,用于根据修改后的各节点的内容,得到新的文档对象模型,并基于所述新的文档对象模型,生成所需的图片。
16.一种图片模板生成装置,其特征在于,包括:
存储器,用于存储软件程序以及模块;
处理器,用于通过运行存储在存储器内的软件程序以及模块,执行以下操作:
针对设计文件多个元素的尺寸中的至少一个尺寸,根据所述设计文件所支持的配色信息中的至少一组配色信息,对具备相应尺寸的所述设计文件进行配色,得到至少一个配置有相应配色信息的设计文件,并基于所得到的每一个配置有相应配色信息的设计文件,生成对应的可缩放矢量图形SVG文件;
根据设定的图层命名规则,对各SVG文件进行可编辑内容的解析,得到对应的数据和元数据;所述图层命名规则用于指明设计文件的各图层中的可编辑内容的类型;
将具备对应的数据和元数据的各SVG文件作为图片模板。
17.如权利要求16所述的装置,其特征在于,
所述处理器,具体用于针对所述设计文件所涉及的任一尺寸,通过以下方式根据所述设计文件所支持的至少一组配色信息,对具备该尺寸的所述设计文件进行配色:
在根据所述设计文件所支持的所述至少一组配色信息中的任一组配色信息对具备该尺寸的所述设计文件进行初次配色后,确定具备该尺寸的所述设计文件的当前配色信息;
根据所述设计文件所支持的所述至少一组配色信息中的任一组未使用过的配色信息以及具备该尺寸的所述设计文件的当前配色信息,对具备该尺寸的所述设计文件进行配色的变更,并在配色变更后,重新执行上述确定具备该尺寸的所述设计文件的当前配色信息并基于所述至少一组配色信息中的任一组未使用过的配色信息,对具备该尺寸的所述设计文件进行配色的变更的操作,直至已根据所述设计文件所支持的所述至少一组配色信息中的每一组配色信息,对所述设计文件进行了配色。
18.如权利要求16所述的装置,其特征在于,
所述处理器,具体用于针对任一SVG文件,通过以下方式对所述SVG文件进行可编辑内容的解析,得到对应的数据和元数据:
针对所述SVG文件的文档对象模型中的任一节点,当所述节点的标识满足所述设定的图层命名规则中的图片一项时,生成与所述节点相对应的、键为当前节点的标识且值为基于设定的图片编码方式对该节点对应的图片进行编码所得到的字符串的数据,以及,键为当前节点的标识且值为至少包含一个键为类型,值为图片类型的键值对的元数据;或者,
当所述节点的标识满足所述设定的图层命名规则中的文案一项时,生成与所述节点相对应的、键为当前节点的标识且值为该节点对应的文案的数据,以及,键为当前节点的标识且值为至少包含一个键为类型,值为文案类型的键值对的元数据;或者,
当所述节点的标识满足所述设定的图层命名规则中的配色一项时,在与所述SVG文件的颜色数据相对应的颜色元数据的对应的颜色描述项中,增加一个键为该节点的标识,值为该节点的颜色信息的键值对;其中,所述颜色数据的键为不同于系统中的任一节点的标识的设定标识,值为由所述设计文件所支持的各组配色信息的代表色的颜色值所形成的数组;所述颜色元数据的键为所述设定标识、值为与所述设计文件所支持的各组配色信息一一对应的至少一组颜色描述项,每一组颜色描述项包括所述SVG文件中的所有类型为颜色的节点的颜色描述信息。
19.如权利要求18所述的装置,其特征在于,所述图层命名规则还用于指明所述设计文件的各图层中的可编辑内容的属性及对应的属性值;
所述处理器,还用于针对所述SVG文件的文档对象模型中的任一节点,当所述节点的标识满足所述设定的图层命名规则中的图片或文案一项时,若根据所述设定的图层命名规则,确定所述图层命名规则指明了可编辑内容的属性及对应的属性值,则与该节点相对应的元数据中还包含键为可编辑内容的属性,值为该节点的、与该可编辑内容的属性相对应的属性值的键值对。
20.如权利要求18所述的装置,其特征在于,
所述处理器,具体用于当所述节点的标识满足所述设定的图层命名规则中的配色一项时,若确定所述节点的填充色为纯色,则在与所述SVG文件的颜色数据相对应的颜色元数据的对应的颜色描述项中,增加一个键为该节点的标识,值为包括第一子键值对以及第二子键值对的键值对,其中,第一子键值对的键为填充类型、值为该节点的填充色对应的颜色值,第二子键值对的值为边框类型、值为该节点的边框色对应的颜色值;或者,
若确定所述节点的填充色为渐变色,则在与所述SVG文件的颜色数据相对应的颜色元数据的对应的颜色描述项中,增加一个键为该节点的标识,值为第三子键值对的键值对;其中,第三子键值对的键为填充类型、值为一个由所述节点所包含的各子节点对应的色彩信息所组成的数组;每一子节点的色彩信息包含颜色、不透明度以及位移信息。
21.一种图片生成装置,其特征在于,包括:
存储器,用于存储软件程序以及模块;
处理器,用于通过运行存储在存储器内的软件程序以及模块,执行以下操作:
针对任一图片模板,获取所述图片模板所对应的数据以及元数据,并将所述图片模板所对应的数据渲染为编辑面板;其中,所述图片模板为基于权利要求1~9任一所述方法所生成的图片模板;
获取用户基于所述编辑面板对所述图片模板所对应的数据中的一个或多个数据进行修改时,所输入的修改信息;并针对每一存在修改的数据,根据该数据对应的元数据以及该数据对应的修改信息,对所述图片模板的文档对象模型中的与该数据相对应的节点的内容进行修改;
根据修改后的各节点的内容,得到新的文档对象模型,并基于所述新的文档对象模型,生成所需的图片。
22.如权利要求21所述的装置,其特征在于,
所述处理器,具体用于针对每一存在修改的数据,若确定该数据对应的修改信息为文案,且,该数据对应的元数据中包含字数上限和/或字数下限,则根据该数据对应的元数据中的字数上限和/或字数下限对该数据对应的新的文案进行校验;并在校验成功后,基于该数据所对应的键,确定所述图片模板的文档对象模型中的相应节点,并基于该新的文案更新该节点的文案;
其中,若该数据对应的元数据包含对齐方式,则当对齐方式为居左时,直接基于该新的文案更新该节点的文案;若对齐为居中或居右时,在更新该节点的文案之前,获取该节点的水平向中点或最右点坐标,记为第一坐标,再更新该节点的文案,之后,根据新的渲染结果,获取该节点的新的水平向中点或最右点坐标,记为第二坐标;根据第一坐标以及第二坐标,计算该节点的水平向偏移量;将该节点的对齐属性值减去该偏移量,得到该节点的新的对齐属性值。
23.如权利要求21所述的装置,其特征在于,
所述处理器,具体用于针对每一存在修改的数据,若确定该数据对应的修改信息为图片,则若确定该数据对应的元数据含有宽高信息,则将该数据对应的新图片缩放裁切为所述宽高信息所限定的尺寸,并基于设定的图片编码方式对缩放裁切后的新图片进行编码得到对应的字符串;以及,使用该数据所对应的键,确定所述图片模板的文档对象模型中的相应节点,并根据基于缩放裁切后的新图片所生成的字符串更新该节点的原图片;
若确定该数据对应的元数据不包含宽高信息,则确定所述图片模板中,该节点是否应用遮罩图形,若是,则获取该遮罩图形的外接矩形的宽高值,并基于该外接矩形的宽高值对该新图片保持宽高比缩放,使得缩放后的新图片适合于该外接矩形,之后,基于设定的图片编码方式对该缩放后的新图片进行编码得到对应的字符串,并根据基于该缩放后的新图片所生成的字符串更新该节点的原图片;若否,则获取该节点的原图片的宽高值,并基于该原图片的宽高值对新图片保持宽高比缩放,之后,基于设定的图片编码方式对缩放后的新图片进行编码得到对应的字符串,并根据基于该缩放后的新图片所生成的字符串更新该节点的原图片。
24.如权利要求21所述的装置,其特征在于,
所述处理器,具体用于针对每一存在修改的数据,若确定该数据对应的修改信息为配色信息,则根据该数据对应的新的配色信息在该数据中的位置,获取该数据对应的元数据中对应位置上的颜色描述项;遍历该颜色描述项所包含的每一键值对,根据每一键值对的键获得所述图片模板的文档对象模型中的相应节点,再根据该键值对的值所包含的不同颜色信息,对该节点进行配色;
其中,若该键值对的值含有以边框类型为键的子键值对,则更新该节点的边框色;若该键值对的值含有以填充类型为键的子键值对,则若确定该子键值对的值为字符串,则直接更新该节点的填充色,若确定该子键值对的值为数组,则删去该节点的所有子节点,再根据该数组的每一项,重新依次创建每一个停靠色子节点,并依次插入到该节点内。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2016100485389 | 2016-01-25 | ||
CN201610048538 | 2016-01-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107025676A CN107025676A (zh) | 2017-08-08 |
CN107025676B true CN107025676B (zh) | 2021-02-02 |
Family
ID=59524436
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610892482.5A Active CN107025676B (zh) | 2016-01-25 | 2016-10-13 | 一种图片模板以及图片的生成方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107025676B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108182718A (zh) * | 2018-01-04 | 2018-06-19 | 美的集团电子商务有限公司 | 图片的生成方法、装置和计算机可读存储介质 |
CN110008450B (zh) * | 2018-01-05 | 2023-02-28 | 阿里巴巴集团控股有限公司 | 图片的生成方法、装置、设备和介质 |
CN109885298A (zh) * | 2019-02-20 | 2019-06-14 | 百度在线网络技术(北京)有限公司 | 一种ui组件生成方法、装置和终端设备 |
CN110659371B (zh) * | 2019-08-21 | 2022-07-01 | 苏宁云计算有限公司 | 一种目标对象的banner图的批量自动生成方法及装置 |
CN110706313A (zh) * | 2019-09-29 | 2020-01-17 | 杭州洋驼网络科技有限公司 | 一种动态生成图片的方法 |
CN112927314B (zh) * | 2019-12-06 | 2023-01-31 | 腾讯数码(天津)有限公司 | 一种图像数据处理方法、装置以及计算机设备 |
CN112929732B (zh) * | 2019-12-06 | 2022-07-08 | 腾讯科技(深圳)有限公司 | 视频的处理方法、装置和计算机存储介质 |
CN111737196B (zh) * | 2020-06-22 | 2023-11-10 | 国能日新科技股份有限公司 | 基于电力交易系统气象资源网格文本转矢量图方法及装置 |
CN112257000A (zh) * | 2020-10-28 | 2021-01-22 | 浙江大搜车软件技术有限公司 | 图片生成方法、装置、计算机设备和存储介质 |
CN112732259B (zh) * | 2021-01-11 | 2024-05-24 | 赞同科技股份有限公司 | 基于人工智能的前端交互页面转换方法、装置及介质 |
CN113112573B (zh) * | 2021-04-14 | 2024-05-14 | 多点(深圳)数字科技有限公司 | 基于标记语言的图片生成方法、装置和电子设备 |
CN117456019B (zh) * | 2023-06-13 | 2024-06-14 | 杭州比智科技有限公司 | 一种基于g2组件库实现柱状图可变颜色条纹柱的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102223568A (zh) * | 2011-06-03 | 2011-10-19 | 深圳创维数字技术股份有限公司 | 一种广告播放系统和方法 |
CN103353863A (zh) * | 2013-05-29 | 2013-10-16 | 徐华 | 一种文本模板生成方法 |
CN103425466A (zh) * | 2012-05-17 | 2013-12-04 | 腾讯科技(深圳)有限公司 | 配色处理方法和装置 |
CN104168417A (zh) * | 2014-05-20 | 2014-11-26 | 腾讯科技(深圳)有限公司 | 图片处理方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7054508B2 (en) * | 2000-08-03 | 2006-05-30 | Canon Kabushiki Kaisha | Data editing apparatus and method |
CN102436374B (zh) * | 2011-09-29 | 2014-09-10 | 奇智软件(北京)有限公司 | 一种自定义用户界面的皮肤的方法 |
-
2016
- 2016-10-13 CN CN201610892482.5A patent/CN107025676B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102223568A (zh) * | 2011-06-03 | 2011-10-19 | 深圳创维数字技术股份有限公司 | 一种广告播放系统和方法 |
CN103425466A (zh) * | 2012-05-17 | 2013-12-04 | 腾讯科技(深圳)有限公司 | 配色处理方法和装置 |
CN103353863A (zh) * | 2013-05-29 | 2013-10-16 | 徐华 | 一种文本模板生成方法 |
CN104168417A (zh) * | 2014-05-20 | 2014-11-26 | 腾讯科技(深圳)有限公司 | 图片处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107025676A (zh) | 2017-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107025676B (zh) | 一种图片模板以及图片的生成方法及相关装置 | |
US8756489B2 (en) | Method and system for dynamic assembly of form fragments | |
CN105204860B (zh) | 一种快速生成自定义静态Web页面的方法及装置 | |
US20160098250A1 (en) | Application prototyping tool | |
CN102779118B (zh) | 一种论文的排版方法及系统 | |
CN104516867A (zh) | 一种表格重排方法和系统 | |
CN111309313A (zh) | 一种快速生成html以及存储表单数据的方法 | |
US20150178263A1 (en) | System and Method for Constructing Markup Language Templates and Input Data Structure Specifications | |
CN107608951A (zh) | 报表生成方法和系统 | |
CN110705237A (zh) | 文档的自动生成方法、数据处理设备及存储介质 | |
CN110688118A (zh) | 一种网页优化方法及装置 | |
CN108536683A (zh) | 一种基于机器学习的论文碎片化信息抽取方法 | |
CN112685025A (zh) | 快速搭建前端页面的方法及系统 | |
CN106776994B (zh) | 一种工程符号在工程报表和网页中的应用方法及系统 | |
US9038004B2 (en) | Automated integrated circuit design documentation | |
CN113867694B (zh) | 一种智能生成前端代码的方法和系统 | |
Bagley et al. | Creating reusable well-structured PDF as a sequence of component object graphic (COG) elements | |
CN105512096B (zh) | 一种基于文档中内嵌字体的优化方法及装置 | |
US9727537B2 (en) | Application of a system font mapping to a design | |
JP5460629B2 (ja) | 表形式ソフトウェア仕様作成支援方法、及び装置 | |
JP4627530B2 (ja) | 文書処理方法および装置 | |
JPWO2006001392A1 (ja) | 文書処理方法および装置 | |
CN110457669A (zh) | 方便业务逻辑控制的基于b/s架构的表单处理方法及系统 | |
CN113760223B (zh) | 软件迭代过程资源复用和一致性方法、系统、介质及设备 | |
CN114637732A (zh) | 一种dwg图纸数据的转换方法及系统 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |