Cairo is a portable 2D graphics library for drawing to PDF, PNG, SVG, X11, Windows, etc. Here is a minimal example (hello world) to create a PNG with text on a solid background written in pycairo (Cairo for Python).
import cairo # import the Python module # setup a place to draw surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 400, 200) ctx = cairo.Context (surface) # paint background ctx.set_source_rgb(0.22, 0.08, 0.69) # blue ctx.rectangle(0, 0, 400, 200) ctx.fill() # draw text ctx.select_font_face('Sans') ctx.set_font_size(60) # em-square height is 90 pixels ctx.move_to(10, 90) # move to point (x, y) = (10, 90) ctx.set_source_rgb(1.00, 0.83, 0.00) # yellow ctx.show_text('Hello World') # finish up ctx.stroke() # commit to surface surface.write_to_png('hello_world.png') # write to file
This code was tested with PyCairo 1.8, Cairo 1.10, Python 2.7, and Fedora 14, but it should work on a variety of systems.
For more, see Cairo samples.
There is one problem i’ve found. I can’t figure out what value should I use for text offset (y) when I making .move_to().
If I choose ctx.move_to(0, 0) – part of text will be cropped.
I think there are some evaluatable value for this offset.
Do you know what it is?
Thanks, Andrew. Just what I needed to get started!