python-pillow / python-pillow/Pillow
SVG font support
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 13.8k
- Forks
- 2.5k
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 89
Description
FreeType 2.12 (#6169) adds support for color fonts in SVG format.
From https://github.com/freetype/freetype/commit/21d0fa374200aecc6605daf034a47167ea82ed6f:
FreeType now handles OT-SVG fonts, to be controlled with
FT_CONFIG_OPTION_SVGconfiguration macro. By default, it can
only load the 'SVG ' table of an OpenType font. However, by using
thesvg-hooksproperty of the new 'ot-svg' module it is possible
to register an external SVG rendering engine. The FreeType demo
programs have been set up to use 'librsvg' as the rendering
library.
It would be nice to add support for this to Pillow.
librsvg appears to be LGPL-2.1 licensed, so a wrapper similar to that used for FriBiDi/Raqm may be needed.
This is closely related to loading SVG images in Pillow, it may be possible to add support for both at once: #3509
For reference, the freetype demo callbacks are here: https://gitlab.freedesktop.org/freetype/freetype-demos/-/blob/master/src/rsvg-port.c
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the FreeType demo callbacks in rsvg-port.c and the related Pillow issue #3509. Use those references to understand the required SVG-font rendering and licensing integration, then verify that Pillow supports loading and rendering SVG fonts.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, python
- Domain
- computer-graphics
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 28/100