跳转到主要内容

Freetype Python绑定

项目描述

FreeType (高级Python API)

FreeType Python为FreeType库提供了绑定。仅绑定高级API。

文档可在以下位置找到:http://freetype-py.readthedocs.org/en/latest/

安装

从PyPI安装,推荐pip install freetype-py。这将安装带捆绑FreeType二进制的库,因此您可以在Windows、macOS和Linux上使用(所有32位和64位x86架构都支持)。

请注意:如果您指定了pip的–no-binary参数,或使用我们没有预先编译二进制的不同架构,则默认使用外部FreeType库。在调用pip之前,指定环境变量FREETYPEPY_BUNDLE_FT=1以自行编译二进制文件。

从源代码编译FreeType的安装

如果您不想或无法使用预构建的二进制文件,请自行构建FreeType:export FREETYPEPY_BUNDLE_FT=yesplease && pip install .。这将下载并编译FreeType,并按setup-build-freetype.py中指定的方式添加Harfbuzz支持。将环境变量PYTHON_ARCH设置为32或64以显式设置架构,默认为宿主机的架构。在macOS上,我们将始终构建32位和64位Intel通用二进制文件。

  • Windows:您需要CMake和一个C和C++编译器,例如Visual Code Community 2017版本,带桌面C++工作负载。

  • macOS:您需要CMake和XCode工具(完整的IDE不是必需的)。

  • Linux:您需要CMake、gcc和g++。在64位机器上构建32位库时,您需要gcc-multilib和g++-multilib(Debian)或glibc-devel.i686和libstdc++-devel.i686(Fedora)。

使用外部FreeType库(默认)安装

仅安装纯Python库,并在运行时让它找到系统上已安装的FreeType。

Mac用户

Freetype应该已经安装到您的系统上。如果没有,请使用homebrew安装,或者编译它并将库二进制文件放在‘/usr/local/lib’。

Linux用户

Freetype应该已经安装到您的系统上。如果没有,请从您的包管理器安装相关包,或者从源代码编译并将库二进制文件放在‘/usr/local/lib’。

Windows用户

没有官方的Freetype二进制发布版本,但他们提供了一些预编译Windows DLLs的链接。请参阅FreeType下载页面以获取链接。您也可以自行从源代码编译FreeType库。

如果您在Windows上使用32位Python版本freetype-py,则需要32位Freetype二进制文件。64位Python版本也是如此。

由于Windows查找dll文件的方式,请确保生成的文件名为‘freetype.dll’(而不是像Freetype245.dll这样的文件)。Windows期望库在$PATH环境变量中列出的目录之一中。由于不建议将dll放在Windows系统文件夹中,您可以采取以下方法之一来解决这个问题

  • 将库放在您选择的文件夹中,并编辑$PATH用户环境变量

  • 将库放在您选择的文件夹中,并编辑$PATH系统环境变量

  • 为开发目的,将库放在应用程序的工作目录中

  • 将库放在$PATH中列出的现有目录之一中

要获取$PATH环境变量中所有目录的完整列表(用户和系统),请打开命令提示符并输入

echo %PATH%

使用示例

import freetype
face = freetype.Face("Vera.ttf")
face.set_char_size( 48*64 )
face.load_char('S')
bitmap = face.glyph.bitmap
print(bitmap.buffer)

屏幕截图

下面的屏幕截图来自wordle.py示例。这里没有使用任何巧妙的技巧,只是 brute force。

https://raw.githubusercontent.com/rougier/freetype-py/master/doc/_static/wordle.png

下面的屏幕截图来自glyph-vector.py和glyph-vector-2.py示例,展示了如何访问字形轮廓信息并使用它来绘制字形。渲染(使用贝塞尔曲线)使用matplotlib完成。

https://raw.githubusercontent.com/rougier/freetype-py/master/doc/_static/S.png https://raw.githubusercontent.com/rougier/freetype-py/master/doc/_static/G.png

下面的屏幕截图来自glyph-color.py,展示了如何绘制和组合字形轮廓与常规字形。

https://raw.githubusercontent.com/rougier/freetype-py/master/doc/_static/outline.png

以下截图来自hello-world.py示例,展示了如何在位图(已放大以显示抗锯齿效果)中绘制文本。

https://raw.githubusercontent.com/rougier/freetype-py/master/doc/_static/hello-world.png

以下截图来自agg-trick.py示例,展示了Maxim Shemarev在Texts Rasterization Exposures中提出想法的实现。

https://raw.githubusercontent.com/rougier/freetype-py/master/doc/_static/agg-trick.png

冻结应用程序

Freetype为PyInstaller实现了一个钩子,以帮助简化冻结过程(例如,确保包含freetype DLL)。此钩子需要PyInstaller版本4以上。

项目详情


下载文件

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

源分发

freetype-py-2.5.1.zip (851.7 kB 查看哈希)

上传时间

构建分发

freetype_py-2.5.1-py3-none-win_amd64.whl (814.6 kB 查看哈希)

上传时间 Python 3 Windows x86-64

freetype_py-2.5.1-py3-none-musllinux_1_1_x86_64.whl (1.1 MB 查看哈希)

上传时间 Python 3 musllinux: musl 1.1+ x86-64

freetype_py-2.5.1-py3-none-musllinux_1_1_aarch64.whl (1.1 MB 查看哈希)

上传时间 Python 3 musllinux: musl 1.1+ ARM64

freetype_py-2.5.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB 查看哈希)

上传时间 Python 3 manylinux: glibc 2.17+ ARM64

freetype_py-2.5.1-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (1.0 MB 查看哈希)

上传时间 Python 3 manylinux: glibc 2.12+ x86-64 manylinux: glibc 2.5+ x86-64

freetype_py-2.5.1-py3-none-macosx_10_9_universal2.whl (1.7 MB 查看哈希值)

上传时间: Python 3 macOS 10.9+ universal2 (ARM64, x86-64)

由以下机构支持