python如何在一个新的ttf文件中把字形添加到glyph表中
时间: 2024-04-30 08:24:09 浏览: 15
可以使用Python中的fontTools模块来完成这个任务。具体步骤如下:
1. 导入fontTools中的TTFont类和glyph类。
```python
from fontTools.ttLib import TTFont, newTable
from fontTools.ttLib.tables._g_l_y_f import Glyph
```
2. 创建一个新的TTFont对象。
```python
new_font = TTFont()
```
3. 创建一个新的glyph表。
```python
new_glyphs = newTable("glyf")
new_font["glyf"] = new_glyphs
```
4. 创建一个新的Glyph对象。
```python
new_glyph = Glyph()
```
5. 设置新的Glyph的属性,例如轮廓、宽度、左侧边缘等。
```python
new_glyph.width = 1000
new_glyph.leftSideBearing = 50
new_glyph.rightSideBearing = 50
new_glyph.numberOfContours = 1
new_glyph.endPtsOfContours = [0]
new_glyph.flags = [1, 17, 1]
new_glyph.xCoordinates = [150, 150, 850, 850]
new_glyph.yCoordinates = [0, 700, 700, 0]
```
6. 将新的Glyph添加到glyph表中。
```python
new_glyphs.glyphs["new_glyph_name"] = new_glyph
```
7. 将新的TTFont保存为ttf文件。
```python
new_font.save("new_font.ttf")
```
注意事项:
- 新的Glyph的名称必须是唯一的,否则将会覆盖原有的Glyph。
- 新的Glyph的宽度、左侧边缘、右侧边缘等属性需要根据具体情况设置。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)