cairo2
OCaml interface to Cairo
This is an OCaml binding for the
Cairo library, a 2D graphics library
with support for multiple output devices.
You can read the API of
Cairo,
Cairo_gtk,
and
Cairo_pango
online.
Prerequisites
You need the development files of Cairo (see the
conf-cairo
package)
and the OCaml packagelablgtk2
(in the OPAM packagelablgtk
).
Compilation & Installation
The easier way to install this library — once the prerequisites are set
up — is to use opam:
opam install cairo2
If you would like to compile from the sources, install Dune
opam install dune
and do:
dune build @install
or just make
. You can then install it with:
dune install
Examples
You can read a version of the
Cairo tutorial using
this module. The code of this tutorial is available in theexamples/
directory. To compile it, just do
dune build @examples
All the examples below are available (with some comments) by clicking
on images in the tutorial.
Basic examples
stroke.ml shows how to draw (stroke) a simple
rectangle on a PNG surface.stroke.ml shows how to fill a simple
rectangle on a PNG surface.showtext.ml illustrates how to select a font
and draw some text on a PNG surface.paint.ml shows how to paint the current source
everywhere within the current clip region.mask.ml shows how to apply a radial transparency
mask on top of a linear gradient.setsourcergba.ml produces
setsourcegradient.ml shows how to use
radial and linear patterns. It generates:path_close.ml shows how to draw a closed
path. It produces the PNG:textextents.ml displays graphically the various
dimensions one can request about text. It generates the PNG:text_extents.ml exemplifies drawing
consecutive UTF-8 strings in a PDF file. Some helping lines are
also added to show the text extents.tips_ellipse.ml shows the action of
dilation on the line width and how to properly draw ellipses.
It generates the PNG:tips_letter.ml illustrates the wrong way
of centering characters based on their individual extents:Instead, one should combine them with the font extents as shown in
tips_font.ml to have:
Examples generating the images of the tutorial
diagram.ml draw the images of the section
Cairo's Drawing Model:draw.ml generates the various images in
Drawing with Cairo, namely:
sha256=366273303b351e2bcd781d44a01c961729f6451f9917d75cd038465370481822
sha512=49dbd0a4dcb51f9847c9adc7c45125114ea0a83d3179c1785b28221a1d289a8d6a1db34a926386709844fed69ce12a7bf271bd76505580425b2a11794febe375
>= "1.3.2"
< "0.6.1" | >= "0.6.3"
< "0.6.1" | >= "0.6.3"
!= "0.2.1"
= "1.0.1" | >= "2.0.0"
>= "2.7.2"
>= "3.0.beta4"
>= "0.9"