https://github.com/pygobject/pycairo
Python bindings for cairo
https://github.com/pygobject/pycairo
cairo python
Last synced: 3 months ago
JSON representation
Python bindings for cairo
- Host: GitHub
- URL: https://github.com/pygobject/pycairo
- Owner: pygobject
- License: other
- Created: 2017-04-05T11:58:54.000Z (almost 9 years ago)
- Default Branch: main
- Last Pushed: 2024-02-11T21:44:26.000Z (almost 2 years ago)
- Last Synced: 2024-05-21T08:48:45.998Z (over 1 year ago)
- Topics: cairo, python
- Language: C
- Homepage: https://pycairo.readthedocs.io
- Size: 2.02 MB
- Stars: 599
- Watchers: 14
- Forks: 81
- Open Issues: 45
-
Metadata Files:
- Readme: README.rst
- License: COPYING
Awesome Lists containing this project
README
.. image:: https://raw.githubusercontent.com/pygobject/pycairo/main/docs/images/pycairo.svg
:align: center
:width: 370px
|
Pycairo is a Python module providing bindings for the `cairo graphics library
`__. It depends on **cairo >= 1.15.10** and works
with **Python 3.9+** and **PyPy3**. Pycairo, including this documentation, is
licensed under the `LGPL-2.1-only OR MPL-1.1 `__.
The Pycairo bindings are designed to match the cairo C API as closely as
possible, and to deviate only in cases which are clearly better implemented in
a more ‘Pythonic’ way.
.. code:: shell
pip install pycairo
Installing Pycairo requires cairo including its headers. For more info see
"`Getting Started
`__".
----
.. code:: python
import cairo
with cairo.SVGSurface("example.svg", 200, 200) as surface:
context = cairo.Context(surface)
x, y, x1, y1 = 0.1, 0.5, 0.4, 0.9
x2, y2, x3, y3 = 0.6, 0.1, 0.9, 0.5
context.scale(200, 200)
context.set_line_width(0.04)
context.move_to(x, y)
context.curve_to(x1, y1, x2, y2, x3, y3)
context.stroke()
context.set_source_rgba(1, 0.2, 0.2, 0.6)
context.set_line_width(0.02)
context.move_to(x, y)
context.line_to(x1, y1)
context.move_to(x2, y2)
context.line_to(x3, y3)
context.stroke()
.. image:: https://raw.githubusercontent.com/pygobject/pycairo/main/docs/images/example.svg
:width: 320px
:align: center
----
Features of the Pycairo bindings:
* Provides an object oriented interface to cairo.
* Queries the error status of objects and translates them to exceptions.
* Provides a C API that can be used by other Python extensions.
* Fully typed and documented API.
For more information visit https://pycairo.readthedocs.io