CN113112573B - 基于标记语言的图片生成方法、装置和电子设备 - Google Patents
基于标记语言的图片生成方法、装置和电子设备 Download PDFInfo
- Publication number
- CN113112573B CN113112573B CN202110399798.1A CN202110399798A CN113112573B CN 113112573 B CN113112573 B CN 113112573B CN 202110399798 A CN202110399798 A CN 202110399798A CN 113112573 B CN113112573 B CN 113112573B
- Authority
- CN
- China
- Prior art keywords
- picture
- markup language
- template
- canvas
- scml
- 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
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000004891 communication Methods 0.000 claims description 11
- 238000004088 simulation Methods 0.000 claims description 5
- 239000003086 colorant Substances 0.000 claims 1
- 239000003550 marker Substances 0.000 claims 1
- 238000009877 rendering Methods 0.000 abstract description 18
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 102220040657 rs199773433 Human genes 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Document Processing Apparatus (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请实施例提供一种基于标记语言的图片生成方法、装置和电子设备,通过获取用于图片生成的数据及标记语言模板,将标记语言模板和数据进行组合,得到图片内容元素,再根据图片内容元素和创建的图片画布生成相应的图片。本方案可通过图片所需的数据和标记语言模板快速生成图片,无需依赖于浏览器进行显示及截图实现,如此,可以避免因为浏览器开启、渲染等导致的耗时过长,且避免由于截图导致的图片不完整等问题。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种基于标记语言的图片生成方法、装置和电子设备。
背景技术
在通讯工具发达的时代,工作中各类通讯工具、业务系统、信息源纷繁复杂,需要将汇总的数据定时发送给决策人员。在该过程中,将数据直观的呈现在决策人员面前显得尤为重要。消息通常可分为文本型、图片型和文档型,其中,文本型的信息没有格式,难以一眼聚焦关注的点。而文档型的信息需要特定的工具打开,且生成方式复杂多样。图片型的信息最为适合查看分析,也不容易篡改图片内的数据。因此,如何将计算好的数据快速组装生成为一张内容丰富的图片变得非常重要。
在现有技术中,常采用的方式是通过HTML编写图片样式,再使用代码启动浏览器进程以加载该页面,在页面渲染完成后对浏览器展示的内容进行截图,以生成图片文件。
现有技术中所采用的这种方式,需要依赖于浏览器内核进行解析渲染,须在本地安装浏览器用于页面展示,每次截图时需要启动浏览器进程打开页面。其中,启动和渲染过程耗时很长,且初始化完成后等待页面数据加载的时间和渲染完成的时机很难把握,可能导致截出的图片是未加载完成的状态。并且,还存在页面缓存、cookie设置及覆盖等问题。
发明内容
本申请的目的包括,例如,提供了一种基于标记语言的图片生成方法、装置和电子设备,其能够避免依赖于浏览器实现图片生成导致的耗时过长且图片不完整的问题。
本申请的实施例可以这样实现:
第一方面,本申请提供一种基于标记语言的图片生成方法,所述方法包括:
获取用于图片生成的数据及标记语言模板;
将所述标记语言模板和所述数据进行组合,得到图片内容元素;
根据所述图片内容元素以及创建的图片画布,生成相应的图片。
在可选的实施方式中,所述将所述标记语言模板和所述数据进行组合,得到图片内容元素的步骤,包括:
检测获取的标记语言模板是否为超级压缩标记语言SCML模板;
在获取的标记语言模板不为SCML模板时,将获取的标记语言模板转换为SCML模板;
将所述SCML模板和所述数据进行组合,得到图片内容元素。
在可选的实施方式中,所述将获取的标记语言模板转换为SCML模板的步骤,包括:
确定获取的标记语言模板的类型,利用与该类型对应的解析器将获取的标记语言模板转换为SCML模板。
在可选的实施方式中,所述根据所述图片内容元素以及创建的图片画布,生成相应的图片的步骤,包括:
获取所述标记语言模板中定义的元素样式和布局样式;
将所述图片内容元素按所述元素样式和布局样式,绘制至创建的图片画布,生成相应的图片。
在可选的实施方式中,所述图片内容元素包含多个;
所述将所述图片内容元素按所述元素样式和布局样式,绘制至创建的图片画布,生成相应的图片的步骤,包括:
按所述布局样式将多个图片内容元素及其对应的元素样式划分至多个队列;
依次提取各个队列中的图片内容元素按其元素样式绘制至创建的图片画布,生成相应的图片。
在可选的实施方式中,创建图片画布的步骤,包括:
获取创建指令,检测所述创建指令中是否包含图片画布的尺寸参数;
若所述创建指令中包含所述尺寸参数,则根据所述尺寸参数创建对应的图片画布;
若所述创建指令中未包含所述尺寸参数,则根据所述图片内容元素的规模信息创建对应的图片画布。
在可选的实施方式中,所述根据所述图片内容元素的规模信息创建对应的图片画布的步骤,包括:
创建具有默认尺寸参数的初始画布;
按所述图片内容元素的规模信息在所述初始画布上模拟图片生成;
根据模拟结果调整所述初始画布以得到所述图片画布。
在可选的实施方式中,所述方法还包括:
在生成的图片上标定预设标记信息;
将标定后的图片转换为设定格式的图片文件。
第二方面,本申请提供一种基于标记语言的图片生成装置,所述装置包括:
获取模块,用于获取用于图片生成的数据及标记语言模板;
组合模块,用于将所述标记语言模板和所述数据进行组合,得到图片内容元素;
生成模块,用于根据所述图片内容元素以及创建的图片画布,生成相应的图片。
第三方面,本申请提供一种电子设备,包括一个或多个存储介质和一个或多个与存储介质通信的处理器,一个或多个存储介质存储有处理器可执行的机器可执行指令,当电子设备运行时,处理器执行所述机器可执行指令,以执行前述实施方式中任意一项所述的方法步骤。
本申请实施例的有益效果包括,例如:
本申请实施例提供一种基于标记语言的图片生成方法、装置和电子设备,通过获取用于图片生成的数据及标记语言模板,将标记语言模板和数据进行组合,得到图片内容元素,再根据图片内容元素和创建的图片画布生成相应的图片。本方案可通过图片所需的数据和标记语言模板快速生成图片,无需依赖于浏览器进行显示及截图实现,如此,可以避免因为浏览器开启、渲染等导致的耗时过长,且避免由于截图导致的图片不完整等问题。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的电子设备的结构框图;
图2为本申请实施例提供的基于标记语言的图片生成方法的流程图;
图3为图2中步骤S120包含的子步骤的流程图;
图4为图2中步骤S130包含的子步骤的流程图;
图5为图4中步骤S132包含的子步骤的流程图;
图6为本申请实施例生成的图片的示意图;
图7为本申请实施例提供的基于标记语言的图片生成方法中,创建图片画布的方法的流程图;
图8为图7中步骤S230的子步骤的流程图;
图9为本申请实施例提供的基于标记语言的图片生成方法中,标定图像的方法的流程图;
图10为本申请实施例提供的基于标记语言的图片生成装置的功能模块框图。
图标:110-处理器;120-存储器;130-通信模块;140-基于标记语言的图片生成装置;141-获取模块;142-组合模块;143-生成模块。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本申请的描述中,需要说明的是,在不冲突的情况下,本申请的实施例中的特征可以相互结合。
请参阅图1,为本申请实施例提供的电子设备的结构图,该电子设备可以包括但不限于计算机、服务器等设备。该电子设备可包括存储器120、处理器110及通信模块130。所述存储器120、处理器110以及通信模块130各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
其中,存储器120用于存储程序或者数据。所述存储器120可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(ErasableProgrammable Read-Only Memory,EPROM),电可擦除只读存储器(Electric ErasableProgrammable Read-Only Memory,EEPROM)等。
处理器110用于读/写存储器120中存储的数据或程序,并执行本申请任意实施例提供的基于标记语言的图片生成方法。
通信模块130用于通过网络建立电子设备与其它通信终端之间的通信连接,并用于通过网络收发数据。
应当理解的是,图1所示的结构仅为电子设备的结构示意图,所述电子设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
请参阅图2,图2示出了本申请实施例提供的基于标记语言的图片生成方法的流程示意图,该基于标记语言的图片生成方法可由图1中所示的电子设备执行。
应当理解,在其它实施例中,本实施例的基于标记语言的图片生成方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。该基于标记语言的图片生成方法的详细步骤介绍如下。
步骤S110,获取用于图片生成的数据及标记语言模板。
步骤S120,将所述标记语言模板和所述数据进行组合,得到图片内容元素。
步骤S130,根据所述图片内容元素以及创建的图片画布,生成相应的图片。
现有技术中,在利用数据生成图像以供相关人员查看时,往往需要依赖于浏览器内核进行解析渲染,再截图以实现图片生成。现有技术中的方式需要在本地安装浏览器,每次截图均需启动浏览器进程以打开页面。浏览器启动和渲染过程耗时较长,一般在约15秒。并且,如果网页内部还有异步加载数据的过程,耗时将更长。此外,在初始化完成后等待页面数据加载的时间和渲染完成的时机也很难把控,导致截图出的图片可能是未加载完成的状态。
基于此,在本实施例中,摒弃需要浏览器进程实现图片生成的方式,利用标记语言和图片生成所需的数据实现图片生成。其中,获取的数据可以是通过查询数据库获取或者通过网络接口获取等不限。获取的数据可以是如文字、数字、图片、符号等等,为构建图片的源数据。
本实施例中,获取的标记语言模板可以是用户所传入的,该标记语言模板可以是为生成图片、描述图片内容和样式的标记语言。利用解析引擎对获取的数据和标记语言模板进行组装,从而可以得到图片具体描述信息的图片内容元素。本实施例中,所采用的解析引擎可以是如Freemarker模板引擎、velocity模板引擎等。该类模板引擎可支持将常用标记语言模板和数据组装出程序代码能够解析的形式。
使用程序代码解析组装好的数据和标记语言模板,以生成描述图片信息的图片内容元素。该图片内容元素为将数据组合至标记语言模板以得到的,具有对生成图片的具体的描述信息。
在此基础上,可创建图片画布,将得到的图片内容元素绘制到图片画布上,从而生成相应的图片。
本实施例所提供的图片生成方法,摒弃现有的依赖浏览器实现生成图片的方式,由于无需依赖于浏览器进行显示及截图实现,如此,可以避免因为浏览器开启、渲染等导致的耗时过长的问题,并且,可以避免由于截图导致的图片不完整等问题。
进一步地,考虑到现有技术中,也有存在通过如采用Markdown语法编写内容,再通过代码将内容转换为HTML,使用JEditorPane渲染出HTML内容,最后通过截图生成图片的方式。但是,这种方式中也存在诸多缺陷,Markdown是一种轻量级标记语言,Markdown语法只有框架没有样式,所渲染出的页面只是类似纯文本的样式,不能满足图片对内容丰富方面的要求。
该方式内部是通过HTML的内容再渲染出的页面,且无法选择字体,导致只能加载系统字体,所以要求系统中必须安装所需的中文字体或其他特定字体。在设备为Linux系统且全是容器集群的环境下,难以满足此要求。
因此,基于上述考虑,请参阅图3,在本实施例中,在上述基于标记语言模板和数据得到图片内容元素时,可以通过以下方式实现:
步骤S121,检测获取的标记语言模板是否为超级压缩标记语言SCML模板。
步骤S122,在获取的标记语言模板不为SCML模板时,将获取的标记语言模板转换为SCML模板。
步骤S123,将所述SCML模板和所述数据进行组合,得到图片内容元素。
本实施例中所获取的标记语言模板可为用户所传入的,传入的标记语言模板可以是多种类型中的任意一种,例如可以是HTML、Markdown、SCML(Super Compress MarkupLanguage,超级压缩标记语言)等。而由上述可知,如Markdown难以满足图片内容丰富等要求。而SCML模板是一种专为生成图片、描述图片内容和样式的标记语言模板,可以满足对图片相关信息的具体描述要求,包括如字体、间距等多项属性。SCML模板可以更加接近图片的描述信息,更易于解析和后续图片元素生成。
因此,在本实施例中,可检测获取的标记语言模板是否为SCML模板,若获取的标记语言模板不是SCML模板,则需要将获取的标记语言模板转换为SCML模板,后续再通过转换后得到的SCML模板并结合获取的数据,得到图片内容元素。
本实施例中,在获取的标记语言模板并非SCML模板,而需要进行转换时,可确定获取的标记语言模板的类型,利用与该类型对应的解析器将获取的标记语言模板转换为SCML模板。
SCML模板定义了图片生成的具体相关信息,上述在基于SCML模板和数据生成图片时,可以通过以下方式实现,请结合参阅图4:
步骤S131,获取所述标记语言模板中定义的元素样式和布局样式。
步骤S132,将所述图片内容元素按所述元素样式和布局样式,绘制至创建的图片画布,生成相应的图片。
本实施例中,标记语言模板中包含有对具体的数据信息的描述,还包含有对于整体图片布局的描述。其中,对于具体的数据信息的描述可为元素样式,例如,可以定义如文本的字体大小、颜色、高宽、文字对齐、背景颜色、边框、贴图等。而对于整体图片布局的描述可为布局样式,例如,可包括将这些具有相关描述信息的文本以何种方式布局到画布上的描述信息。
因此,对于将获取组合到标记语言模板后得到的图片内容元素,则可以按标记语言模板中定义的元素样式和布局样式,绘制到图片画布中。
应当理解,生成图片所需的图片内容元素可包括多个,例如多个文本、多张图片等。本实施例中所采用的SCML模板内部定义有一套渲染生成图片的逻辑,可选地,请参阅图5,可按以下方式实现图片的生成。
步骤S1321,按所述布局样式将多个图片内容元素及其对应的元素样式划分至多个队列。
步骤S1322,依次提取各个队列中的图片内容元素按其元素样式绘制至创建的图片画布,生成相应的图片。
本实施例中,SCML模板中定义的图片渲染逻辑可体现在元素样式中,具体地,可将图片内容元素按行的方式划分至队列中。也即,每一队列中可保存划分的一行的图片内容元素。如此,后续在渲染图片时,则可以依次提取各个队列中的图片内容元素,并按其元素样式绘制到图片画布中。也即,渲染生成的图片,是以队列中对应的按行的方式进行依次渲染。
SCML模板使用行的方式进行表达,该语言简化了样式表的语法,非常紧凑精炼,结合所设置的如高亮效果、可视化配置等信息,可以使得编辑模板变得十分简易。
以下示例性地列出了SCML模板中包含的部分定义规则:
#scml:scml标记语言的开始标志。
#:有效行的开始标记。
#&:用于连接上一行,使得多行的内容最终解释为一行。
V:version,版本号,必须声明,便于后期语法升级后的兼容。
S:size,字体大小,单位:像素,默认值14像素。
W:width,宽度,单位:像素。
H:height,高度,单位:像素。
C:color,文字颜色,16进制颜色值。
P:padding,边距,单位:像素,例:P10.0或P10.0.0.10。
T:text,文字开始,T出现后到下一个#之前都当做是内容。
A:align,文字左右对齐,1=左、2=中、3=右。
B:border,边框,格式:宽度-样式-颜色,宽度、颜色支持四参数格式,参数一:宽度,参数二:1=横纵都有实线、2=只有横坐标有实线,参数三:16进制颜色值,例:B1-1-f00或B1.1.1.1-1-f00。
BC:background-color,背景颜色,16进制颜色值,#table行加此属性代表行背景色,多个时表示行间隔的颜色,例:#tableBC1301b7.2311c8。
在将获取的数据结合至SCML模板后,得到的组装后的模板可如下示例:
#scmlV1BC110840CffffffBI107.2S14FF2P20W2200
#P65.0.0.0A2S60AW1T社区抗疫战报
#P65.0.0.0A2S50AW1T-城市甲XX-
#P40.0.40.0A2S22AW1CbcbcbcT数据时间:2020.03.11 00:00至23:00
#P15.0.20.10S30W400FW1Cff6060T搜索
#tableBC210349.2d1052B1-2-291c6bAW1P15.0
#P15.10S26AW2BC291c6bT排名
#&S26A3BC291c6bW200T热搜词
#&S26A3AW3BC291c6bT搜索结果
#&S26A3AW4BC291c6bT搜索人数
#&P15.10S26A3AW4BC291c6bT搜索次数
<#list dataList as item>
#S20T${item.val!}
#&S20T口罩
#&S20T10
#&S20T15
#&S20T48
</#list>
#end
本实施例中,采用SCML模板实现图片生成,该语法程序代码独立性好,无需依赖于操作系统和运行环境。可以实现图片的快速生成,且可降低对内存和CPU资源的占用。
本实施中,利用SCML模板中定义的渲染逻辑,并结合获取的生成图片所需的数据,从而可以组装得到相应的图片内容元素,将图片内容元素渲染至创建的图片画布后,可得到例如图6中所示的图片。
请参阅图7,在本实施例中,在创建图片画布时,可以通过以下方式实现:
步骤S210,获取创建指令,检测所述创建指令中是否包含图片画布的尺寸参数。
步骤S220,若所述创建指令中包含所述尺寸参数,则根据所述尺寸参数创建对应的图片画布。
步骤S230,若所述创建指令中未包含所述尺寸参数,则根据所述图片内容元素的规模信息创建对应的图片画布。
本实施例中,由于新建图片画布,因此,需要获取生成图片画布所需的尺寸参数,包括画布的高、宽等尺寸参数。该尺寸参数可以是在创建图片画布时用户所传入的。而若在创建画布时,设备并未获得创建画布所需的尺寸参数,则可以通过对生成的图片内容元素进行预处理,根据预处理的信息以进行图片画布的创建。例如,通过预处理可以得到需要渲染至画布上的图片内容元素的规模信息,进而基于该信息创建对应的图片画布。
本实施例中,在并未获取图片画布的尺寸参数的情况下,可以通过获得图片内容元素的规则信息进而创建图片画布,使得在未指定画布的尺寸参数的情形下,也可创建得到适配的图片画布。
可选地,请参阅图8,本实施例中,在基于图片元素内容进行图片画布的创建时,可以通过以下方式实现:
步骤S231,创建具有默认尺寸参数的初始画布。
步骤S232,按所述图片内容元素的规模信息在所述初始画布上模拟图片生成。
步骤S233,根据模拟结果调整所述初始画布以得到所述图片画布。
本实施例中,在没有获取到图片画布的尺寸参数时,可创建具有默认尺寸参数的初始画布,该默认尺寸参数可如1×1像素的画布。对生成的图片内容元素进行处理,基于图片内容元素的规则信息在模拟图片生成。
例如,该规则信息可以包括与图片呈现的尺寸相关的信息,如,图片内容元素之间的间距、尺寸、边框、坐标等信息,基于这些信息可确定图片内容元素在渲染至画布上时,所最终呈现的尺寸范围。如此,基于这种模拟图片生成的方式,则可以确定最终承载图片内容元素的画布的尺寸信息。
如此,可以基于模拟结果可以得到图片真实所需的尺寸参数,再基于得到的尺寸参数调整所预设的初步画布得到图片画布。
进一步地,请参阅图9,在上述基础上,本实施例所提供的基于标记语言的图片生成方法还可包括以下步骤:
步骤S310,在生成的图片上标定预设标记信息。
步骤S320,将标定后的图片转换为设定格式的图片文件。
本实施例中,为了实现对图片的保护,可以在生成的图片上标定预设标记信息,该预设标定信息可以是设置的如文字、图片、符号等信息。
可通过将预设标记信息设置为不影响图片上原有内容显示效果的形式,例如可将预设标记信息的颜色设置为浅色,或者将预设标记信息在标定至图片上时,标定位置可靠边缘位置处等。具体地,可以根据实际需求进行相应设置,只要能够实现对图片进行标定,以起到保护图片的目的即可。
此外,为了图片的保存以及传输,可以将图片转换为设定格式的图片文件,该设定格式可以是如png、jpg等格式,后续可以将图片文件以文件流的方式用于网络传输。
本实施例所提供的图片生成方案,通过获取的数据和标记语言模板快速生成图片,实现了一种通过程序代码解析模板,以快速生成内容丰富的图片的方式。避免了现有技术中采用的需要依赖于浏览器的显示和渲染,并通过截图方式实现图片生成,所存在的耗时长且可能存在的图片不完整的缺陷。
并且,在本实施例中,内部可使用底层API开发的渲染方法,直接绘制如文字、贴图等对象,可大大提高图片生成效率,相较于复杂的HTML加载渲染的方式具有较大优势。
进一步地,本实施例中,采用了SCML模板予以实现,该语言语法轻量、简单、解析速度快,并且独立性好,解析时占用设备的硬件资源少,无需依赖特定的操作系统、外部环境和编程语言的限制,能快速的生成内容丰富且灵活的图片。
请参阅图10,为本申请另一实施例提供的基于标记语言的图片生成装置140的功能模块框图,该基于标记语言的图片生成装置140包括获取模块141、组合模块142和生成模块143。
获取模块141,用于获取用于图片生成的数据及标记语言模板;
可以理解,该获取模块141可以用于执行上述步骤S110,关于该获取模块141的详细实现方式可以参照上述对步骤S110有关的内容。
组合模块142,用于将所述标记语言模板和所述数据进行组合,得到图片内容元素;
可以理解,该组合模块142可以用于执行上述步骤S120,关于该组合模块142的详细实现方式可以参照上述对步骤S120有关的内容。
生成模块143,用于根据所述图片内容元素以及创建的图片画布,生成相应的图片;
可以理解,该生成模块143可以用于执行上述步骤S130,关于该生成模块143的详细实现方式可以参照上述对步骤S130有关的内容。
在一种可能的实现方式中,上述组合模块142具体可以用于:
检测获取的标记语言模板是否为超级压缩标记语言SCML模板;
在获取的标记语言模板不为SCML模板时,将获取的标记语言模板转换为SCML模板;
将所述SCML模板和所述数据进行组合,得到图片内容元素。
在一种可能的实现方式中,上述组合模块142具体可以用于:
确定获取的标记语言模板的类型,利用与该类型对应的解析器将获取的标记语言模板转换为SCML模板。
在一种可能的实现方式中,上述生成模块143具体可以用于:
获取所述标记语言模板中定义的元素样式和布局样式;
将所述图片内容元素按所述元素样式和布局样式,绘制至创建的图片画布,生成相应的图片。
在一种可能的实现方式中,所述图片内容元素包含多个,上述生成模块143具体可以用于:
按所述布局样式将多个图片内容元素及其对应的元素样式划分至多个队列;
依次提取各个队列中的图片内容元素按其元素样式绘制至创建的图片画布,生成相应的图片。
在一种可能的实现方式中,基于标记语言的图片生成装置140还包括创建模块,该创建模块可以用于通过以下方式创建图片画布:
获取创建指令,检测所述创建指令中是否包含图片画布的尺寸参数;
若所述创建指令中包含所述尺寸参数,则根据所述尺寸参数创建对应的图片画布;
若所述创建指令中未包含所述尺寸参数,则根据所述图片内容元素的规模信息创建对应的图片画布。
在一种可能的实现方式中,上述创建模块具体可以用于:
创建具有默认尺寸参数的初始画布;
按所述图片内容元素的规模信息在所述初始画布上模拟图片生成;
根据模拟结果调整所述初始画布以得到所述图片画布。
在一种可能的实现方式中,基于标记语言的图片生成装置140还可以包括标定模块,该标定模块可以用于:
在生成的图片上标定预设标记信息;
将标定后的图片转换为设定格式的图片文件。
进一步地,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有机器可执行指令,机器可执行指令被执行时实现上述实施例提供的基于标记语言的图片生成方法。
其中,前述计算机程序运行时执行的各步骤,在此不再一一赘述,可参考前文对所述基于标记语言的图片生成方法的解释说明。
综上所述,本申请实施例提供的基于标记语言的图片生成方法、装置和电子设备,通过获取用于图片生成的数据及标记语言模板,将标记语言模板和数据进行组合,得到图片内容元素,再根据图片内容元素和创建的图片画布生成相应的图片。本方案可通过图片所需的数据和标记语言模板快速生成图片,无需依赖于浏览器进行显示及截图实现,如此,可以避免因为浏览器开启、渲染等导致的耗时过长,且避免由于截图导致的图片不完整等问题。
在本申请实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (9)
1.一种基于标记语言的图片生成方法,其特征在于,所述方法包括:
获取用于图片生成的数据及标记语言模板;
将所述标记语言模板和所述数据进行组合,得到图片内容元素;
根据所述图片内容元素以及创建的图片画布,生成相应的图片;
所述将所述标记语言模板和所述数据进行组合,得到图片内容元素的步骤,包括:
检测获取的标记语言模板是否为超级压缩标记语言SCML模板;在获取的标记语言模板不为SCML模板时,将获取的标记语言模板转换为SCML模板;将所述SCML模板和所述数据进行组合,得到图片内容元素;
所述SCML模板的定义规则如下:
#scml,表示scml标记语言的开始标志;
#,表示有效行的开始标记;
#&,表示用于连接上一行,使得多行的内容最终解释为一行;
V,表示version,版本号;
S,表示size,字体大小,单位为像素;
W,表示width,宽度,单位为像素;
H,表示height,高度,单位为像素;
C,表示color,文字颜色,16进制颜色值;
P,表示padding,边距,单位为像素;
T,表示text,文字开始,T出现后到下一个#之前都当做是内容;
A,表示align,文字左右对齐,1=左、2=中、3=右;
B,表示border,边框,格式为宽度-样式-颜色,宽度、颜色支持四参数格式,参数一:宽度,参数二:1=横纵都有实线、2=只有横坐标有实线,参数三:16进制颜色值;
BC,表示background-color,背景颜色,16进制颜色值,#table行加此属性代表行背景色,多个时表示行间隔的颜色。
2.根据权利要求1所述的基于标记语言的图片生成方法,其特征在于,所述将获取的标记语言模板转换为SCML模板的步骤,包括:
确定获取的标记语言模板的类型,利用与该类型对应的解析器将获取的标记语言模板转换为SCML模板。
3.根据权利要求1所述的基于标记语言的图片生成方法,其特征在于,所述根据所述图片内容元素以及创建的图片画布,生成相应的图片的步骤,包括:
获取所述标记语言模板中定义的元素样式和布局样式;
将所述图片内容元素按所述元素样式和布局样式,绘制至创建的图片画布,生成相应的图片。
4.根据权利要求3所述的基于标记语言的图片生成方法,其特征在于,所述图片内容元素包含多个;
所述将所述图片内容元素按所述元素样式和布局样式,绘制至创建的图片画布,生成相应的图片的步骤,包括:
按所述布局样式将多个图片内容元素及其对应的元素样式划分至多个队列;
依次提取各个队列中的图片内容元素按其元素样式绘制至创建的图片画布,生成相应的图片。
5.根据权利要求1所述的基于标记语言的图片生成方法,其特征在于,创建图片画布的步骤,包括:
获取创建指令,检测所述创建指令中是否包含图片画布的尺寸参数;
若所述创建指令中包含所述尺寸参数,则根据所述尺寸参数创建对应的图片画布;
若所述创建指令中未包含所述尺寸参数,则根据所述图片内容元素的规模信息创建对应的图片画布。
6.根据权利要求5所述的基于标记语言的图片生成方法,其特征在于,所述根据所述图片内容元素的规模信息创建对应的图片画布的步骤,包括:
创建具有默认尺寸参数的初始画布;
按所述图片内容元素的规模信息在所述初始画布上模拟图片生成;
根据模拟结果调整所述初始画布以得到所述图片画布。
7.根据权利要求1-6任意一项所述的基于标记语言的图片生成方法,其特征在于,所述方法还包括:
在生成的图片上标定预设标记信息;
将标定后的图片转换为设定格式的图片文件。
8.一种基于标记语言的图片生成装置,其特征在于,用于实现权利要求1-7任意一项所述的基于标记语言的图片生成方法,所述装置包括:
获取模块,用于获取用于图片生成的数据及标记语言模板;
组合模块,用于将所述标记语言模板和所述数据进行组合,得到图片内容元素;
生成模块,用于根据所述图片内容元素以及创建的图片画布,生成相应的图片。
9.一种电子设备,其特征在于,包括一个或多个存储介质和一个或多个与存储介质通信的处理器,一个或多个存储介质存储有处理器可执行的机器可执行指令,当电子设备运行时,处理器执行所述机器可执行指令,以执行权利要求1-7中任意一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110399798.1A CN113112573B (zh) | 2021-04-14 | 2021-04-14 | 基于标记语言的图片生成方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110399798.1A CN113112573B (zh) | 2021-04-14 | 2021-04-14 | 基于标记语言的图片生成方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113112573A CN113112573A (zh) | 2021-07-13 |
CN113112573B true CN113112573B (zh) | 2024-05-14 |
Family
ID=76716618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110399798.1A Active CN113112573B (zh) | 2021-04-14 | 2021-04-14 | 基于标记语言的图片生成方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113112573B (zh) |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101073076A (zh) * | 2004-08-02 | 2007-11-14 | 佳思腾软件公司 | 在标记语言环境中利用新片段和新方案来创建新文档的文档处理和管理方法 |
CN101566993A (zh) * | 2008-04-22 | 2009-10-28 | 北京中食新华科技有限公司 | 一种具有平衡负载能力的物流WebGIS算法 |
CN101889275A (zh) * | 2007-11-07 | 2010-11-17 | 斯金尼特公司 | 定制打印内容 |
CN102622448A (zh) * | 2012-03-26 | 2012-08-01 | 中山大学 | 一种数字电视互动应用页面标记语言解析方法 |
CN102622215A (zh) * | 2011-01-27 | 2012-08-01 | 腾讯科技(深圳)有限公司 | 一种基于脚本编辑图文单元的方法 |
CN104239284A (zh) * | 2014-09-15 | 2014-12-24 | 广州市西美信息科技有限公司 | 一种图文自动排版的方法和装置 |
US9009826B1 (en) * | 2013-08-22 | 2015-04-14 | Amazon Technologies, Inc. | Image size communication |
CN104573131A (zh) * | 2015-02-15 | 2015-04-29 | 北京京东尚科信息技术有限公司 | 生成商品详情页面数据的方法和终端装置 |
CN106886551A (zh) * | 2016-10-27 | 2017-06-23 | 阿里巴巴集团控股有限公司 | 一种利用标记语言显示图像的方法及装置 |
CN107025676A (zh) * | 2016-01-25 | 2017-08-08 | 阿里巴巴集团控股有限公司 | 一种图片模板以及图片的生成方法及相关装置 |
CN108550060A (zh) * | 2018-05-08 | 2018-09-18 | 多盟睿达科技(中国)有限公司 | 一种多尺寸广告的生成方法及系统 |
CN108959509A (zh) * | 2018-06-27 | 2018-12-07 | 中国建设银行股份有限公司 | 网页水印处理方法、装置及电子设备 |
CN109614317A (zh) * | 2018-11-12 | 2019-04-12 | 平安科技(深圳)有限公司 | 电子装置、用户界面测试方法及存储介质 |
CN111768461A (zh) * | 2020-04-27 | 2020-10-13 | 雅量商业智能技术(广州)有限公司 | 一种基于电子价签的图片生成方法 |
CN112102437A (zh) * | 2020-08-04 | 2020-12-18 | 中科三清科技有限公司 | 一种基于Canvas的雷达图生成方法、装置、存储介质及终端 |
CN112215923A (zh) * | 2020-10-23 | 2021-01-12 | 北京高途云集教育科技有限公司 | 一种图片生成方法、装置、电子设备及存储介质 |
-
2021
- 2021-04-14 CN CN202110399798.1A patent/CN113112573B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101073076A (zh) * | 2004-08-02 | 2007-11-14 | 佳思腾软件公司 | 在标记语言环境中利用新片段和新方案来创建新文档的文档处理和管理方法 |
CN101889275A (zh) * | 2007-11-07 | 2010-11-17 | 斯金尼特公司 | 定制打印内容 |
CN101566993A (zh) * | 2008-04-22 | 2009-10-28 | 北京中食新华科技有限公司 | 一种具有平衡负载能力的物流WebGIS算法 |
CN102622215A (zh) * | 2011-01-27 | 2012-08-01 | 腾讯科技(深圳)有限公司 | 一种基于脚本编辑图文单元的方法 |
CN102622448A (zh) * | 2012-03-26 | 2012-08-01 | 中山大学 | 一种数字电视互动应用页面标记语言解析方法 |
US9009826B1 (en) * | 2013-08-22 | 2015-04-14 | Amazon Technologies, Inc. | Image size communication |
CN104239284A (zh) * | 2014-09-15 | 2014-12-24 | 广州市西美信息科技有限公司 | 一种图文自动排版的方法和装置 |
CN104573131A (zh) * | 2015-02-15 | 2015-04-29 | 北京京东尚科信息技术有限公司 | 生成商品详情页面数据的方法和终端装置 |
CN107025676A (zh) * | 2016-01-25 | 2017-08-08 | 阿里巴巴集团控股有限公司 | 一种图片模板以及图片的生成方法及相关装置 |
CN106886551A (zh) * | 2016-10-27 | 2017-06-23 | 阿里巴巴集团控股有限公司 | 一种利用标记语言显示图像的方法及装置 |
CN108550060A (zh) * | 2018-05-08 | 2018-09-18 | 多盟睿达科技(中国)有限公司 | 一种多尺寸广告的生成方法及系统 |
CN108959509A (zh) * | 2018-06-27 | 2018-12-07 | 中国建设银行股份有限公司 | 网页水印处理方法、装置及电子设备 |
CN109614317A (zh) * | 2018-11-12 | 2019-04-12 | 平安科技(深圳)有限公司 | 电子装置、用户界面测试方法及存储介质 |
CN111768461A (zh) * | 2020-04-27 | 2020-10-13 | 雅量商业智能技术(广州)有限公司 | 一种基于电子价签的图片生成方法 |
CN112102437A (zh) * | 2020-08-04 | 2020-12-18 | 中科三清科技有限公司 | 一种基于Canvas的雷达图生成方法、装置、存储介质及终端 |
CN112215923A (zh) * | 2020-10-23 | 2021-01-12 | 北京高途云集教育科技有限公司 | 一种图片生成方法、装置、电子设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
SCML及其解析器SCML4J的设计及其实现;刘, 周明天;计算机应用(第07期);全文 * |
SGML/XML在电子出版中的应用;刘雪梅, 方曙, 田丁;中国电子出版(第02期);全文 * |
基于NGN的脚本语言CPL与SCML;许钟, 陶伟莲, 曹莉;微计算机应用(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113112573A (zh) | 2021-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7844896B2 (en) | Layout-rule generation system, layout system, layout-rule generation program, layout program, storage medium, method of generating layout rule, and method of layout | |
US8718364B2 (en) | Apparatus and method for digitizing documents with extracted region data | |
JP4896362B2 (ja) | フォントの選択方法 | |
US7940273B2 (en) | Determination of unicode points from glyph elements | |
WO2020103245A1 (zh) | 字体渲染方法、装置及计算机可读存储介质 | |
US8952985B2 (en) | Digital comic editor, method and non-transitory computer-readable medium | |
JPH11282829A (ja) | フォント共有システムおよび方法ならびにフォント共有方法を実行するためのプログラムを格納した記録媒体 | |
JP5437340B2 (ja) | ビューワ装置、サーバ装置、表示制御方法、電子コミック編集方法及びプログラム | |
US9117314B2 (en) | Information output apparatus, method, and recording medium for displaying information on a video display | |
CN101036137B (zh) | 显示装置、用于显示装置的控制方法 | |
US8269791B2 (en) | Information processing apparatus and method for processing a vector image composed of a plurality of objects described by structured document data | |
CN115393872B (zh) | 一种训练文本分类模型的方法、装置、设备及存储介质 | |
CN111915705A (zh) | 图片可视化编辑方法、装置、设备和介质 | |
CN111291533B (zh) | 待显示句段的显示方法、装置、计算机设备和存储介质 | |
US20100037131A1 (en) | System and method for designing and generating online stationery | |
JPH04148475A (ja) | 文書処理方法及び装置 | |
CN113112573B (zh) | 基于标记语言的图片生成方法、装置和电子设备 | |
US9965446B1 (en) | Formatting a content item having a scalable object | |
EP2310963B1 (en) | Information output apparatus, information output method, and recording medium | |
US20130104014A1 (en) | Viewer unit, server unit, display control method, digital comic editing method and non-transitory computer-readable medium | |
CN111367478A (zh) | 一种用于实验室仪器的数据交互打印系统及其打印方法 | |
CN117892698B (zh) | 一种文字渐变渲染方法、设备及存储介质 | |
JP4021881B2 (ja) | 販売促進ツール生成装置 | |
CN113535017B (zh) | 一种绘本文件的处理、同步显示方法、装置及存储介质 | |
JPH1091701A (ja) | フォーム文書システム |
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 |