掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本申请涉及人工智能设计的技术领域,涉及一种文案排版布局的方法 及系统,特别是智能合成电商banner(横幅广告)图中的文案排版布局。

背景技术

随着人工智能时代的到来,人工智能与设计结合成为了一个新的应用 领域,最具代表性的就是各种banner图、海报等的自动生成。每逢大促节 点,各大电商平台对广告图的设计需求激增。通过以往的美工手工设计制 作,需要耗费大量的劳动力和成本。由机器智能设计并生成的banner图应 用在电商类项目中,不仅满足了数量需求,也大大减少人力资源的投入, 甚至可以做到实时、更灵活的个性化推荐。在人工智能生成banner图的诸 多环节中,自动化文案排版是难点之一。文本说明能高效传达信息,吸引 用户注意力,它的排版布局影响了banner的整体效果。

在banner图中,完整的文字排版需要确定四项:(1)对齐方式,大 部分情况下使用左对齐或居中对齐较为合适;(2)主、副标题及描述标题 之间的对比,大小对比、颜色对比,以及字体对比等;(3)行距和间距设 置,行距和间距是文字排版中关键的一环,决定了最后的排版效果;(4) 文字修饰层,文字修饰层能够提升文案布局的整体视觉效果。

通过调研当前一些智能设计平台自动合成的banner效果图,并对这些 效果图进行分析得出,当前业界普遍的文案排版方法是按照模板原有的文 案布局样式将用户输入的文案内容进行替换。该模板的文案布局样式已固 定,这样基于此模板拓展的大量banner图的文案排版方式相同,不能给用 户提供多种选择。

发明内容

为了解决上述问题,本发明提出了一种基于模板库的广告图文案排版 方法,包括:

一种文案排版布局的方法,该方法包括:

构建模板库,模板库包括多种文案布局模板;

接收用户输入的文案信息,根据文案信息遍历模板库的文案布局模板, 筛选最优文案布局模板;

根据文案信息调整最优文案布局模板,提取最优文案布局模板的布局 样式,迁移该布局样式至用户的布局区域;

确定布局区域内的文案信息的坐标位置,输出排版结果。

在一个实施例中,通过预设收集维度,收集文案布局模板,形成数据 库,预设收集维度至少包括文案行数和纵横比;

筛选最优文案布局模板包括:

提取文案信息的文案行数和纵横比;

遍历文案布局模板,将文案布局模板的文案行数和纵横比以及文案信 息的文案行数和纵横比分别比对;

确定最优文案布局模板。

在一个实施例中,文案包括至少一行,每行文案包括文本和/或修饰层;

提取最优文案布局模板的布局样式,根据用户文案信息调整此布局样 式,包括:

分别解析文案信息和文案布局模板,确定每行文案是否包括修饰层;

根据文案信息和蒙层信息,调整文案布局模板的每行文案,预留修饰 层或删除修饰层;

保持文案布局模板的各行文案之间的行距不变,顺序更新文本和修饰 层的坐标;

计算出各行文本中最大的文本框宽度,然后将每行文本的文本框宽度 调整到最大值。

在一个实施例中,迁移该布局样式至用户的布局区域,包括:

确定布局区域的位置坐标;

计算布局样式在布局区域的坐标;

完成布局样式的文本和修饰层的迁移。

在一个实施例中,确定布局区域内的文案信息的坐标位置,包括:

根据文案信息和布局样式,获取每行文案对应的文本、文本框位置、 字体以及该行的预设字高阈值;

使用初始化字号在文本框内对文本进行渲染,通过更新字号直至文本 刚好填充文本框,计算文本的字高;

比对字高和预设字高阈值的大小,若字高不小于预设字高阈值,则计 算文本的渲染状态;若字高小于预设字高阈值,使用预设字高阈值作为字 号,计算文本的渲染状态;

输出每行文案的预渲染状态。

在一个实施例中,根据每行文案的预渲染状态微调文本,包括:

解析每行文案的预渲染状态;

筛选出文本的字高大于预设字高阈值的文案;

判断是否存在字高大于文本框高度的文案;

