Skip to main content

Freetype python bindings

Project description

FreeType (high-level Python API)

Freetype Python provides bindings for the FreeType library. Only the high-level API is bound.

Documentation available at: http://freetype-py.readthedocs.org/en/latest/

Installation

From PyPI, recommended: pip install freetype-py. This will install the library with a bundled FreeType binary, so you’re ready to go on Windows, macOS and Linux (all with 32 and 64 bit x86 architecture support).

Do note: if you specify the –no-binary paramater to pip, or use a different architecture for which we don’t pre-compile binaries, the package will default to using an external FreeType library. Specify the environment variable FREETYPEPY_BUNDLE_FT=1 before calling pip to compile a binary yourself.

Installation with compiling FreeType from source

If you don’t want to or can’t use the pre-built binaries, build FreeType yourself: export FREETYPEPY_BUNDLE_FT=yesplease && pip install .. This will download and compile FreeType with Harfbuzz support as specified in setup-build-freetype.py. Set the environment variable PYTHON_ARCH to 32 or 64 to explicitly set an architecture, default is whatever your host machine uses. On macOS, we will always build a universal 32 and 64 bit Intel binary.

  • Windows: You need CMake and a C and C++ compiler, e.g. the Visual Code Community 2017 distribution with the desktop C++ workload.

  • macOS: You need CMake and the XCode tools (full IDE not necessary)

  • Linux: You need CMake, gcc and g++. For building a 32 bit library on a 64 bit machine, you need gcc-multilib and g++-multilib (Debian) or glibc-devel.i686 and libstdc++-devel.i686 (Fedora).

Installation with an external FreeType library (the default)

Install just the pure Python library and let it find a system-wide installed FreeType at runtime.

Mac users

Freetype should be already installed on your system. If not, either install it using homebrew or compile it and place the library binary file in ‘/usr/local/lib’.

Linux users

Freetype should be already installed on your system. If not, either install relevant package from your package manager or compile from sources and place the library binary file in ‘/usr/local/lib’.

Window users

There are no official Freetype binary releases available, but they offer some links to precompiled Windows DLLs. Please see the FreeType Downloads page for links. You can also compile the FreeType library from source yourself.

If you are using freetype-py on Windows with a 32-Bit version of Python, you need the 32-Bit version of the Freetype binary. The same applies for a 64-Bit version of Python.

Because of the way Windows searches for dll files, make sure the resulting file is named ‘freetype.dll’ (and not something like Freetype245.dll). Windows expects the library in one of the directories listed in the $PATH environment variable. As it is not recommended to place the dll in a Windows system folder, you can choose one of the following ways to solve this:

  • Place library in a folder of your choice and edit the $PATH user environment variable

  • Place library in a folder of your choice and edit the $PATH system environment variable

  • For development purpose, place the library in the working directory of the application

  • Place the library in one of the existing directories listed in $PATH

To get a complete list of all the directories in the $PATH environment variable (user and system), open a command promt and type

echo %PATH%

Usage example

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

Screenshots

Screenshot below comes from the wordle.py example. No clever tricks here, just brute force.

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

Screenshots below comes from the glyph-vector.py and glyph-vectopr-2.py examples showing how to access a glyph outline information and use it to draw the glyph. Rendering (with Bézier curves) is done using 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

Screenshot below comes from the glyph-color.py showing how to draw and combine a glyph outline with the regular glyph.

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

The screenshot below comes from the hello-world.py example showing how to draw text in a bitmap (that has been zoomed in to show antialiasing).

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

The screenshot below comes from the agg-trick.py example showing an implementation of ideas from the Texts Rasterization Exposures by Maxim Shemarev.

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

freetype-py-2.1.0.tar.gz (594.2 kB view details)

Uploaded Source

Built Distributions

freetype_py-2.1.0-py2.py3-none-win_amd64.whl (666.2 kB view details)

Uploaded Python 2 Python 3 Windows x86-64

freetype_py-2.1.0-py2.py3-none-win32.whl (574.3 kB view details)

Uploaded Python 2 Python 3 Windows x86

freetype_py-2.1.0-py2.py3-none-manylinux1_x86_64.whl (883.6 kB view details)

Uploaded Python 2 Python 3

freetype_py-2.1.0-py2.py3-none-manylinux1_i686.whl (866.1 kB view details)

Uploaded Python 2 Python 3

freetype_py-2.1.0-py2.py3-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (1.6 MB view details)

Uploaded Python 2 Python 3 macOS 10.10+ intel macOS 10.10+ x86-64 macOS 10.6+ intel macOS 10.9+ intel macOS 10.9+ x86-64

