自定义字体
如何在请求时使用自定义字体
imgrender 内置了可免费商用的字体,推荐优先使用内置字体,渲染速度更快。
下面将介绍如何在请求时使用自定义字体。
加载自定义网络字体
如果你的设计需要特殊的字体文件,可以通过请求体中的 fonts 数组字段来动态注册自定义字体。
在 fonts 数组中,你可以传入以下结构的对象:
| 字段名 | 类型 | 必填 | 描述 |
|---|---|---|---|
familyName | string | 是 | 字体族名称。只支持大小写英文字母、数字。你需要在 content 中通过 fontFamily 严格匹配并引用该名称。 |
fontUrls | string[] | 是 | 字体文件的网络下载地址列表(URL)。支持 TTF、OTF、WOFF 等常见格式。 |
注意事项:
familyName 属性会覆盖字体文件元数据中的字体名,但 weight、style 等属性仍是直接使用字体文件元数据。因此每个对象对应一个字体族,其 fontUrls 内指定的字体文件应该都属于该字体族,并且保持 weight、style 唯一。
示例:
{
"content": ,
fonts: [
{
"fontFamily": "MyFont1",
"fontUrls": [
"https://example.com/MyFont1/Regular.ttf",
"https://example.com/MyFont1/Medium.ttf",
"https://example.com/MyFont1/SemiBold.ttf",
...
]
},
{
"fontFamily": "MyFont2",
"fontUrls": [
"https://example.com/MyFont2/Regular.ttf",
"https://example.com/MyFont2/Medium.ttf",
"https://example.com/MyFont2/SemiBold.ttf",
...
]
}
]
}字体按需加载机制
仅当你在 content 中实际通过 fontFamily 引用了某款自定义字体的 familyName
时,imgrender 才会去发起网络请求下载并加载该字体。未被引用的字体不会被加载。
查看如何使用字体
为了保证字体加载性能,请满足以下要求
-
字体文件尽可能小,最大不能超过 10 MB。超过 10 MB 会加载失败。
-
保证链接可公网访问。若托管你字体的服务开启了鉴权措施(如私有访问的对象存储服务),则提供的字体 URL 一定要包含鉴权信息。
-
链接公网访问速度足够快。