若存在,调整文本的字高大于预设字高阈值的文案,减小该文案的字 号;

调整各行文案之间的行距。

在一个实施例中,在布局区域内,根据各文案的渲染文本的大小,计算 出每行文本和修饰层的坐标位置,输出排版结果。

一种文案排版布局的系统,该系统包括:

模板库模块,用于构建模板库,模板库包括多种文案布局模板;

筛选模块,用于接收用户输入的文案信息,根据文案信息遍历模板库 的文案布局模板,筛选最优文案布局模板;

迁移模块,用于根据最优文案布局模板匹配文案信息,提取最优文案 布局模板的布局样式,迁移该布局样式至用户的布局区域;

输出模块,用于确定布局区域内的文案信息的坐标位置,输出排版结 果。

在一个实施例中,迁移模块还包括微调单元和迁移布局样式单元,

微调单元用于调整文案布局模板的每行文案,预留修饰层或删除修饰 层;

迁移布局样式单元用于将经过微调单元处理后的最优文案布局模板的 的布局样式迁移至用户的布局区域。

在一个实施例中,输出模块还包括预渲染单元和更新单元,

预渲染单元用于计算文本充满文本框时的字号及渲染文本的大小,获 得文案的预渲染状态;

更新单元用于根据所述预渲染状态更新各文案的字体大小和行距。

本发明的文案排版布局的方法及系统,基于模板库,通过借鉴模板的 布局样式保证了不同类型标题之间的大小对比和行距。本发明应用在智能 合成的banner图上,提高了输出banner图的丰富性。本发明移植性强, 可以拓展到不同业务场景下的文案排版。

附图说明

图1为一个实施例中一种文案排版布局方法的步骤示意图;

图2为一个实施例中一种文案排版布局方法的整体流程示意图;

图3为一个实施例中一种文案排版布局方法的微调流程示意图;

图4为一个实施例中一种文案排版布局方法的预渲染流程示意图;

图5为一个实施例中一种文案排版布局系统的结构框图;

图6为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图 及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实 施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的一种文案排版布局的方法,首先构建一个含有多种文案 布局样式的模板库,根据设计的筛选条件选择一个模板,然后参考模板原 型来布置文字排版方式,根据选择模板的不同最终实现排版样式多样化。 该方法在应用在智能合成电商banner图上,根据用户输入的文案内容和指 定的布局区域,该方法可以在无人工干预的情况下设计出当前布局区域内 多种文案排版样式,弥补了目前智能合成banner系统中同一模板中文案布 局形式单一的缺陷,同时该方法支持用户设置是否给文案修饰层预留出位 置,进而提升整个布局的视觉效果。

在一个实施例中,如图1-图4所示,包括以下步骤:

S100,构建模板库,模板库包括多种文案布局模板。

在本实施例中,针对应用的业务场景,分析此场景下文案布局变化的 维度。以覆盖所有维度为准收集文案布局模板,维度如文案行数、文案区 域纵横比、主文案的字数等。收集的模板的标题类型区分明确,标题和修 饰层一一匹配。模板可以以PSD格式存储,便于读取各图层的位置信息。 解析模板提取排版布局所需的信息,以JSON文件格式保存解析的信息。

具体地,根据电商banner图的文案布局特点和当前智能合成banner 图的文案输入格式,以文案行数title_number和文案布局区域的纵横比 aspect_ratio两个维度收集PSD格式的文案布局模板。优选地,对于文案,按 级别将文案的标题分为主标题、副标题、行动词,修饰层与标题类型一一 对应,其中,文字布局区域是包含所有标题和修饰层的最小矩形框。解析 每个模板提取所需的解析信息,包括文字布局区域坐标、标题和修饰层的 坐标、行距、标题顺序等。这些解析信息隐式地表达了文案布局样式,以 JSON格式存储这些解析信息。

S200,接收用户输入的文案信息,根据文案信息遍历模板库的文案布 局模板,筛选最优文案布局模板。