freetype_py-2.1.0-py2.py3-none-any.whl (69.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file freetype-py-2.1.0.tar.gz.

File metadata

  • Download URL: freetype-py-2.1.0.tar.gz
  • Upload date:
  • Size: 594.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.5.6

File hashes

Hashes for freetype-py-2.1.0.tar.gz
Algorithm Hash digest
SHA256 d9145d4502be26b757c2e3209bc705c957885787edf6ce28661a7d559ffc466f
MD5 8d3f7b2dd10035181040ce628a352fc8
BLAKE2b-256 9b3ecd9c2a46e9cb8b70988df3e636db7525e752288aca610ec7289b925c42aa

See more details on using hashes here.

File details

Details for the file freetype_py-2.1.0-py2.py3-none-win_amd64.whl.

File metadata

  • Download URL: freetype_py-2.1.0-py2.py3-none-win_amd64.whl
  • Upload date:
  • Size: 666.2 kB
  • Tags: Python 2, Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.8

File hashes

Hashes for freetype_py-2.1.0-py2.py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 ba563cde965baac3813f070fa870a18c77832d8daab631ae25251eeffd449787
MD5 610b75ca665a60fabc03cf813734f5a3
BLAKE2b-256 ee147b221bb94d7196d37ee8aaa86e3edf3e4beb8fccad566d9b2e3818a56b32

See more details on using hashes here.

File details

Details for the file freetype_py-2.1.0-py2.py3-none-win32.whl.

File metadata

  • Download URL: freetype_py-2.1.0-py2.py3-none-win32.whl
  • Upload date:
  • Size: 574.3 kB
  • Tags: Python 2, Python 3, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.15

File hashes

Hashes for freetype_py-2.1.0-py2.py3-none-win32.whl
Algorithm Hash digest
SHA256 36fc383262d11bc7b2cd5add84e3c3bf6b6f8778ba2554a09147b33d980dd55d
MD5 b9ff6e3c77fb6bda4fcc5767c35d4640
BLAKE2b-256 68d4a1443a4c928cd4e6244621f3cb470ad1b7f7eab3c83d98f84ea576bc6023

See more details on using hashes here.

File details

Details for the file freetype_py-2.1.0-py2.py3-none-manylinux1_x86_64.whl.

File metadata

  • Download URL: freetype_py-2.1.0-py2.py3-none-manylinux1_x86_64.whl
  • Upload date:
  • Size: 883.6 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.5.6

File hashes

Hashes for freetype_py-2.1.0-py2.py3-none-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 ca7c4c9706c614b3b3233b6f49bfa2d527fb3c4b9528f11cc6b1dd06f9e68bf4
MD5 d3a57c7bf1dfec364920d0b9fe112f75
BLAKE2b-256 80712c2e56d484a90850ed4a3a963238aecb444dc75d8082c87848c518f9f0a3

See more details on using hashes here.

File details

Details for the file freetype_py-2.1.0-py2.py3-none-manylinux1_i686.whl.

File metadata

  • Download URL: freetype_py-2.1.0-py2.py3-none-manylinux1_i686.whl
  • Upload date:
  • Size: 866.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.5.6

File hashes

Hashes for freetype_py-2.1.0-py2.py3-none-manylinux1_i686.whl
Algorithm Hash digest
SHA256 e353f28adbeb4da2b9c285792a5e01c9013cc4f7181c02145d0eb22412b04dba
MD5 58d3be0e8206c6d9829af8ccdd97c5db
BLAKE2b-256 494e74993effd8b16a992e3bec29aadb6a30512cf3e2c2ce7304e61c90de616c

See more details on using hashes here.

File details

Details for the file freetype_py-2.1.0-py2.py3-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl.

File metadata

File hashes

Hashes for freetype_py-2.1.0-py2.py3-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
Algorithm Hash digest
SHA256 45c90ebc2a6d31613183da904b003f408dbf64251e45dcca5da036d774e8a0fb
MD5 8a67b313a84f7401da1b977bafb15dd9
BLAKE2b-256 0d75459d97629f89686ea7c02149e68f5296a913f2429bb031ba25bf84b1b52f

See more details on using hashes here.

File details

Details for the file freetype_py-2.1.0-py2.py3-none-any.whl.

File metadata

  • Download URL: freetype_py-2.1.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 69.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.5.6

File hashes

Hashes for freetype_py-2.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 75f4178c602a9830fd458c45ebb1953ddcba70bdae428f0cd355936ffb20ddcb
MD5 80fd5e1713c7ea6115362cb676d86bdc
BLAKE2b-256 2ae483468190cf35ed471dd9298d0ad3691faaafd3b554e34025b7845159a707

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page