CN110196964A - 字体格式的转换方法及设备 - Google Patents

字体格式的转换方法及设备 Download PDF

Info

Publication number
CN110196964A
CN110196964A CN201910486752.6A CN201910486752A CN110196964A CN 110196964 A CN110196964 A CN 110196964A CN 201910486752 A CN201910486752 A CN 201910486752A CN 110196964 A CN110196964 A CN 110196964A
Authority
CN
China
Prior art keywords
character
secondary bezier
target
curve
converted
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.)
Granted
Application number
CN201910486752.6A
Other languages
English (en)
Other versions
CN110196964B (zh
Inventor
王玉欣
贾雪莎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New Founder Holdings Development Co ltd
Beijing Founder Electronics Co Ltd
Original Assignee
Peking University Founder Group Co Ltd
Beijing Founder Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Peking University Founder Group Co Ltd, Beijing Founder Electronics Co Ltd filed Critical Peking University Founder Group Co Ltd
Priority to CN201910486752.6A priority Critical patent/CN110196964B/zh
Publication of CN110196964A publication Critical patent/CN110196964A/zh
Application granted granted Critical
Publication of CN110196964B publication Critical patent/CN110196964B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/109Font handling; Temporal or kinetic typography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

本发明实施例提供一种字体格式的转换方法及设备,该方法包括:获取PostScript字体格式中待转换字符在不同基础字体中的字符编码,若所述待转换字符在不同基础字体中的字符编码相同,且轮廓数量相同,对应轮廓中的点数量相同,则分别提取所述待转换字符在不同基础字体中的各轮廓对应的轮廓曲线,其中,所述轮廓曲线包括三次贝塞尔曲线,对三次贝塞尔曲线进行降阶处理,将三次贝塞尔曲线均降阶为具有最大曲线条数的二次贝塞尔曲线,并根据二次贝塞尔曲线生成对应的TrueType字体格式,本发明实施例能够使字体格式转换后的字符的不同的基础字体的轮廓对应,对应轮廓的点对应的,不需要人工进行调整。

Description

字体格式的转换方法及设备
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种字体格式的转换方法及设备。
背景技术
OpenType字体是一种可缩放的电脑字体,包括TrueType字体格式和PostScript字体格式。其中,PostScript字体格式采用三次贝塞尔曲线描述字形,TrueType字体格式采用二次贝塞尔曲线描述字形。在家族字体和可变字体中,对于同一个字符通常会存在多款不同的基础字体,例如,家族字体中,包括多款风格相同但粗细不同的基础字体,将任意两款基础字体进行插值即可以得到其他字体,在开发制作过程中,为了字形效果,通常先开发最粗和最细的两款字体,然后在插值得到其他字体。可变字体是一种等同于多个单独字体的一种字体,它可以紧凑地将多个字体封装在单个字体文件中,可变字体中的字体文件通常是家族字体中的至少2个以上的字体。这要求这些不同的基础字体的笔画带交叉,笔画顺序对应,即轮廓对应,描述轮廓的曲线的端点也对应,即,点对应。
在将PostScript字体格式转换为TrueType字体格式时,需要将描述字形的三次贝塞尔曲线转换为二次贝塞尔曲线。
然而,发明人发现,在字体格式转换后,常常出现同一个字符的不同的基础字体的轮廓对应,但是点不对应的情况,需要人工进行调整。
发明内容
本发明提供一种字体格式的转换方法及设备,能够在字体格式转换后,使同一个字符的不同的基础字体的轮廓对应,对应轮廓的点对应的,不需要人工进行调整。
第一方面,本发明提供一种字体格式的转换方法,包括:
获取PostScript字体格式中待转换字符在不同基础字体中的字符编码;
若所述待转换字符在不同基础字体中的字符编码相同,则获取所述待转换字符在不同基础字体中的轮廓数量,以及对应轮廓中的点数量;
若所述待转换字符在不同基础字体中的轮廓数量相同,且对应轮廓中的点数量相同,则分别提取所述待转换字符在不同基础字体中的各轮廓对应的轮廓曲线,其中,所述轮廓曲线包括三次贝塞尔曲线;
将所述三次贝塞尔曲线根据预设拟合误差分别进行降阶处理,得到二次贝塞尔曲线,并获取所述二次贝塞尔曲线中的最大曲线条数;
对所述二次贝塞尔曲线分别进行如下处理:判断目标二次贝塞尔曲线的曲线条数是否等于所述最大曲线条数,若否,则调整拟合误差,并根据调整后的拟合误差重新对目标三次贝塞尔曲线进行降阶处理,得到新的目标二次贝塞尔曲线,并继续执行步骤判断目标二次贝塞尔曲线的曲线条数是否等于所述最大曲线条数;其中,所述目标二次贝塞尔曲线为所述二次贝塞尔曲线中的任一个,目标三次贝塞尔曲线为所述目标二次贝塞尔曲线降阶前对应的三次贝塞尔曲线;
根据所述二次贝塞尔曲线生成对应的TrueType字体格式。
一种可能的实现方式中,所述根据调整后的拟合误差重新对目标三次贝塞尔曲线进行降阶处理,得到新的目标二次贝塞尔曲线,并继续执行步骤判断目标二次贝塞尔曲线的曲线条数是否等于所述最大曲线条数,包括:
判断调整后的拟合误差是否小于或等于预设阈值;
若否,则根据调整后的拟合误差重新对目标三次贝塞尔曲线进行降阶处理,得到新的目标二次贝塞尔曲线,并继续执行步骤判断目标二次贝塞尔曲线的曲线条数是否等于所述最大曲线条数;
若是,则将所述目标三次贝塞尔曲线分割成所述最大曲线条数。
一种可能的实现方式中,所述将所述目标三次贝塞尔曲线分割成所述最大曲线条数,包括:
获取所述最大曲线条数对应的最大二次贝塞尔曲线中各曲线的长度;
确定各曲线的长度与所述最大二次贝塞尔曲线总长度的比值;
根据所述比值将所述目标三次贝塞尔曲线分割成所述最大曲线条数。
一种可能的实现方式中,所述轮廓曲线还包括直线;
所述根据所述二次贝塞尔曲线生成对应的TrueType字体格式,包括:
根据所述比值将所述直线分割成所述最大曲线条数;
根据所述二次贝塞尔曲线和分割后的直线生成对应的TrueType字体格式。
一种可能的实现方式中,还包括:
若所述待转换字符在不同基础字体中的字符编码不相同,则生成第一错误提示信息。
一种可能的实现方式中,还包括:
若所述待转换字符在不同基础字体中的轮廓数量不相同,和/或对应轮廓中的点数量不相同,则生成第二错误提示信息。
一种可能的实现方式中,所述分别提取所述待转换字符在不同基础字体中的各轮廓对应的轮廓曲线,包括:
根据待转换字符在不同基础字体中的轮廓存储顺序分别提取待转换字符在不同基础字体中的轮廓;
根据各轮廓对应的曲线的存储顺序分别提取各轮廓对应的曲线。
第二方面,本发明提供一种字体格式的转换装置,包括:
第一获取模块,用于获取PostScript字体格式中待转换字符在不同基础字体中的字符编码;
第二获取模块,用于若所述待转换字符在不同基础字体中的字符编码相同,则获取所述待转换字符在不同基础字体中的轮廓数量,以及对应轮廓中的点数量;
提取模块,用于若所述待转换字符在不同基础字体中的轮廓数量相同,且对应轮廓中的点数量相同,则分别提取所述待转换字符在不同基础字体中各轮廓对应的曲线,其中,所述曲线包括三次贝塞尔曲线;
降阶模块,用于将各轮廓对应的三次贝塞尔曲线根据预设拟合误差分别进行降阶处理,得到二次贝塞尔曲线,并获取所述二次贝塞尔曲线中的最大曲线条数;
判断模块,用于对所述二次贝塞尔曲线分别进行如下处理:判断目标二次贝塞尔曲线的曲线条数是否等于所述最大曲线条数,若否,则调整拟合误差,并根据调整后的拟合误差重新对所述目标二次贝塞尔曲线降阶前对应的目标三次贝塞尔曲线进行降阶处理,得到新的目标二次贝塞尔曲线,并继续执行步骤判断目标二次贝塞尔曲线的曲线条数是否等于所述最大曲线条数;其中,所述目标二次贝塞尔曲线为所述二次贝塞尔曲线中的任一个;
生成模块,用于将所述二次贝塞尔曲线生成对应的TrueType字体格式。
第三方面,本发明提供一种字体格式的转换设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如本发明第一方面任一项所述的字体格式的转换方法。
第四方面,本发明提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如本发明第一方面任一项所述的字体格式的转换方法。
本发明实施例提供的字体格式的转换方法及设备,该方法通过获取PostScript字体格式中待转换字符在不同基础字体中的字符编码,若所述待转换字符在不同基础字体中的字符编码相同,则获取所述待转换字符在不同基础字体中的轮廓数量,以及对应轮廓中的点数量,若所述待转换字符在不同基础字体中的轮廓数量相同,且对应轮廓中的点数量相同,则分别提取所述待转换字符在不同基础字体中的各轮廓对应的轮廓曲线,其中,所述轮廓曲线包括三次贝塞尔曲线,对三次贝塞尔曲线进行降阶处理,将三次贝塞尔曲线均降阶为具有最大曲线条数的二次贝塞尔曲线,并根据二次贝塞尔曲线生成对应的TrueType字体格式,能够在字体格式转换后,使同一个字符的不同的基础字体的轮廓对应,对应轮廓的点对应的,不需要人工进行调整。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的字体格式的转换方法的流程图一;
图2为本发明实施例提供的基础字体的结构示意图一;
图3为本发明实施例提供的基础字体的结构示意图二;
图4为本发明实施例提供的字体格式的转换方法的流程图二;
图5为本发明实施例提供的字体格式的转换方法的流程图三;
图6为本发明实施例提供的字体格式的转换装置的结构示意;
图7为本发明实施例提供的字体格式的转换设备的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1为本发明实施例提供的字体格式的转换方法的流程图一,如图1所示,本实施例的方法,可以包括:
步骤S101,获取PostScript字体格式中待转换字符在不同基础字体中的字符编码。
在本发明实施例中,字体用于描述字符所具有的外形。待转换字符可以有多种不同的基础字体,将任意两款基础字体进行插值即可以得到新的字体。例如,待转换字符具有粗字体和细字体两款基础字体。每个基础字体均具有唯一的字符编码。
步骤S102,若所述待转换字符在不同基础字体中的字符编码相同,则获取所述待转换字符在不同基础字体中的轮廓数量,以及对应轮廓中的点数量。
在本发明实施例中,若不同基础字体的字符编码相同,则表明不同基础字体为同一字符的字体。各基础字体的轮廓数量即各基础字体的笔画数量,各个轮廓均用曲线描述,轮廓中的点数量即描述轮廓的曲线的端点的数量。例如,如图2所示,对于“美”字的某一基础字体,轮廓数量为9个,编号0至8,每一个轮廓具有不同的点数量,例如,对于其中编号为0的轮廓,点数量为4个。
步骤S103,若所述待转换字符在不同基础字体中的轮廓数量相同,且对应轮廓中的点数量相同,则分别提取所述待转换字符在不同基础字体中的各轮廓对应的轮廓曲线,其中,所述轮廓曲线包括三次贝塞尔曲线。
在本发明实施例中,只有待转换字符在不同基础字体中的轮廓数量相同,且对应轮廓中的点数量相同,才能将待转换字符由PostScript字体格式转换为TrueType字体格式。例如,如图3所示,对于“美”字的粗字体和细字体两款基础字体,轮廓数量均为9个,编号0至8,对于其中编号为0的轮廓,点数量均为4个,即两款基础字体中,编号为0的轮廓中的点数量对应,对于其中编号为8的轮廓,粗字体中的点数量为4个,细字体中的点数量为6个,即两款基础字体中,编号为8的轮廓中的点数量不相同。
各轮廓由一条或多条轮廓曲线组成,在PostScript字体格式中,轮廓曲线可以用三次贝塞尔曲线描述。
步骤S104,将所述三次贝塞尔曲线根据预设拟合误差分别进行降阶处理,得到二次贝塞尔曲线,并获取所述二次贝塞尔曲线中的最大曲线条数。
在本发明实施例中,对曲线进行降阶处理是指对于给定的一条几何曲线,用一条或多条低阶的同类型曲线逼近该曲线,并使误差保持在预设范围内。三次贝塞尔曲线降阶算法包括但不限于基于几何信息的离散化方法和基于基转换的代数方法。一条三次贝塞尔曲线降阶成二次贝塞尔曲线后,得到的二次贝塞尔曲线的条数为1条或多条,降阶后的二次贝塞尔曲线的条数由原三次贝塞尔曲线的曲率和拟合误差决定。
每一条三次贝塞尔曲线根据预设拟合误差分别进行降阶处理后,均得到一条或多条二次贝塞尔曲线,将曲线条数最多的二次贝塞尔曲线对应的曲线条数作为最大曲线条数。例如,分别对编号1、2和3的三条三次贝塞尔曲线进行降阶处理,编号为1的三次贝塞尔曲线降阶处理后得到1条二次贝塞尔曲线,编号为2的三次贝塞尔曲线降阶处理后得到3条二次贝塞尔曲线,编号为3的三次贝塞尔曲线降阶处理后得到1条二次贝塞尔曲线,则最大曲线条数为3条。
步骤S105,对所述二次贝塞尔曲线分别进行如下处理:判断目标二次贝塞尔曲线的曲线条数是否等于所述最大曲线条数,若否,则调整拟合误差,并根据调整后的拟合误差重新对目标三次贝塞尔曲线进行降阶处理,得到新的目标二次贝塞尔曲线,并继续执行步骤判断目标二次贝塞尔曲线的曲线条数是否等于所述最大曲线条数;其中,所述目标二次贝塞尔曲线为所述二次贝塞尔曲线中的任一个,目标三次贝塞尔曲线为所述目标二次贝塞尔曲线降阶前对应的三次贝塞尔曲线。
在本发明实施例中,由于降阶后的二次贝塞尔曲线的条数由原三次贝塞尔曲线的曲率和拟合误差决定,通过调整拟合误差,使所有的三次贝塞尔曲线降阶后得到的二次贝塞尔曲线的曲线条数均为最大曲线条数。可以将上一次拟合误差与预设误差阈值的差值作为调整后的拟合误差,预设误差阈值可以由用户设定。例如,预设误差阈值为0.1,上一次拟合误差为0.3,则调整后的拟合误差为0.2。也可以通过二分法调整拟合误差,例如,上一次拟合误差为0.3,则调整后拟合误差为0.15。具体的调整拟合误差的方式本发明不做具体限定。
步骤S106,根据所述二次贝塞尔曲线生成对应的TrueType字体格式。
在本发明实施例中,待转换字符的不同基础字体的三次贝塞尔曲线降阶为二次贝塞尔曲线后,根据降阶后的二次贝塞尔曲线生成对应的TrueType字体格式。二次贝塞尔曲线生成TrueType字体格式的方法属于本领域常用的方法,不作为本发明实施例的改进,本发明实施例不再赘述。
本发明实施例通过获取PostScript字体格式中待转换字符在不同基础字体中的字符编码,若所述待转换字符在不同基础字体中的字符编码相同,则获取所述待转换字符在不同基础字体中的轮廓数量,以及对应轮廓中的点数量,若所述待转换字符在不同基础字体中的轮廓数量相同,且对应轮廓中的点数量相同,则分别提取所述待转换字符在不同基础字体中的各轮廓对应的轮廓曲线,其中,所述轮廓曲线包括三次贝塞尔曲线,对三次贝塞尔曲线进行降阶处理,将三次贝塞尔曲线均降阶为具有最大曲线条数的二次贝塞尔曲线,并根据二次贝塞尔曲线生成对应的TrueType字体格式,在字体格式转换后,能够使同一个字符的不同的基础字体的轮廓对应,对应轮廓的点对应的,不需要人工进行调整。
图4为本发明实施例提供的字体格式的转换方法的流程图二,在上述图1所示实施例的基础上,本实施例的方法详细描述步骤S105中步骤判断目标二次贝塞尔曲线的曲线条数是否等于所述最大曲线条数,若否,则调整拟合误差,并根据调整后的拟合误差重新对目标三次贝塞尔曲线进行降阶处理,得到新的目标二次贝塞尔曲线,并继续执行步骤判断目标二次贝塞尔曲线的曲线条数是否等于所述最大曲线条数的一种可能的实现方式,如图4所示,本实施例的方法可以包括:
步骤S401,判断目标二次贝塞尔曲线的曲线条数是否等于所述最大曲线条数;若是,则流程结束,若否,则执行步骤S402。
步骤S402,调整拟合误差。
步骤S403,判断调整后的拟合误差是否小于或等于预设阈值;若否,则执行步骤S404,若是,则执行步骤S405。
步骤S404,根据调整后的拟合误差重新对目标三次贝塞尔曲线进行降阶处理,得到新的目标二次贝塞尔曲线,并继续执行步骤S401。
步骤S405,将所述目标三次贝塞尔曲线分割成所述最大曲线条数。
在本发明实施例中,若将拟合误差调整到小于或等于预设阈值后,目标三次贝塞尔曲线根据调整后的拟合误差进行降阶处理后,得到的新的目标二次贝塞尔曲线的曲线条数依然小于最大曲线条数,则说明该目标三次贝塞尔曲线的曲率较小,不能通过调整拟合误差的方法将该目标三次贝塞尔曲线降阶为具有最大曲线条数的二次贝塞尔曲线,此时,需要对目标三次贝塞尔曲线进行分割处理,使分割后的目标三次贝塞尔曲线的条数为最大曲线条数。例如,最大曲线条数为3条,则将目标三次贝塞尔曲线分割成3条。
图5为本发明实施例提供的字体格式的转换方法的流程图三,在上述图4所示实施例的基础上,本发明实施例详细描述步骤S405的一种可能的实现方式。如图5所示,本实施例的方法可以包括:
步骤S501,获取所述最大曲线条数对应的最大二次贝塞尔曲线中各曲线的长度。
步骤S502,确定各曲线的长度与所述最大二次贝塞尔曲线总长度的比值。
步骤S503,根据所述比值将所述目标三次贝塞尔曲线分割成所述最大曲线条数。
在本发明实施例中,将三次贝塞尔曲线根据预设拟合误差分别进行降阶处理后,得到二次贝塞尔曲线,在得到的二次贝塞尔曲线中,具有最大曲线条数的二次贝塞尔曲线为最大二次贝塞尔曲线。若具有最大曲线条数的二次贝塞尔曲线有多条,则从其中任选一条二次贝塞尔曲线作为最大二次贝塞尔曲线,或者,用户指定其中一条二次贝塞尔曲线作为最大二次贝塞尔曲线。根据最大三次贝塞尔曲线,获取各曲线的长度及最大三次贝塞尔曲线的总长度,并确定各曲线的长度总长度的比值,根据该比值对目标三次贝塞尔曲线进行分割处理。
例如,最大二次贝塞尔曲线由3条曲线组成,3条曲线的长度分别为1厘米、2厘米和3厘米,最大二次贝塞尔曲线的总长度为6厘米,3条曲线的长度与最大二次贝塞尔曲线的总长度的比值分别为1/6、1/3和1/2,则在对目标三次贝塞尔曲线进行分割时,将目标三次贝塞尔曲线分割成3条曲线,各条曲线的长度与目标三次贝塞尔曲线总长度的比值分别为1/6、1/3和1/2。
作为本发明的一个实施例,所述轮廓曲线还包括直线;
在上述图5所示实施例的基础上,步骤S106的一种可能的实现方式为:
根据所述比值将所述直线分割成所述最大曲线条数;
根据所述二次贝塞尔曲线和分割后的直线生成对应的TrueType字体格式。
在本发明实施例中,轮廓曲线还可以用直线描述,直线本身是一阶曲线,降阶前后曲线条数不变,并且还是直线。按照图5所示的分割目标三次贝塞尔曲线的方法分割该直线。
作为本发明的一个实施例,在上述图1所示实施例的基础上,本发明实施例还可以包括:
若所述待转换字符在不同基础字体中的字符编码不相同,则生成第一错误提示信息。
在本发明实施例中,若待转换字符在不同基础字体中的字符编码不相同,则不对该待转换字符进行字体格式转换,生成第一错误提示信息,并将第一错误提示信息发送至用户终端。其中,第一错误提示信息用于指示字符编码不相同。
作为本发明的一个实施例,在上述图1所示实施例的基础上,本发明实施例还可以包括:
若所述待转换字符在不同基础字体中的轮廓数量不相同,和/或对应轮廓中的点数量不相同,则生成第二错误提示信息。
在本发明实施例中,若待转换字符在不同基础字体中的轮廓数量不相同,和/或对应轮廓中的点数量不相同,则不对该待转换字符进行字体格式转换,生成第二错误提示信息,并将第二错误提示信息发送至用户终端。其中,第二错误提示信息用于指示廓数量不相同,和/或对应轮廓中的点数量不相同。
作为本发明的一个实施例,在上述图1所示实施例的基础上,步骤S103中分别提取所述待转换字符在不同基础字体中的各轮廓对应的轮廓曲线,包括:
根据待转换字符在不同基础字体中的轮廓存储顺序分别提取待转换字符在不同基础字体中的轮廓;
根据各轮廓对应的曲线的存储顺序分别提取各轮廓对应的曲线。
在本发明实施例中,轮廓由一条或多条曲线描述,其中,这里的曲线包括三次贝塞尔曲线和/或直线。在提取轮廓曲线时,首先按照轮廓存储顺序提取轮廓,再按照各轮廓对应的曲线的存储顺序提取对应的曲线。
图6为本发明实施例提供的字体格式的转换装置的结构示意图,如图6所示,本实施例的字体格式的转换装置600,可以包括:第一获取模块601、第二获取模块602、提取模块603、降阶模块604、判断模块605和生成模块606,各模块的具体功能如下:
第一获取模块601,用于获取PostScript字体格式中待转换字符在不同基础字体中的字符编码。
第二获取模块602,用于若所述待转换字符在不同基础字体中的字符编码相同,则获取所述待转换字符在不同基础字体中的轮廓数量,以及对应轮廓中的点数量。
提取模块603,用于若所述待转换字符在不同基础字体中的轮廓数量相同,且对应轮廓中的点数量相同,则分别提取所述待转换字符在不同基础字体中各轮廓对应的曲线,其中,所述曲线包括三次贝塞尔曲线。
降阶模块604,用于将各轮廓对应的三次贝塞尔曲线根据预设拟合误差分别进行降阶处理,得到二次贝塞尔曲线,并获取所述二次贝塞尔曲线中的最大曲线条数。
判断模块605,用于对所述二次贝塞尔曲线分别进行如下处理:判断目标二次贝塞尔曲线的曲线条数是否等于所述最大曲线条数,若否,则调整拟合误差,并根据调整后的拟合误差重新对所述目标二次贝塞尔曲线降阶前对应的目标三次贝塞尔曲线进行降阶处理,得到新的目标二次贝塞尔曲线,并继续执行步骤判断目标二次贝塞尔曲线的曲线条数是否等于所述最大曲线条数;其中,所述目标二次贝塞尔曲线为所述二次贝塞尔曲线中的任一个。
生成模块606,用于将所述二次贝塞尔曲线生成对应的TrueType字体格式。
作为本发明的一个实施例,判断模块605具体用于判断调整后的拟合误差是否小于或等于预设阈值;
若否,则根据调整后的拟合误差重新对目标三次贝塞尔曲线进行降阶处理,得到新的目标二次贝塞尔曲线,并继续执行步骤判断目标二次贝塞尔曲线的曲线条数是否等于所述最大曲线条数;
若是,则将所述目标三次贝塞尔曲线分割成所述最大曲线条数。
作为本发明的一个实施例,判断模块605执行步骤将所述目标三次贝塞尔曲线分割成所述最大曲线条数,包括:
获取所述最大曲线条数对应的最大二次贝塞尔曲线中各曲线的长度;
确定各曲线的长度与所述最大二次贝塞尔曲线总长度的比值;
根据所述比值将所述目标三次贝塞尔曲线分割成所述最大曲线条数。
作为本发明的一个实施例,所述轮廓曲线还包括直线;
生成模块606,具体用于根据所述比值将所述直线分割成所述最大曲线条数;
根据所述二次贝塞尔曲线和分割后的直线生成对应的TrueType字体格式。
第二获取模块602,还用于若所述待转换字符在不同基础字体中的字符编码不相同,则生成第一错误提示信息。
作为本发明的一个实施例,提取模块603,还用于若所述待转换字符在不同基础字体中的轮廓数量不相同,和/或对应轮廓中的点数量不相同,则生成第二错误提示信息。
作为本发明的一个实施例,提取模块603执行步骤分别提取所述待转换字符在不同基础字体中的各轮廓对应的轮廓曲线,包括:
根据待转换字符在不同基础字体中的轮廓存储顺序分别提取待转换字符在不同基础字体中的轮廓;
根据各轮廓对应的曲线的存储顺序分别提取各轮廓对应的曲线。
本实施例的装置,可用于执行如图1和图4至图5所示的方法实施例,其实现原理和技术效果类似,此处不再赘述。
图7为本发明实施例提供的字体格式的转换设备的硬件结构示意图。如图7所示,本实施例提供的字体格式的转换设备700包括:至少一个处理器701和存储器702。该字体格式的转换设备700还包括通信部件703。其中,处理器701、存储器702以及通信部件703通过总线704连接。
在具体实现过程中,至少一个处理器701执行所述存储器702存储的计算机执行指令,使得至少一个处理器701执行上述任一方法实施例中的字体格式的转换方法。通信部件703用于与终端设备和/或服务器进行通讯。
处理器701的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
在上述的图7所示的实施例中,应理解,处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现上述任一方法实施例中的字体格式的转换方法。
上述的计算机可读存储介质,可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,简称:ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于设备中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种字体格式的转换方法,其特征在于,包括:
获取PostScript字体格式中待转换字符在不同基础字体中的字符编码;
若所述待转换字符在不同基础字体中的字符编码相同,则获取所述待转换字符在不同基础字体中的轮廓数量,以及对应轮廓中的点数量;
若所述待转换字符在不同基础字体中的轮廓数量相同,且对应轮廓中的点数量相同,则分别提取所述待转换字符在不同基础字体中的各轮廓对应的轮廓曲线,其中,所述轮廓曲线包括三次贝塞尔曲线;
将所述三次贝塞尔曲线根据预设拟合误差分别进行降阶处理,得到二次贝塞尔曲线,并获取所述二次贝塞尔曲线中的最大曲线条数;
对所述二次贝塞尔曲线分别进行如下处理:判断目标二次贝塞尔曲线的曲线条数是否等于所述最大曲线条数,若否,则调整拟合误差,并根据调整后的拟合误差重新对目标三次贝塞尔曲线进行降阶处理,得到新的目标二次贝塞尔曲线,并继续执行步骤判断目标二次贝塞尔曲线的曲线条数是否等于所述最大曲线条数;其中,所述目标二次贝塞尔曲线为所述二次贝塞尔曲线中的任一个,目标三次贝塞尔曲线为所述目标二次贝塞尔曲线降阶前对应的三次贝塞尔曲线;
根据所述二次贝塞尔曲线生成对应的TrueType字体格式。
2.根据权利要求1所述的方法,其特征在于,所述根据调整后的拟合误差重新对目标三次贝塞尔曲线进行降阶处理,得到新的目标二次贝塞尔曲线,并继续执行步骤判断目标二次贝塞尔曲线的曲线条数是否等于所述最大曲线条数,包括:
判断调整后的拟合误差是否小于或等于预设阈值;
若否,则根据调整后的拟合误差重新对目标三次贝塞尔曲线进行降阶处理,得到新的目标二次贝塞尔曲线,并继续执行步骤判断目标二次贝塞尔曲线的曲线条数是否等于所述最大曲线条数;
若是,则将所述目标三次贝塞尔曲线分割成所述最大曲线条数。
3.根据权利要求2所述的方法,其特征在于,所述将所述目标三次贝塞尔曲线分割成所述最大曲线条数,包括:
获取所述最大曲线条数对应的最大二次贝塞尔曲线中各曲线的长度;
确定各曲线的长度与所述最大二次贝塞尔曲线总长度的比值;
根据所述比值将所述目标三次贝塞尔曲线分割成所述最大曲线条数。
4.根据权利要求3所述的方法,其特征在于,所述轮廓曲线还包括直线;
所述根据所述二次贝塞尔曲线生成对应的TrueType字体格式,包括:
根据所述比值将所述直线分割成所述最大曲线条数;
根据所述二次贝塞尔曲线和分割后的直线生成对应的TrueType字体格式。
5.根据权利要求1所述的方法,其特征在于,还包括:
若所述待转换字符在不同基础字体中的字符编码不相同,则生成第一错误提示信息。
6.根据权利要求1所述的方法,其特征在于,还包括:
若所述待转换字符在不同基础字体中的轮廓数量不相同,和/或对应轮廓中的点数量不相同,则生成第二错误提示信息。
7.根据权利要求1所述的方法,其特征在于,所述分别提取所述待转换字符在不同基础字体中的各轮廓对应的轮廓曲线,包括:
根据待转换字符在不同基础字体中的轮廓存储顺序分别提取待转换字符在不同基础字体中的轮廓;
根据各轮廓对应的曲线的存储顺序分别提取各轮廓对应的曲线。
8.一种字体格式的转换装置,其特征在于,包括:
第一获取模块,用于获取PostScript字体格式中待转换字符在不同基础字体中的字符编码;
第二获取模块,用于若所述待转换字符在不同基础字体中的字符编码相同,则获取所述待转换字符在不同基础字体中的轮廓数量,以及对应轮廓中的点数量;
提取模块,用于若所述待转换字符在不同基础字体中的轮廓数量相同,且对应轮廓中的点数量相同,则分别提取所述待转换字符在不同基础字体中各轮廓对应的曲线,其中,所述曲线包括三次贝塞尔曲线;
降阶模块,用于将各轮廓对应的三次贝塞尔曲线根据预设拟合误差分别进行降阶处理,得到二次贝塞尔曲线,并获取所述二次贝塞尔曲线中的最大曲线条数;
判断模块,用于对所述二次贝塞尔曲线分别进行如下处理:判断目标二次贝塞尔曲线的曲线条数是否等于所述最大曲线条数,若否,则调整拟合误差,并根据调整后的拟合误差重新对所述目标二次贝塞尔曲线降阶前对应的目标三次贝塞尔曲线进行降阶处理,得到新的目标二次贝塞尔曲线,并继续执行步骤判断目标二次贝塞尔曲线的曲线条数是否等于所述最大曲线条数;其中,所述目标二次贝塞尔曲线为所述二次贝塞尔曲线中的任一个;
生成模块,用于将所述二次贝塞尔曲线生成对应的TrueType字体格式。
9.一种字体格式的转换设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至7任一项所述的字体格式的转换方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至7任一项所述的字体格式的转换方法。
CN201910486752.6A 2019-06-05 2019-06-05 字体格式的转换方法及设备 Active CN110196964B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910486752.6A CN110196964B (zh) 2019-06-05 2019-06-05 字体格式的转换方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910486752.6A CN110196964B (zh) 2019-06-05 2019-06-05 字体格式的转换方法及设备

Publications (2)

Publication Number Publication Date
CN110196964A true CN110196964A (zh) 2019-09-03
CN110196964B CN110196964B (zh) 2020-12-29

Family

ID=67754011

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910486752.6A Active CN110196964B (zh) 2019-06-05 2019-06-05 字体格式的转换方法及设备

Country Status (1)

Country Link
CN (1) CN110196964B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111159998A (zh) * 2019-11-28 2020-05-15 稿定(厦门)科技有限公司 字体轮廓的层次结构分析方法及系统
CN112085816A (zh) * 2020-09-14 2020-12-15 北京乐学帮网络技术有限公司 一种字形曲线生成方法及装置
CN112085816B (zh) * 2020-09-14 2024-06-07 北京乐学帮网络技术有限公司 一种字形曲线生成方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1154169A (zh) * 1994-05-27 1997-07-09 碧特斯特雷姆有限公司 创建并使用可移植字体的设备与方法
US6760028B1 (en) * 2000-07-21 2004-07-06 Microsoft Corporation Methods and systems for hinting fonts
EP1630745A2 (en) * 2004-08-27 2006-03-01 Microsoft Corporation Rendering of outline fonts
CN101764945A (zh) * 2008-11-04 2010-06-30 新奥特(北京)视频技术有限公司 一种基于贝塞尔曲线封闭轮廓的字幕渲染方法
CN101996160A (zh) * 2009-08-10 2011-03-30 北大方正集团有限公司 一种字体数据的处理方法及系统
CN104424184A (zh) * 2013-08-19 2015-03-18 北大方正集团有限公司 生成字形字库的方法和系统
CN109657203A (zh) * 2017-10-12 2019-04-19 北大方正集团有限公司 字库字面大小调整的方法、系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1154169A (zh) * 1994-05-27 1997-07-09 碧特斯特雷姆有限公司 创建并使用可移植字体的设备与方法
US6760028B1 (en) * 2000-07-21 2004-07-06 Microsoft Corporation Methods and systems for hinting fonts
EP1630745A2 (en) * 2004-08-27 2006-03-01 Microsoft Corporation Rendering of outline fonts
CN101764945A (zh) * 2008-11-04 2010-06-30 新奥特(北京)视频技术有限公司 一种基于贝塞尔曲线封闭轮廓的字幕渲染方法
CN101996160A (zh) * 2009-08-10 2011-03-30 北大方正集团有限公司 一种字体数据的处理方法及系统
CN104424184A (zh) * 2013-08-19 2015-03-18 北大方正集团有限公司 生成字形字库的方法和系统
CN109657203A (zh) * 2017-10-12 2019-04-19 北大方正集团有限公司 字库字面大小调整的方法、系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
M.A. WATKINS: "Degree reduction of Bézier curves", 《COMPUTER-AIDED DESIGN》 *
侯晓辉,等: "Bézier曲线的缩减", 《计算机辅助设计与图形学学报》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111159998A (zh) * 2019-11-28 2020-05-15 稿定(厦门)科技有限公司 字体轮廓的层次结构分析方法及系统
CN111159998B (zh) * 2019-11-28 2022-09-06 稿定(厦门)科技有限公司 字体轮廓的层次结构分析方法及系统
CN112085816A (zh) * 2020-09-14 2020-12-15 北京乐学帮网络技术有限公司 一种字形曲线生成方法及装置
CN112085816B (zh) * 2020-09-14 2024-06-07 北京乐学帮网络技术有限公司 一种字形曲线生成方法及装置

Also Published As

Publication number Publication date
CN110196964B (zh) 2020-12-29

Similar Documents

Publication Publication Date Title
US6760028B1 (en) Methods and systems for hinting fonts
CN111260586A (zh) 扭曲文档图像的矫正方法和装置
CN109146879A (zh) 一种检测骨龄的方法及装置
WO2008036771A2 (en) Rendering and encoding glyphs
CN106197440A (zh) 基于角度约束的道路数据压缩方法
CN110196964A (zh) 字体格式的转换方法及设备
CN110637306A (zh) 基于先前的简化图执行的条件性图执行
CN108469263A (zh) 一种基于曲率进行形点优化的方法及系统
WO2019205384A1 (zh) 电子装置、基于机器学习的股票择时方法及存储介质
US11842140B2 (en) Constructing a path for character glyphs
CN109492102A (zh) 用户数据处理方法、装置、设备及可读存储介质
CN112819157B (zh) 神经网络训练的方法及装置、智能行驶控制的方法及装置
CN107610210B (zh) 骨骼动画系统优化方法、装置及骨骼动画系统
CN104850820B (zh) 一种脸部识别方法及装置
CN111209751B (zh) 一种中文分词方法、装置及存储介质
CN108198213B (zh) 一种标记管状结构的方法及装置、管状结构的处理终端
CN108122123A (zh) 一种扩展潜在用户的方法及装置
CN114722806A (zh) 文本处理方法、装置及设备
CN109918373A (zh) 数据存储方法、装置、服务器和存储介质
CN112817526A (zh) 一种数据存储方法、装置及介质
CN106504250A (zh) 图像块标识匹配方法和远端服务器
CN108572925B (zh) 一种step文件等效的二进制数据存储方法
CN103840837B (zh) 压缩和解压缩数据的方法和装置
CN107870817B (zh) 一种多维参数的展示方法、客户端及服务器
CN111325032A (zh) 一种5g+智能银行机构名称的规范化方法及装置

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230616

Address after: 3007, Hengqin international financial center building, No. 58, Huajin street, Hengqin new area, Zhuhai, Guangdong 519031

Patentee after: New founder holdings development Co.,Ltd.

Patentee after: BEIJING FOUNDER ELECTRONICS Co.,Ltd.

Address before: 100871, Beijing, Haidian District, Cheng Fu Road, No. 298, Zhongguancun Fangzheng building, 9 floor

Patentee before: PEKING UNIVERSITY FOUNDER GROUP Co.,Ltd.

Patentee before: BEIJING FOUNDER ELECTRONICS Co.,Ltd.