在本实施例中,结合应用场景的文案布局特点,接收用户输入的文案 信息,该文案信息包括设计筛选条件,通过分析应用场景的文案布局特点 和用户输入的文案信息设计筛选条件,遍历步骤S100构建的模板库中的所 有文案布局模板,从中筛选出符合条件的文案布局模板,作为最优文案布 局模板。

具体地,结合步骤S100的模板筛选维度,

提取文案信息的文案行数title_number和文案布局区域的纵横比 aspect_ratio,以这两个维度作为设计筛选条件,遍历模板库中的所有模板, 从而筛选满足条件的模板。优选地,将文案布局模板的文案行数title_number 和纵横比aspect_ratio以及文案信息的文案行数title_number和纵横比 aspect_ratio分别比对,只有模板和用户的文案行数title_number相等,并且二 者的纵横比aspect_ratio之差在±0.3范围内,才被认定为合适的模板,即最 优文案布局模板。

S300,根据文案信息调整最优文案布局模板,提取最优文案布局模板 的布局样式,迁移该布局样式至用户的布局区域。

在本实施例中,在步骤S200确定好最优文案布局模板后,先根据用户 输入的信息修改最优文案布局模板使得模板与输入信息匹配,然后通过学 习模板的文案布局样式即各图层在整个文案区域内的高度占比,保持高度 占比不变将此布局样式迁移到用户设置的布局区域内。

具体地,步骤S300还包括微调步骤和布局样式迁移步骤。

对于微调步骤,文案包括至少一行标题,每行文案均包括文本,有的 行还包括修饰层。然而,在智能合成banner图中,用户要求各标题匹配的 修饰层不一定与模板中存在的修饰层对应,比如,用户要求各标题都没有 修饰层、或者仅副标题和行动词有修饰层,因此,需要根据用户输入的文 案信息来对筛选出的最优文案布局模板进行微调,在模板对应的行中预留 出修饰层的位置或者删除模板中的修饰层。

具体地,先分别解析文案信息和文案布局模板,确定每行文案是否包 括修饰层。再根据文案信息,调整文案布局模板的每行文案,添加修饰层 或删除修饰层。优选地的,在模板参考系下,按照设置的尺寸规则计算出 添加修饰层的坐标或者删除某行标题匹配的修饰层,添加修饰层的尺寸规 则如下;

ornament_height=int(1.6×title_height);

ornament_width=title_width+3×title_height;

其中,ornament_height为修饰层高度,ornament_width为修饰层宽度, title_width为标题宽度,title_height为标题高度。

由于修饰层需包裹着标题,因此删除或添加修饰层会改变与上下行标 题的行距。为了保持模板的各行文案之间的行距row_spacing=[s1,s2,s3,...]不 变,在模板的文案布局区域text_region_template=[left,top,right,bottom]内,按照 模板中的标题顺序依次更新标题title=[tx1,ty1,tx2,ty2]和修饰层 ornament=[x1,y1,x2,y2]的坐标,恢复出原来的布局样式。同时计算出各标题 的文本框的最大值,然后将各标题的文本框宽度都调整到此最大值。最后 得到调整后的最优文案布局模板的布局样式。具体调整过程如下:

对于布局样式迁移步骤,核心是学习模板的布局样式即标题在模板中 的高度和宽度占比。确定布局区域的位置坐标,即用户输入的文案布局区 域text_region_in=[st_x,st_y,end_x,end_y],以及模板的文案布局区域的坐标 text_region_template=[left,top,right,bottom],通过如下公式:

resize_w=(end_x-st_x)/(right-left)

resize_h=(end_y-st_y)/(bottom-top)

x1-left,y1-=top,x2-left,y2-=top

new_x1=max(int(round(x1*resize_w+st_x)),st_x)

new_x2=min(int(round(x2*resize_w+st_x)),end_x)

new_y1=max(int(round(y1*resize_h+st_y)),st_y)

new_y2=min(int(round(y2*resize_h+st_y)),end_y)

new_box=[new_x1,new_y1,new_x2,new_y2]

将模板内布局样式,即标题和修饰层的坐标box=[x1,y1,x2,y2]迁移到 用户输入的文案布局区域text_region_in内,计算得到新的标题和修饰层的 坐标new_b,从而完成布局样式的迁移。模板的行距迁移后为 row_spacing=[int(round(s_i×resize_h))],其中,i=1:title_number+1。

