Freetype Python绑定
项目描述
FreeType (高级Python API)
FreeType Python为FreeType库提供了绑定。仅绑定高级API。
安装
从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。
下面的屏幕截图来自glyph-vector.py和glyph-vector-2.py示例,展示了如何访问字形轮廓信息并使用它来绘制字形。渲染(使用贝塞尔曲线)使用matplotlib完成。
下面的屏幕截图来自glyph-color.py,展示了如何绘制和组合字形轮廓与常规字形。
以下截图来自hello-world.py示例,展示了如何在位图(已放大以显示抗锯齿效果)中绘制文本。
以下截图来自agg-trick.py示例,展示了Maxim Shemarev在Texts Rasterization Exposures中提出想法的实现。
冻结应用程序
Freetype为PyInstaller实现了一个钩子,以帮助简化冻结过程(例如,确保包含freetype DLL)。此钩子需要PyInstaller版本4以上。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分发
构建分发
freetype-py-2.5.1.zip 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | cfe2686a174d0dd3d71a9d8ee9bf6a2c23f5872385cf8ce9f24af83d076e2fbd |
|
MD5 | ac44c802ce82b123721b53104b6a8932 |
|
BLAKE2b-256 | d09c61ba17f846b922c2d6d101cc886b0e8fb597c109cedfcb39b8c5d2304b54 |
freetype_py-2.5.1-py3-none-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0b7f8e0342779f65ca13ef8bc103938366fecade23e6bb37cb671c2b8ad7f124 |
|
MD5 | e8f3eb7063960cc92c733dcdf9548337 |
|
BLAKE2b-256 | 936ebd7fbfacca077bc6f34f1a1109800a2c41ab50f4704d3a0507ba41009915 |
freetype_py-2.5.1-py3-none-musllinux_1_1_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3c1aefc4f0d5b7425f014daccc5fdc7c6f914fb7d6a695cc684f1c09cd8c1660 |
|
MD5 | 497df819873fe2b5e8aee8ae1fc731b5 |
|
BLAKE2b-256 | 2a1b161d3a6244b8a820aef188e4397a750d4a8196316809576d015f26594296 |
freetype_py-2.5.1-py3-none-musllinux_1_1_aarch64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | cd3bfdbb7e1a84818cfbc8025fca3096f4f2afcd5d4641184bf0a3a2e6f97bbf |
|
MD5 | f71ba43ed224a105e20212520e504558 |
|
BLAKE2b-256 | 936ffcc1789e42b8c6617c3112196d68e87bfe7d957d80812d3c24d639782dcb |
freetype_py-2.5.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5d2f6b3d68496797da23204b3b9c4e77e67559c80390fc0dc8b3f454ae1cd819 |
|
MD5 | a4f4eb173a071d86b4ca2d170bb36fd9 |
|
BLAKE2b-256 | a293280ad06dc944e40789b0a641492321a2792db82edda485369cbc59d14366 |
freetype_py-2.5.1-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 289b443547e03a4f85302e3ac91376838e0d11636050166662a4f75e3087ed0b |
|
MD5 | d33c3ee0b9c9c912eeefbff58e8b554c |
|
BLAKE2b-256 | b636853cad240ec63e21a37a512ee19c896b655ce1772d803a3dd80fccfe63fe |
freetype_py-2.5.1-py3-none-macosx_10_9_universal2.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d01ded2557694f06aa0413f3400c0c0b2b5ebcaabeef7aaf3d756be44f51e90b |
|
MD5 | 743796b402fa68bbe1e085e6de45962f |
|
BLAKE2b-256 | 38a8258dd138ebe60c79cd8cfaa6d021599208a33f0175a5e29b01f60c9ab2c7 |