跳转到主要内容

基于Python的OpenType COLRv1字体渲染器,具有多个后端。

项目描述

Python package

BlackRenderer

BlackRenderer是Python基于的OpenType COLR字体渲染器,具有多个后端。它支持新的COLRv1格式以及旧的COLR格式。它完全支持变量字体,包括变量COLRv1数据。

Big Smiley Face Icon

功能

  • 这是一个名为"blackrenderer"的Python库
  • 这是一个名为"blackrenderer"的命令行工具
  • 渲染单个字符或文本字符串
  • 支持多个图形后端
    • Skia
    • Cairo
    • CoreGraphics (macOS)
    • SVG
    • 轮廓提取器
    • 边界框计算器
  • 支持多种输出格式
    • .png
    • .pdf
    • .svg
  • 它使用fonttools解析COLRv1数据
  • "blackrenderer"工具是一个类似于"hb-view"的命令行应用程序,具有可切换的后端。它使用HarfBuzz进行形状

工具使用示例

BlackRenderer附带一个类似于hb-view的命令行工具,可以按以下方式使用

$ blackrenderer font.ttf ABC🤩 output.png --font-size=100

库使用示例

有一个用于渲染文本字符串的高级函数

from blackrenderer.render import renderText

renderText("myfont.ttf", "ABC", "output.png")  # or "output.svg"

完整的renderText()签名是

def renderText(
    fontPath,
    textString,
    outputPath,
    *,
    fontSize=250,
    margin=20,
    features=None,
    variations=None,
    backendName=None,
)

为了有更多的控制,库公开了两个主要部分:BlackRendererFont类和一组后端类。每个后端提供一个Canvas类。在绘制字符时,您将Canvas实例传递给BlackRendererFont实例。大多数后端还有一个Surface类,这是一个通用便利类,用于为特定框生成位图(或SVG文档)的画布。以下是一个最小示例

from blackrenderer.font import BlackRendererFont
from blackrenderer.backends import getSurfaceClass

brFont = BlackRendererFont("my_colr_font.ttf")
glyphName = "A"
boundingBox = brFont.getGlyphBounds(glyphName)
surfaceClass = getSurfaceClass("skia")
surface = surfaceClass()
with surface.canvas(boundingBox)
    brFont.drawGlyph(glyphName, canvas)
surface.saveImage("image.png")

Canvas对象支持以下转换方法

  • canvas.translate(dx, dy)
  • canvas.scale(sx, sy)
  • canvas.transform((xx, yx, xy, yy, dx, dy))

使用上下文管理器进行保存/恢复

with canvas.savedState():
    canvas.scale(0.3)
    ...draw stuff...

安装

如果您已设置Python 3环境,那么您需要做的就是

$ pip install blackrenderer

安装以贡献/设置环境

已安装 Python 3.7 或更高版本。

打开终端。

进入项目仓库目录。

创建虚拟环境

  • $ python3 -m venv venv --prompt=black-renderer

激活 venv

  • $ source venv/bin/activate

(您需要为每个新的终端会话激活虚拟环境。)

升级 pip

  • $ pip install --upgrade pip

安装需求

  • $ pip install -r requirements.txt
  • $ pip install -r requirements-dev.txt

以可编辑模式安装 blackrenderer

  • $ pip install -e .

运行测试

  • $ pytest

维护者:如何发布

要创建一个版本,创建一个带有注释的 git 标签,标签格式为:v1.2.3,其中 1、2 和 3 分别代表主版本号、次版本号和补丁版本号。您可以通过添加 "aN" 或 "bN" 或 "rc" 来标记 alpha、beta 或 "发布候选" 版本。例如:v1.2.3、v1.2.3b2、v1.2.3a4、v1.2.3rc。

注释标签的消息应包含发布说明。

然后使用 "git push --follow-tags" 来触发发布机器人。示例会话

  • $ git tag -a v1.2.3 -m "v1.2.3 -- fixed issue #12345"
  • $ git push --follow-tags

此过程将创建 GitHub 版本,并将包上传到 PyPI。

项目详情


下载文件

下载适用于您平台文件的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

blackrenderer-0.6.0.tar.gz (4.2 MB 查看哈希值)

上传时间

构建分布

blackrenderer-0.6.0-py3-none-any.whl (30.9 kB 查看哈希值)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面