imgrender

自定义字体

如何在请求时使用自定义字体

imgrender 内置了可免费商用的字体,推荐优先使用内置字体,渲染速度更快。

下面将介绍如何在请求时使用自定义字体。

加载自定义网络字体

如果你的设计需要特殊的字体文件,可以通过请求体中的 fonts 数组字段来动态注册自定义字体。

fonts 数组中,你可以传入以下结构的对象:

字段名类型必填描述
familyNamestring字体族名称。只支持大小写英文字母、数字。你需要在 content 中通过 fontFamily 严格匹配并引用该名称。
fontUrlsstring[]字体文件的网络下载地址列表(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 才会去发起网络请求下载并加载该字体。未被引用的字体不会被加载。

查看如何使用字体

为了保证字体加载性能,请满足以下要求

  1. 字体文件尽可能小,最大不能超过 10 MB。超过 10 MB 会加载失败。

  2. 保证链接可公网访问。若托管你字体的服务开启了鉴权措施(如私有访问的对象存储服务),则提供的字体 URL 一定要包含鉴权信息。

  3. 链接公网访问速度足够快。

On this page