S400,确定布局区域内的文案信息的坐标位置,输出排版结果。

在本实施例中,根据步骤300,各标题或修饰层在新的布局区域内的 位置以及目标行距已计算。接下来,需要在每个文本框内渲染对应的输入 标题,计算出每个标题的字体大小,以及真实的渲染文本的大小,最终输 出排版结果。

在一个实施例中,步骤S400包括预渲染步骤和更新调整步骤。

S410,预渲染步骤。

通过步骤S300,各图层在用户设置的布局区域内保持了原来模板的高 度比例。但是当模板的布局区域高度与用户设置的布局区域高度的差别大 时,按照模板中的比例计算的文本框会偏小,导致渲染的文字偏小,因此 设置了字高阈值,解决文字偏小的问题。在预渲染模块,选择字体然后按 照此字体进行渲染,计算出每个标题在文本框内的最大字号和渲染文本的 大小。当渲染文本的高度小于预设的阈值时,按照此阈值接进行预渲染, 记录下每行标题的渲染状态。

具体地,根据文案信息和布局样式,获取每行文案对应的文本、文本 框位置、字体以及该行的预设字高阈值。

使用初始化字号在文本框内对文本进行渲染,通过迭代字号直至文本 刚好填充文本框,计算文本的字高。

比对字高和预设字高阈值的大小,若字高不小于预设字高阈值,则计 算文本的渲染状态。若字高小于预设字高阈值,使用预设字高阈值作为字 号,计算文本的渲染状态。

输出每行文案的预渲染状态。

在一个实施例中,预渲染流程如图4所示,在横排模式下,当模板的 布局区域高度比用户设置输入的布局区域的实际高度大时,布局样式迁移 后会出现文本框偏小的情况,进而导致该行标题字体偏小。所以针对每类 标题设置字高阈值th_threshold={title_name_i:thresh_i},其中i=1:title_number,表 示了当前布局范围下各行标题须达到的最小字高。对于字体选择,可以结 合具体的业务场景需求来设置或者随机选择。其中,标识符vert_filled和 hori_filled表示在文本在文本框box内水平方向和垂直方向是否已达到了极 限状态。updated_small表示使用了阈值thresh作为字号渲染后导致文本超出文本框。is_greater表示渲染文本的高度是否大于阈值thresh。优选地,通过取 文本框的框高和框宽除以字数,这二者的最小值作为初始化字号,并通过 迭代的方法计算出文字刚好充满文本框的字号及渲染文本的大小[tw,th],同 时更新标识符vert_filled和hori_filled,记录下各行标题的预渲染状态即各行各 标识符的值。

S420,更新调整步骤。

当预渲染各标题时,不同字数的标题可能纵向充满文本框,或者横向 充满文本框。与原模板相比,横向充满文本框导致上下行距增大,若按照 阈值预渲染又会导致行距减少。这两种情况影响了排版效果,所以需要重 新计算字体大小和行距改善这排版效果。

具体地,解析每行文案的预渲染状态。

筛选出文本的字高大于预设字高阈值的文案,判断是否存在字高大于 文本框高度的文案,若存在,调整文本的字高大于预设字高阈值的文案, 减小该文案的字号,调整各行文案之间的行距。

在一个实施例中,根据步骤S410记录了各行标题的预渲染状态,当updated_small为True,表示标题高度超出文本框box导致行距减少,甚至与 其他标题有重叠。由于输入布局空间已定,只能减小is_greater为True的标 题字号。

S421,设置最小行距总和阈值占比min_space_ratio,预留出一定的行 距;计算剩余的高度占比free_space_ratio=(Height-height_sum)/Height, 其中Height=end_y-st_y表示输入布局区域的高度,height_sum是所有渲染 文本的高度和,

S422,如果free_spa_creati小于min_spacrea_tio,则还差高度占比 need_ratio=min_space_ratio-free_space_ratio,减小is_greater为True的 标题得到need_ratio大小的高度;

