[发明专利]字体生成方法、存储介质及电子设备有效
申请号: | 202310640884.6 | 申请日: | 2023-06-01 |
公开(公告)号: | CN116362202B | 公开(公告)日: | 2023-08-11 |
发明(设计)人: | 田辉;鲁国峰;郭玉刚;张志翔 | 申请(专利权)人: | 合肥高维数据技术有限公司 |
主分类号: | G06F40/109 | 分类号: | G06F40/109;G06F40/151;G06T11/60 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 230088 安徽省合肥市高新区*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 字体 生成 方法 存储 介质 电子设备 | ||
1.一种字体生成方法,其特征在于:包括如下步骤:
对ttf格式的字体文件进行解析得到字符的第一外形点集,第一外形点集由字形数据点和二次贝塞尔曲线控制点构成;
对第一外形点集进行偏移得到变形后字符的第二外形点集;
根据第二外形点集对相交的闭合区域进行合并得到第三外形点集;
将第三外形点集转换成svg_path数据,并在每个外形轮廓的开始和结束位置分别添加move和close信息;
对svg_path数据进行绘制后再进行ttf生成,得到变形后的ttf格式的字体文件;
所述的根据第二外形点集对相交的闭合区域进行合并得到第三外形点集包括:
计算任意两个闭合区域的交点;计算交点时,将二阶贝塞尔曲线等分成若干线段的组合;如果交点处于直线上,重新定义线段的起点和终点;如果交点处于二阶贝塞尔曲线上,删除原控制点,重新定义二阶贝塞尔曲线的起点和终点,并拟合计算出新的控制点;
若存在四个交点,则删除四点闭合区域,若存在两个交点,则删除延长线方向可相交区域;
根据删除后的区域得到第三外形点集。
2.如权利要求1所述的字体生成方法,其特征在于:所述的对ttf格式的字体文件进行解析得到字符的第一外形点集步骤包括:
根据字符的unicode编码生成该字符glyph对象;
调用glyph模块的foreground方法获取字符的第一外形点集;
第一外形点集包括多个外形轮廓,每个外形轮廓由多个点坐标以及点坐标对应的标识符构成,标识符为on的为数据点,标识符为off的为控制点。
3.如权利要求2所述的字体生成方法,其特征在于:所述的将第三外形点集转换成svg_path数据,并在每个外形轮廓的开始和结束位置分别添加move和close信息包括:
依次遍历第三外形点集的坐标;
若当前坐标为某个外形轮廓的首个坐标,则在Path中添加Move(to=(当前坐标));若当前坐标为某个外形轮廓的最后一个坐标,则在Path中添加Close(start=(当前坐标),end=(当前坐标));否则进入下一步;
若当前坐标对应的标识符为on,则在Path中添加Line(start=(当前坐标),end=(下一个坐标));若当前坐标对应的标识符为off,则在Path中添加QuadraticBezier(start=(上一个坐标),control=(当前坐标),end=(下一个坐标),smooth=False)。
4.如权利要求1所述的字体生成方法,其特征在于:所述的对svg_path数据进行绘制的步骤中:
利用glyph模块的glyphPen方法,根据字符的unicode编码生成pen对象;
再根据pen对象的moveTo、lineTo、qCurveTo、endPath方法对svg_path数据进行绘制。
5.如权利要求4所述的字体生成方法,其特征在于:所述的对svg_path数据进行绘制后再进行ttf生成的步骤中,是利用glyph模块里font对象的generate方法进行ttf生成的。
6.一种计算机可读存储介质,其特征在于:其上存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1-5中任一项所述的字体生成方法。
7.一种电子设备,其特征在于:包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-5中任一项所述的字体生成方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于合肥高维数据技术有限公司,未经合肥高维数据技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310640884.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种双有源桥型高频链逆变器及其控制方法
- 下一篇:泵外壳配件的焊接装置