Image Surfaces
Image Surfaces — Rendering to memory buffers
|
|
Description
Image surfaces provide the ability to render to memory buffers
either allocated by cairo or by the calling code. The supported
image formats are those defined in cairo_format_t.
Details
enum cairo_format_t
typedef enum _cairo_format {
CAIRO_FORMAT_ARGB32,
CAIRO_FORMAT_RGB24,
CAIRO_FORMAT_A8,
CAIRO_FORMAT_A1
} cairo_format_t;
cairo_format_t is used to identify the memory format of
image data.
CAIRO_FORMAT_ARGB32 |
each pixel is a 32-bit quantity, with
alpha in the upper 8 bits, then red, then green, then blue.
The 32-bit quantities are stored native-endian. Pre-multiplied
alpha is used. (That is, 50% transparent red is 0x80800000,
not 0x80ff0000.)
|
CAIRO_FORMAT_RGB24 |
each pixel is a 32-bit quantity, with
the upper 8 bits unused. Red, Green, and Blue are stored
in the remaining 24 bits in that order.
|
CAIRO_FORMAT_A8 |
each pixel is a 8-bit quantity holding
an alpha value.
|
CAIRO_FORMAT_A1 |
each pixel is a 1-bit quantity holding
an alpha value. Pixels are packed together into 32-bit
quantities. The ordering of the bits matches the
endianess of the platform. On a big-endian machine, the
first pixel is in the uppermost bit, on a little-endian
machine the first pixel is in the least-significant bit.
|