S423,cur_textRatio表示is_grea为True的标题字高比例,={title_name_i:cur_ratio_i},i=1:n,n≤title_number;那么每 行字高需要减小的比例是need_ratio_mean=need_ratio/n;

S424,防止标题减少后字高小于阈值比例thresh_ratio,计算每行标题能 减小的比例diff:

thresh_ratio_i=th_threshold[title_name_i]/Height

diff_i=cur_textRatio[title_name_i]-thresh_ratio_i

Diff_set={title_name_i:diff_i}

i=1:n,n≤title_number

S425,将Diff_set按照diff从小到大排序计算每行标题减小后需要达到 的字高new_th_thershold:

S426,以new_th_threshold为初始字号,对应文本框的高度也改为阈值大 小,重新预渲染得到标题的新字号和大小。计算新的剩余空间高度 free_space,如果剩余空间大于布局迁移时计算的目标行距和,目标行距 row_spacing不变;否则按照目标行距的比例关系计算各行距新的高度,更 新目标行距row_spacing=[s_i/(row_spacing)*free_space)],i=1:title_number+1。

S430,计算坐标位置,在布局区域内,根据各文案的渲染文本的大小, 计算出每行文本和修饰层的坐标位置,输出排版结果。

具体地,通过预渲染步骤S410和更新调整步骤S420,确定各行标题 的字号和大小、以及修饰层的尺寸。在用户设定的布局范围参考系计算出 各行标题和修饰层的坐标位置。

应该理解的是,虽然流程图中的各个步骤按照箭头的指示依次显示, 但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明 确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它 的顺序执行。而且,附图中的至少一部分步骤可以包括多个子步骤或者多 个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以 在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行, 而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或 者交替地执行。

在一个实施例中,如图5所示,提供了应用上述方法的文案排版布局 系统,包括:

模板库模块100,用于构建模板库,模板库包括多种文案布局模板。

筛选模块200,用于接收用户输入的文案信息,根据文案信息遍历模 板库的文案布局模板,筛选最优文案布局模板。

迁移模块300,用于根据最优文案布局模板匹配文案信息,提取最优 文案布局模板的布局样式,迁移该布局样式至用户的布局区域。

输出模块400,用于确定布局区域内的文案信息的坐标位置,输出排 版结果。

具体地,迁移模块300还包括微调单元310和迁移布局样式单元320,

微调单元310用于调整文案布局模板的每行文案,预留修饰层或删除 修饰层。

迁移布局样式单元320用于将经过微调单元处理后的最优文案布局模 板的的布局样式迁移至用户的布局区域。

具体地,输出模块400还包括预渲染单元410和更新单元420,

预渲染单元410用于计算文本充满文本框时的字号及渲染文本的大 小,获得文案的预渲染状态。

更新单元420用于根据所述预渲染状态更新各文案的字体大小和行 距。

关于文案排版布局系统的具体限定可以参见上文中对于文案排版布局 方法的限定,在此不再赘述。上述系统中的各个模块可全部或部分通过软 件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算 机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中, 以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是数据 管理服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统 总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的 处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存 储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和 数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的数据源终端通过网络 连接通信,以接收数据源终端上传的数据。该计算机程序被处理器执行时 以实现文案排版布局方法。

本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案 相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设 备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或 者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存 储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序 时实现上述文案排版布局方法。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流 程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序 可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时, 可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中 所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易 失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM) 或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存 储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、 动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、 增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存 储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、 以及存储器总线动态RAM(RDRAM)等。

本发明公开了一种文案排版布局的方法及系统,提出了一种基于模 板库的文案排版方法,通过学习模板的文案布局样式,保证了不同类型标 题之间的大小对比和行距,完成对输入文案的排版,实现了针对智能合成 电商banner图的文案排版,从文案布局层面提升了banner图的丰富性。 此方法移植性强,可以拓展到不同业务场景下的文案排版。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和 详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对 于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做 出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的 保护范围应以所附权利要求为准。

相关技术
  • 一种文案排版布局的方法及系统
  • 基于文字处理程序的文案排版方法及系统
技术分类

06120113211840