CN112115680B - 字体拆分方法、装置、计算机设备及计算机可读存储介质 - Google Patents
字体拆分方法、装置、计算机设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112115680B CN112115680B CN202010833815.3A CN202010833815A CN112115680B CN 112115680 B CN112115680 B CN 112115680B CN 202010833815 A CN202010833815 A CN 202010833815A CN 112115680 B CN112115680 B CN 112115680B
- Authority
- CN
- China
- Prior art keywords
- font
- split
- vector diagram
- diagram information
- point
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/008—Vector quantisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本申请公开了一种字体拆分方法、装置、计算机设备及计算机可读存储介质,涉及图像处理技术领域,根据字体的绘制点和控制点,得到单连通区域,确定哪些单连通区域是偏旁或者部首,节省切图工作量,避免浪费资源,不会出现失真或毛刺的现象。所述方法包括:确定待拆分字体,渲染待拆分字体的多个绘制点和多个控制点;按照多个绘制点和多个控制点,将待拆分字体拆分为多个单连通区域;根据待拆分字体的字体结构,在多个单连通区域中提取构成待拆分字体的字体偏旁的第一单连通区域作为偏旁矢量图信息,提取构成待拆分字体的字体部首的第二单连通区域作为部首矢量图信息;对偏旁矢量图信息和部首矢量图信息进行标记和存储,得到待拆分字体的拆分结果。
Description
技术领域
本申请涉及图像处理技术领域,特别是涉及一种字体拆分方法、装置、计算机设备及计算机可读存储介质。
背景技术
在移动互联时代,随着终端设备的不断智能化,终端设备的功能越来越强大,能够满足人们生活、学习、娱乐中的各种需求。近年来,图像处理技术飞速发展,一些识字的课程、游戏等在终端设备上逐渐流行,用轻松愉快的方式帮助儿童和学生培养浓厚的学习兴趣和良好的学习习惯。这些识字的课程、游戏等通常是将字体拆分得到大量的偏旁或部首,通过重组这些偏旁或部首,完成课程以及游戏中的任务。
相关技术中,在进行字体的拆分时,首先,设定统一的尺寸。随后,把每个字体按照偏旁或部首进行拆分,得到两张PNG(Portable Network Graphic Format,图像文件存储格式)图片。最后,记录PNG图片与偏旁或者部首之间的对应关系。
在实现本申请的过程中,申请人发现相关技术至少存在以下问题:
PNG图片在实际应用的过程中进行渲染时需要按照应用的规定放大或者缩小,这个过程中存在PNG图片失真的问题,产生模糊或者毛刺的现象,需要保证PNG图片的尺寸足够大才可以,这就导致海量字体的PNG图片会浪费大量的存储空间,而且图片处理的切图工作量也很大,造成资源的浪费,智能性较差。
发明内容
有鉴于此,本申请提供了一种字体拆分方法、装置、计算机设备及计算机可读存储介质,主要目的在于解决目前海量字体的PNG图片会浪费大量的存储空间,而且图片处理的切图工作量也很大,造成资源的浪费,智能性较差的问题。
依据本申请第一方面,提供了一种字体拆分方法,该方法包括:
确定待拆分字体,渲染所述待拆分字体的多个绘制点和多个控制点;
按照所述多个绘制点和所述多个控制点,将所述待拆分字体拆分为多个单连通区域;
根据所述待拆分字体的字体结构,在所述多个单连通区域中提取构成所述待拆分字体的字体偏旁的第一单连通区域作为偏旁矢量图信息,提取构成所述待拆分字体的字体部首的第二单连通区域作为部首矢量图信息;
对所述偏旁矢量图信息和所述部首矢量图信息进行标记和存储,得到所述待拆分字体的拆分结果。
依据本申请第二方面,提供了一种字体拆分装置,该装置包括:
第一渲染模块,用于确定待拆分字体,渲染所述待拆分字体的多个绘制点和多个控制点;
拆分模块,用于按照所述多个绘制点和所述多个控制点,将所述待拆分字体拆分为多个单连通区域;
提取模块,用于根据所述待拆分字体的字体结构,在所述多个单连通区域中提取构成所述待拆分字体的字体偏旁的第一单连通区域作为偏旁矢量图信息,提取构成所述待拆分字体的字体部首的第二单连通区域作为部首矢量图信息;
第一存储模块,用于对所述偏旁矢量图信息和所述部首矢量图信息进行标记和存储,得到所述待拆分字体的拆分结果。
依据本申请第三方面,提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述方法的步骤。
依据本申请第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法的步骤。
借由上述技术方案,本申请提供的一种字体拆分方法、装置、计算机设备及计算机可读存储介质,本申请根据待拆分字体的绘制点和控制点,将待拆分字体拆分为多个单连通区域,按照字体结构,确定哪些单连通区域是偏旁,哪些单连通区域是部首,进而提取单连通区域形成偏旁矢量图信息和部首矢量图信息作为该待拆分字体的拆分结果,无需采用图片的方式对待拆分字体进行拆分,节省了大量的切图工作量,避免造成资源的浪费,而且矢量图信息的渲染不会出现失真或者毛刺的现象,智能性较好。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本申请实施例提供的一种字体拆分方法流程示意图;
图2A示出了本申请实施例提供的一种字体拆分方法流程示意图;
图2B示出了本申请实施例提供的一种字体拆分方法的示意图;
图2C示出了本申请实施例提供的一种字体拆分方法的示意图;
图3A示出了本申请实施例提供的一种字体拆分装置的结构示意图;
图3B示出了本申请实施例提供的一种字体拆分装置的结构示意图;
图3C示出了本申请实施例提供的一种字体拆分装置的结构示意图;
图3D示出了本申请实施例提供的一种字体拆分装置的结构示意图;
图3E示出了本申请实施例提供的一种字体拆分装置的结构示意图;
图4示出了本申请实施例提供的一种计算机设备的装置结构示意图。
具体实施方式
下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
本申请实施例提供了一种字体拆分方法,如图1所示,该方法包括:
101、确定待拆分字体,渲染待拆分字体的多个绘制点和多个控制点。
102、按照多个绘制点和多个控制点,将待拆分字体拆分为多个单连通区域。
103、根据待拆分字体的字体结构,在多个单连通区域中提取构成待拆分字体的字体偏旁的第一单连通区域作为偏旁矢量图信息,提取构成待拆分字体的字体部首的第二单连通区域作为部首矢量图信息。
104、对偏旁矢量图信息和部首矢量图信息进行标记和存储,得到待拆分字体的拆分结果。
本申请实施例提供的方法,根据待拆分字体的绘制点和控制点,将待拆分字体拆分为多个单连通区域,按照字体结构,确定哪些单连通区域是偏旁,哪些单连通区域是部首,进而提取单连通区域形成偏旁矢量图信息和部首矢量图信息作为该待拆分字体的拆分结果,无需采用图片的方式对待拆分字体进行拆分,节省了大量的切图工作量,避免造成资源的浪费,而且矢量图信息的渲染不会出现失真或者毛刺的现象,智能性较好。
本申请实施例提供了一种字体拆分方法,如图2A所示,该方法包括:
201、确定待拆分字体,渲染待拆分字体的多个绘制点和多个控制点。
目前,在字体拆分这一项目上,经常使用的方法有两种,一种方法是选中指定的多个文字,设置好文字的字体格式,比如楷体,之后统一多个文字的尺寸,把每个文字按照偏旁、部首分别切成两张PNG图片,并记录做好图片和偏旁、部首的对应关系。采用这种方法进行字体拆分的弊端在于PNG图片在放大或者缩小的时候会存在失真的问题,产生模糊或者毛刺现象。而如果想要使PNG图片不失真,就需要保证生成的PNG图片的尺寸足够大,这就导致几百个文字拆分得到的PNG图片会占用大量的空间,影响软件安装包的大小,而且美术切图的工作量也很大。另一种方法是采用矩形区域对文字的偏旁部首进行标记,并分别记录到矩形区域和偏旁部首的对应关系中。采用这种方法进行字体拆分的弊端在于有些文字的偏旁和部首并不是严格按照矩形区域分开的,偏旁和部首的矩形区域存在重叠,无法单纯依靠矩形区域来标记偏旁和部首。
而近年来,随着互联网的逐渐流行,TTF(True Type Font,字体文件表示方式)成为最常用的一种字体文件表示方式。TTF是一种彩色数字函数描述字体轮廓外形的一套内容丰富的指令集合,这些指令中包括字型构造、颜色填充、数字描述函数、流程条件控制、栅格处理器控制,附加提示信息控制等指令。TTF采用几何学中的二次B样条曲线及直线来描述字体的外形轮廓,二次B样条曲线具有一阶连续性和正切连续性。因此,本申请提出了一种字体拆分方法,利用TTF指令描述的特点,通过算法自动将字体拆分为多个单连通区域,只需要标记哪些单连通区域是偏旁,哪些单连通区域是部首,就能够方便快捷的实现字体的拆分。其中,为了使整个的操作过程可视化,便于多人同时编辑,本申请利用web(互联网)技术将整个字体拆分流程设计为网页模式的字体拆分工具。该字体拆分工具设置有一个开源的TTF格式解析库,通过TTF指令,解析TTF格式的文件。
该字体拆分工具可提供一个输入字体的输入框,用户可以在输入框中输入想要拆分的汉字,这样,字体拆分工具便可以接收到被选中的待拆分字体。之后,运行字体拆分工具中的渲染指令,对待拆分字体进行渲染,生成待拆分字体的字体矢量图,渲染出该待拆分字体的样子,并在字体矢量图中将多个绘制点和多个控制点进行标注。其中,渲染指令可为字体拆分工具中的Web Canvas(在线绘制)指令,在字体矢量图中标注的控制点实质上可为二阶贝塞尔的控制点,字体矢量图本质是SVG(Scalable Vector Graphics,可缩放的矢量图形)矢量图。
202、按照多个绘制点和多个控制点,将待拆分字体拆分为多个单连通区域。
在本申请实施例中,渲染得到多个绘制点和多个控制点,便可以对待拆分字体进行单连通区域的拆分。下面以拆分某一个单连通区域为例进行说明:首先,在多个绘制点中选择第一目标绘制点,将绘制游标置于第一目标绘制点,该第一目标绘制点可以是多个绘制点中任一绘制点。随后,确定第一目标绘制点在待拆分字体中所在的目标笔画,按照目标笔画的笔画线条,在多个绘制点中确定第二目标绘制点,该第二目标绘制点也就是目标笔画的笔画线条中位于第一目标绘制点顺时针方向的下一绘制点。最后,根据第一目标绘制点和第二目标绘制点所处的位置,在多个控制点中确定位于第一目标绘制点和第二目标绘制点之间的第一目标控制点,以第一目标控制点为基准,控制绘制游标由第一目标绘制点移动至第二目标绘制点,形成第一绘制线条。重复执行上述线条绘制的过程,继续按照目标笔画的笔画线条,在多个绘制点中为第二目标绘制点确定第三目标绘制点以及第二目标绘制点与第三目标绘制点之间的第二目标控制点,并以第二目标控制点为基准,控制绘制游标由第二目标绘制点移动至第三目标绘制点形成第二绘制线条,直至绘制游标返回至第一目标绘制点,得到单连通区域,该第三目标绘制点也就是目标笔画的笔画线条中位于第二目标绘制点顺时针方向的下一绘制点。通过重复执行上述绘制单连通区域的过程,直至多个绘制点均绘制完毕,就能够得到多个单连通区域。
其中,字体拆分工具能够进行TTF解析,TTF中涉及到很多的绘制指令,这些指令均是SVG格式的绘图指令,基于游标指令进行绘图,因此,上述确定单连通区域的过程可以通过执行TTF中的绘制指令来实现。TTF中最常用的绘制指令有4个,分别为Move(移动)、Line(直线)、Curve(曲线)和Z(指代结束指令)。其中,Move表示将绘制游标移动到某个位置,将该位置作为绘制的起点位置。Line表示从绘制游标当前所处的位置到另一个位置绘制一条直线,并将绘制游标移动到另一个位置。Curve表示以某一个控制点为基准,从绘制游标当前所处的位置到另一个位置绘制一条曲线,其中字体中撇和捺的笔画均是采用Curve指令绘制的。Z表示结束对当前单连通区域的绘制。
下面以字体中的笔画一横为例,对单连通区域的确定过程以及绘制指令的执行过程进行简单说明:参见图2B,P1、P2、P3、P4和P5为绘制点,C1、C2、C3、C4和C5为控制点,将P1作为第一目标绘制点,执行指令Move(P1x,P1y)将绘制游标置于P1,其中,(P1x,P1y)用来指代P1的坐标。随后,P1在笔画线条上顺时针方向的下一绘制点为P2,可以确定第二目标绘制点为P2,P1和P2之间的控制点为C1,则C1为第一目标控制点,执行指令CurveTo(C1x,C1y)(C1x,C1y)(P2x,P2y),实现以第一目标控制点C1为基准,控制绘制游标由第一目标绘制点P1移动至第二目标绘制点P2,形成第一绘制线条,其中,(C1x,C1y)用来指代C1的坐标,(P2x,P2y)用来指代P2的坐标。之后,重复执行上述的步骤,可以通过下述指令顺序实现:CurveTo(C2x,C2y)(C2x,C2y)(P3x,P3y);CurveTo(C3x,C3y)(C3x,C3y)(P4x,P4y);CurveTo(C4x,C4y)(C4x,C4y)(P5x,P5y);CurveTo(C5x,C5y)(C5x,C5y)(P1x,P1y);Z。需要说明的是,上述指令Z表示当前的单连通区域已经绘制完毕,可以重新选择其他的目标绘制点继续进行绘制。因此,在实际应用的过程中,只需要将Z指令与Z指令之间的指令分别提取出来,就能够实现对多个单连通区域的获取。
另外,上面的过程只是简单的示意。因为TTF的Curve指令还分为hvCurveto((偏移量连线指令)),rlineCurve(偏移量连线指令)等等,比如,hvCurveto表示目的点的x坐标和当前绘制游标所在位置坐标一致,y表示的是目的点的坐标y值相对于当前所在位置坐标的y值的偏移量。这样会减少存储一个x坐标,达到节省空间的目的。但是最终Curve指令都会还原成CurveTo(C1x,C1y)(C1x,C1y)(P2x,P2y)的形式来实现最终绘制,此处不再赘述。
203、根据待拆分字体的字体结构,在多个单连通区域中提取构成待拆分字体的字体偏旁的第一单连通区域作为偏旁矢量图信息,提取构成待拆分字体的字体部首的第二单连通区域作为单连通区域组成。
在本申请实施例中,当拆分到多个单连通区域后,可以很容易的确定出组成字体偏旁的单连通区域以及组成字体部首的单连通区域,进而在多个单连通区域中提取构成待拆分字体的字体偏旁的第一单连通区域作为偏旁矢量图信息,提取构成待拆分字体的字体部首的第二单连通区域作为部首矢量图信息。
需要说明的是,在字体拆分工具中,为了使这个提取以及组成矢量图信息的过程可视化,可以采用数字对拆分得到的多个单连通区域依次编号,并通过对编号勾选的方式确定基于哪些单连通区域组成偏旁矢量图信息,基于哪些单连通区域组成部首矢量图信息。例如,参见图2C,图中的“影”字被拆分为编号为0至9的多个单连通区域,其中,编号为1、3和7的单连通区域组成了部首“彡”,则通过提取编号为1、3和7的单连通区域可以得到部首矢量图信息,通过提取除编号为1、3和7的单连通区域外的其他单连通区域,可以得到偏旁“景”的偏旁矢量图信息。其中,在提取除编号为1、3和7的单连通区域外的其他单连通区域时,可以通过字体拆分工具中的“反选”功能实现,本申请对提取矢量图信息的方式不进行具体限定。
需要说明的是,绘制点以及控制点的作用是为了对待拆分字体进行单连通区域的划分,因此,在提取单连通区域形成偏旁矢量图信息或部首矢量图信息时,无需将绘制点以及控制点在提取到的偏旁矢量图信息或部首矢量图信息中显示出来,直接将绘制点以及控制点清除即可。
204、采用字体偏旁的偏旁名称对偏旁矢量图信息进行命名,采用字体部首的部首名称对部首矢量图信息进行命名。
在本申请实施例中,为了方便对偏旁矢量图信息和部首矢量图信息进行记录,可以采用字体偏旁的偏旁名称对偏旁矢量图信息进行命名,采用字体部首的部首名称对部首矢量图信息进行命名。例如,部首“彡”的部首矢量图信息可以直接采用“彡”命名,或者采用“三撇儿”命名;部首“宀”的部首矢量图信息可以直接采用“宀”命名,或者采用“宝盖头”命名,本申请对偏旁矢量图信息和部首矢量图信息的命名方式不进行具体限定。
205、为待拆分字体分配字体编码,采用字体编码对命名后的偏旁矢量图信息和部首矢量图信息进行标记,将标记后的偏旁矢量图信息和部首矢量图信息作为待拆分字体的拆分结果存储在预设拆分文件中。
在本申请实施例中,完成了对待拆分字体的拆分后,对所述偏旁矢量图信息和所述部首矢量图信息进行标记和存储,得到所述待拆分字体的拆分结果,并将拆分结果存储。其中,可以为待拆分字体分配字体编码,采用字体编码对命名后的偏旁矢量图信息和部首矢量图信息进行标记,将标记后的偏旁矢量图信息和部首矢量图信息作为待拆分字体的拆分结果存储在预设拆分文件中。
在实际应用的过程中,如果是基于字体拆分工具实现的字体拆分,在生成了偏旁矢量图信息和部首矢量图信息后,可以向字体拆分工具进行提交,这样,字体拆分工具会将分离好的偏旁矢量图信息和部首矢量图信息以Json(JavaScript Object Notation,直译式脚本语言对象表示法)格式传到后台服务器,由服务器将偏旁矢量图信息和部首矢量图信息提交到对应的预设拆分文件中进行存储,该预设拆分文件具体可以是SVN目录。需要说明的是,由于字体拆分工具拆分的字体较多,因此,对每个字体拆分后得到的偏旁矢量图信息和部首矢量图信息都可以存储在同一个预设拆分文件中,以便后续对预设拆分文件进行集成管理。
206、将待拆分字体与为待拆分字体分配的字体编码进行绑定,存储在预设配置文件中。
在本申请实施例中,考虑到同时会有大量的字体被拆分,因此,确定为待拆分字体分配的字体编码,将待拆分字体与为待拆分字体分配的字体编码进行绑定,,并将绑定后的待拆分字体与字体编码存储在预设配置文件中。其中,实际应用的过程中,由于在上述过程中,字体拆分工具会将分离好的偏旁矢量图信息和部首矢量图信息以Json格式传到后台服务器,所以服务器会接收到大量Json格式的偏旁矢量图信息和部首矢量图信息,服务器在预设拆分文件可以汇总所有字的偏旁矢量图信息和部首矢量图信息,通过node.js(一种直译式脚本语言运行环境)调用opentrueype.js(轮廓字体文件),把Json格式的预设拆分文件转成TTF格式的文件,这样,就可以直接生成一个标记有字体编码的预设配置文件,字体编码具体可为unicode(统一码)编码。预设配置文件里会包括每个字的偏旁矢量图信息和部首矢量图信息,以及这些矢量图信息在TTF格式的文件里对应的unicode编码,后续在引擎里只需要使用TTF格式的文件并传入对应unicode编码便可以渲染该字的偏旁或者部首。
207、当检测到请求对待拆分字体进行渲染时,确定待拆分字体在预设配置文件中对应的字体编码,在预设拆分文件中查询采用字体编码标记的偏旁矢量图信息和部首矢量图信息,分别对偏旁矢量图信息和部首矢量图信息进行渲染。
在本申请实施例中,当检测到请求对待拆分字体进行渲染时,确定待拆分字体在预设配置文件中对应的字体编码,在预设拆分文件中查询采用字体编码标记的偏旁矢量图信息和部首矢量图信息,分别对偏旁矢量图信息和部首矢量图信息进行渲染,也即使用TTF格式的文件并传入对应unicode编码便可以渲染该字的偏旁或者部首。其中,TTF格式的文件和预设配置文件的体积较小,通常为500k(500千字节),不会占用大量的安装包内存,而且渲染的偏旁以及部首也不会失真,实现自动拆分单连通区域,让编辑变得更简单。
本申请实施例提供的方法,根据待拆分字体的绘制点和控制点,将待拆分字体拆分为多个单连通区域,按照字体结构,确定哪些单连通区域是偏旁,哪些单连通区域是部首,进而提取单连通区域形成偏旁矢量图信息和部首矢量图信息作为该待拆分字体的拆分结果,无需采用图片的方式对待拆分字体进行拆分,节省了大量的切图工作量,避免造成资源的浪费,而且矢量图信息的渲染不会出现失真或者毛刺的现象,智能性较好。
进一步地,作为图1所述方法的具体实现,本申请实施例提供了一种字体拆分装置,如图3A所示,所述装置包括:第一渲染模块301,拆分模块302,提取模块303和第一存储模块304。
该第一渲染模块301,用于确定待拆分字体,渲染所述待拆分字体的多个绘制点和多个控制点;
该拆分模块302,用于按照所述多个绘制点和所述多个控制点,将所述待拆分字体拆分为多个单连通区域;
该提取模块303,用于根据所述待拆分字体的字体结构,在所述多个单连通区域中提取构成所述待拆分字体的字体偏旁的第一单连通区域作为偏旁矢量图信息,提取构成所述待拆分字体的字体部首的第二单连通区域作为部首矢量图信息;
该第一存储模块304,用于对所述偏旁矢量图信息和所述部首矢量图信息进行标记和存储,得到所述待拆分字体的拆分结果。
在具体的应用场景中,如图3B所示,该第一渲染模块301,包括:接收单元3011和标注单元3012。
该接收单元3011,用于接收被选中的所述待拆分字体;
该标注单元3012,用于运行渲染指令,生成所述待拆分字体的字体矢量图,在所述字体矢量图中将所述多个绘制点和所述多个控制点进行标注。
在具体的应用场景中,该拆分模块302,用于在所述多个绘制点中确定第一目标绘制点和第二目标绘制点,基于所述多个控制点,形成所述第一目标绘制点和所述第二目标绘制点之间的第一绘制线条,所述第一目标绘制点是所述多个绘制点中任一绘制点,所述第二目标绘制点是所述第一绘制点所处目标笔画的笔画线条中位于所述第一目标绘制点顺时针方向的下一绘制点;继续确定第三目标绘制点,重复执行形成绘制线条的过程,形成所述第二目标绘制点与所述第三目标绘制点之间的第二绘制线条,直至返回至所述第一目标绘制点,得到单连通区域,所述第三目标绘制点是所述目标笔画的笔画线条中位于所述第二目标绘制点顺时针方向的下一绘制点;在所述多个绘制点中确定未参加任何单连通区域绘制的其他绘制点,重复执行上述绘制单连通区域的过程,直至所述多个绘制点均绘制完毕,得到所述多个单连通区域。
在具体的应用场景中,该拆分模块302,用于将绘制游标置于所述第一目标绘制点;根据所述第一目标绘制点和所述第二目标绘制点所处的位置,在所述多个控制点中确定位于所述第一目标绘制点和所述第二目标绘制点之间的第一目标控制点;以所述第一目标控制点为基准,控制所述绘制游标由所述第一目标绘制点移动至所述第二目标绘制点,形成所述第一绘制线条。
在具体的应用场景中,如图3C所示,该第一存储模块304,包括:命名单元3041,标记单元3042和存储单元3043。
该命名单元3041,用于采用所述字体偏旁的偏旁名称对所述偏旁矢量图信息进行命名,采用所述字体部首的部首名称对所述部首矢量图信息进行命名;
该标记单元3042,用于为所述待拆分字体分配字体编码,采用所述字体编码对命名后的所述偏旁矢量图信息和所述部首矢量图信息进行标记;
该存储单元3043,用于将标记后的所述偏旁矢量图信息和所述部首矢量图信息作为所述待拆分字体的拆分结果存储在预设拆分文件中。
在具体的应用场景中,如图3D所示,该装置还包括:绑定模块305和第二存储模块306。
该绑定模块305,用于确定为所述待拆分字体分配的字体编码,将所述待拆分字体与为所述待拆分字体分配的字体编码进行绑定;
该第二存储模块306,用于将绑定后的所述待拆分字体与所述字体编码存储在预设配置文件中。
在具体的应用场景中,如图3E所示,该装置还包括:查询模块307和第二渲染模块308。
该查询模块307,用于当检测到请求对所述待拆分字体进行渲染时,确定所述待拆分字体在所述预设配置文件中对应的字体编码,在预设拆分文件中查询采用所述字体编码标记的所述偏旁矢量图信息和所述部首矢量图信息;
该第二渲染模块308,用于分别对所述偏旁矢量图信息和所述部首矢量图信息进行渲染。
本申请实施例提供的装置,根据待拆分字体的绘制点和控制点,将待拆分字体拆分为多个单连通区域,按照字体结构,确定哪些单连通区域是偏旁,哪些单连通区域是部首,进而提取单连通区域形成偏旁矢量图信息和部首矢量图信息作为该待拆分字体的拆分结果,无需采用图片的方式对待拆分字体进行拆分,节省了大量的切图工作量,避免造成资源的浪费,而且矢量图信息的渲染不会出现失真或者毛刺的现象,智能性较好。
需要说明的是,本申请实施例提供的一种字体拆分装置所涉及各功能单元的其他相应描述,可以参考图1和图2A中的对应描述,在此不再赘述。
在示例性实施例中,参见图4,还提供了一种设备,该设备400包括通信总线、处理器、存储器和通信接口,还可以包括、输入输出接口和显示设备,其中,各个功能单元之间可以通过总线完成相互间的通信。该存储器存储有计算机程序,处理器,用于执行存储器上所存放的程序,执行上述实施例中的字体拆分方法。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的字体拆分方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。
本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。
以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (10)
1.一种字体拆分方法,其特征在于,包括:
确定待拆分字体,渲染所述待拆分字体的多个绘制点和多个控制点;
按照所述多个绘制点和所述多个控制点,将所述待拆分字体拆分为多个单连通区域,其中,在进行单连通区域的拆分时,在所述多个绘制点中选取任一绘制点,按照所述绘制点所在笔画的笔画线条确定位于所述绘制点顺时针方向的下一绘制点,以两个绘制点之间的控制点为基准,控制绘制游标由所述绘制点向所述下一绘制点移动,形成绘制线条,直至所述绘制游标回到所述绘制点,得到一单连通区域;
根据所述待拆分字体的字体结构,在所述多个单连通区域中提取构成所述待拆分字体的字体偏旁的第一单连通区域作为偏旁矢量图信息,提取构成所述待拆分字体的字体部首的第二单连通区域作为部首矢量图信息;
对所述偏旁矢量图信息和所述部首矢量图信息进行标记和存储,得到所述待拆分字体的拆分结果。
2.根据权利要求1所述的方法,其特征在于,所述确定待拆分字体,渲染所述待拆分字体的多个绘制点和多个控制点,包括:
接收被选中的所述待拆分字体;
运行渲染指令,生成所述待拆分字体的字体矢量图,在所述字体矢量图中将所述多个绘制点和所述多个控制点进行标注。
3.根据权利要求1所述的方法,其特征在于,所述按照所述多个绘制点和所述多个控制点,将所述待拆分字体拆分为多个单连通区域,包括:
在所述多个绘制点中确定第一目标绘制点和第二目标绘制点,基于所述多个控制点,形成所述第一目标绘制点和所述第二目标绘制点之间的第一绘制线条,所述第一目标绘制点是所述多个绘制点中任一绘制点,所述第二目标绘制点是所述第一绘制点所处目标笔画的笔画线条中位于所述第一目标绘制点顺时针方向的下一绘制点;
继续确定第三目标绘制点,重复执行形成绘制线条的过程,形成所述第二目标绘制点与所述第三目标绘制点之间的第二绘制线条,直至返回至所述第一目标绘制点,得到单连通区域,所述第三目标绘制点是所述目标笔画的笔画线条中位于所述第二目标绘制点顺时针方向的下一绘制点;
在所述多个绘制点中确定未参加任何单连通区域绘制的其他绘制点,重复执行上述绘制单连通区域的过程,直至所述多个绘制点均绘制完毕,得到所述多个单连通区域。
4.根据权利要求3所述的方法,其特征在于,所述基于所述多个控制点,形成所述第一目标绘制点和所述第二目标绘制点之间的第一绘制线条,包括:
将绘制游标置于所述第一目标绘制点;
根据所述第一目标绘制点和所述第二目标绘制点所处的位置,在所述多个控制点中确定位于所述第一目标绘制点和所述第二目标绘制点之间的第一目标控制点;
以所述第一目标控制点为基准,控制所述绘制游标由所述第一目标绘制点移动至所述第二目标绘制点,形成所述第一绘制线条。
5.根据权利要求1所述的方法,其特征在于,所述对所述偏旁矢量图信息和所述部首矢量图信息进行标记和存储,得到所述待拆分字体的拆分结果,包括:
采用所述字体偏旁的偏旁名称对所述偏旁矢量图信息进行命名,采用所述字体部首的部首名称对所述部首矢量图信息进行命名;
为所述待拆分字体分配字体编码,采用所述字体编码对命名后的所述偏旁矢量图信息和所述部首矢量图信息进行标记;
将标记后的所述偏旁矢量图信息和所述部首矢量图信息作为所述待拆分字体的拆分结果存储在预设拆分文件中。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定为所述待拆分字体分配的字体编码,将所述待拆分字体与为所述待拆分字体分配的字体编码进行绑定;
将绑定后的所述待拆分字体与所述字体编码存储在预设配置文件中。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当检测到请求对所述待拆分字体进行渲染时,确定所述待拆分字体在所述预设配置文件中对应的字体编码,在预设拆分文件中查询采用所述字体编码标记的所述偏旁矢量图信息和所述部首矢量图信息;
分别对所述偏旁矢量图信息和所述部首矢量图信息进行渲染。
8.一种字体拆分装置,其特征在于,包括:
第一渲染模块,用于确定待拆分字体,渲染所述待拆分字体的多个绘制点和多个控制点;
拆分模块,用于按照所述多个绘制点和所述多个控制点,将所述待拆分字体拆分为多个单连通区域,其中,在进行单连通区域的拆分时,在所述多个绘制点中选取任一绘制点,按照所述绘制点所在笔画的笔画线条确定位于所述绘制点顺时针方向的下一绘制点,以两个绘制点之间的控制点为基准,控制绘制游标由所述绘制点向所述下一绘制点移动,形成绘制线条,直至所述绘制游标回到所述绘制点,得到一单连通区域;
提取模块,用于根据所述待拆分字体的字体结构,在所述多个单连通区域中提取构成所述待拆分字体的字体偏旁的第一单连通区域作为偏旁矢量图信息,提取构成所述待拆分字体的字体部首的第二单连通区域作为部首矢量图信息;
第一存储模块,用于对所述偏旁矢量图信息和所述部首矢量图信息进行标记和存储,得到所述待拆分字体的拆分结果。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010833815.3A CN112115680B (zh) | 2020-08-18 | 2020-08-18 | 字体拆分方法、装置、计算机设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010833815.3A CN112115680B (zh) | 2020-08-18 | 2020-08-18 | 字体拆分方法、装置、计算机设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112115680A CN112115680A (zh) | 2020-12-22 |
CN112115680B true CN112115680B (zh) | 2023-01-10 |
Family
ID=73804331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010833815.3A Active CN112115680B (zh) | 2020-08-18 | 2020-08-18 | 字体拆分方法、装置、计算机设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112115680B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113986519B (zh) * | 2021-12-29 | 2022-06-03 | 深圳市毕美科技有限公司 | 数据调度处理方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104268526A (zh) * | 2014-09-25 | 2015-01-07 | 北京航空航天大学 | 一种汉字图片匹配与变形方法 |
CN104424183A (zh) * | 2013-08-19 | 2015-03-18 | 北大方正集团有限公司 | 字库及其制作方法 |
CN108804397A (zh) * | 2018-06-12 | 2018-11-13 | 华南理工大学 | 一种基于少量目标字体的汉字字体转换生成的方法 |
CN109670069A (zh) * | 2018-11-13 | 2019-04-23 | 厦门分类信息技术有限公司 | 一种书法文字图像的排版方法及排版系统 |
CN111143541A (zh) * | 2020-03-07 | 2020-05-12 | 合肥煜极网络科技有限公司 | 一种基于手写字迹进行深度学习的字体生成系统 |
CN111539437A (zh) * | 2020-04-27 | 2020-08-14 | 西南大学 | 基于深度学习的甲骨文偏旁的检测与识别方法 |
-
2020
- 2020-08-18 CN CN202010833815.3A patent/CN112115680B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104424183A (zh) * | 2013-08-19 | 2015-03-18 | 北大方正集团有限公司 | 字库及其制作方法 |
CN104268526A (zh) * | 2014-09-25 | 2015-01-07 | 北京航空航天大学 | 一种汉字图片匹配与变形方法 |
CN108804397A (zh) * | 2018-06-12 | 2018-11-13 | 华南理工大学 | 一种基于少量目标字体的汉字字体转换生成的方法 |
CN109670069A (zh) * | 2018-11-13 | 2019-04-23 | 厦门分类信息技术有限公司 | 一种书法文字图像的排版方法及排版系统 |
CN111143541A (zh) * | 2020-03-07 | 2020-05-12 | 合肥煜极网络科技有限公司 | 一种基于手写字迹进行深度学习的字体生成系统 |
CN111539437A (zh) * | 2020-04-27 | 2020-08-14 | 西南大学 | 基于深度学习的甲骨文偏旁的检测与识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112115680A (zh) | 2020-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111240669B (zh) | 界面生成方法、装置、电子设备及计算机存储介质 | |
CN107890671A (zh) | Web端的三维模型渲染方法、装置、计算机设备及存储介质 | |
Harrower et al. | MapShaper. org: A map generalization web service | |
CN112988290A (zh) | 多语言配置文件的生成方法、页面显示方法、装置及终端 | |
CN105447815A (zh) | 移动终端设备中图片的处理方法及装置 | |
CN113268303A (zh) | 界面元素配置方法、装置、存储介质及电子设备 | |
CN115439609B (zh) | 基于地图服务的三维模型渲染方法、系统、设备及介质 | |
CN112115680B (zh) | 字体拆分方法、装置、计算机设备及计算机可读存储介质 | |
US10664980B2 (en) | Vector graphics handling processes for user applications | |
CN111258434A (zh) | 在聊天界面插入图片的方法、装置、设备及存储介质 | |
CN109905753B (zh) | 角标的显示方法和装置、存储介质、电子装置 | |
US10573033B2 (en) | Selective editing of brushstrokes in a digital graphical image based on direction | |
CN111367514A (zh) | 页面卡片的开发方法和装置、计算设备和存储介质 | |
Moloo et al. | A 3D virtual tour of the university of mauritius using WebGL | |
CN106933439B (zh) | 一种基于社交平台的图片处理方法及系统 | |
CN106548501B (zh) | 一种图像绘制方法及设备 | |
CN115375812A (zh) | Cad数据渲染方法、装置、电子设备及存储介质 | |
CN114168060A (zh) | 电子白板渲染方法、装置、设备和存储介质 | |
CN111462343B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN110990104B (zh) | 一种基于Unity3D的纹理渲染方法及装置 | |
CN109726382B (zh) | 排版方法和装置 | |
CN114692240A (zh) | Cad图纸绘制方法、装置、存储介质及计算机设备 | |
CN113840169A (zh) | 一种视频处理方法、装置、计算设备和存储介质 | |
CN103838743A (zh) | 在线阅读版式文档的方法、系统和设备 | |
CN114722465A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |