Synopsis#include <gdk-pixbuf/gdk-pixbuf.h> enum GdkPixbufError; #define GDK_PIXBUF_ERROR enum GdkColorspace; enum GdkPixbufAlphaMode; GdkPixbuf; GdkColorspace gdk_pixbuf_get_colorspace (const GdkPixbuf *pixbuf); int gdk_pixbuf_get_n_channels (const GdkPixbuf *pixbuf); gboolean gdk_pixbuf_get_has_alpha (const GdkPixbuf *pixbuf); int gdk_pixbuf_get_bits_per_sample (const GdkPixbuf *pixbuf); guchar* gdk_pixbuf_get_pixels (const GdkPixbuf *pixbuf); int gdk_pixbuf_get_width (const GdkPixbuf *pixbuf); int gdk_pixbuf_get_height (const GdkPixbuf *pixbuf); int gdk_pixbuf_get_rowstride (const GdkPixbuf *pixbuf); const gchar* gdk_pixbuf_get_option (GdkPixbuf *pixbuf, const gchar *key); Properties"bits-per-sample" gint : Read / Write / Construct Only "colorspace" GdkColorspace : Read / Write / Construct Only "has-alpha" gboolean : Read / Write / Construct Only "height" gint : Read / Write / Construct Only "n-channels" gint : Read / Write / Construct Only "pixels" gpointer : Read / Write / Construct Only "rowstride" gint : Read / Write / Construct Only "width" gint : Read / Write / Construct Only DescriptionThe GdkPixbuf structure contains information that describes an image in memory.
Image data in a pixbuf is stored in memory in uncompressed,
packed format. Rows in the image are stored top to bottom, and
in each row pixels are stored from left to right. There may be
padding at the end of a row. The "rowstride" value of a pixbuf,
as returned by Example 1. put_pixel() example The following code illustrates a simple put_pixel() function for RGB pixbufs with 8 bits per channel with an alpha channel. It is not included in the gdk-pixbuf library for performance reasons; rather than making several function calls for each pixel, your own code can take shortcuts. static void put_pixel (GdkPixbuf *pixbuf, int x, int y, guchar red, guchar green, guchar blue, guchar alpha) { int width, height, rowstride, n_channels; guchar *pixels, *p; n_channels = gdk_pixbuf_get_n_channels (pixbuf); g_assert (gdk_pixbuf_get_colorspace (pixbuf) == GDK_COLORSPACE_RGB); g_assert (gdk_pixbuf_get_bits_per_sample (pixbuf) == 8); g_assert (gdk_pixbuf_get_has_alpha (pixbuf)); g_assert (n_channels == 4); width = gdk_pixbuf_get_width (pixbuf); height = gdk_pixbuf_get_height (pixbuf); g_assert (x >= 0 && x < width); g_assert (y >= 0 && y < height); rowstride = gdk_pixbuf_get_rowstride (pixbuf); pixels = gdk_pixbuf_get_pixels (pixbuf); p = pixels + y * rowstride + x * n_channels; p[0] = red; p[1] = green; p[2] = blue; p[3] = alpha; } This function will not work for pixbufs with images that are other than 8 bits per sample or channel, but it will work for most of the pixbufs that GTK+ uses. Note
If you are doing Detailsenum GdkPixbufErrortypedef enum { /* image data hosed */ GDK_PIXBUF_ERROR_CORRUPT_IMAGE, /* no mem to load image */ GDK_PIXBUF_ERROR_INSUFFICIENT_MEMORY, /* bad option passed to save routine */ GDK_PIXBUF_ERROR_BAD_OPTION, /* unsupported image type (sort of an ENOSYS) */ GDK_PIXBUF_ERROR_UNKNOWN_TYPE, /* unsupported operation (load, save) for image type */ GDK_PIXBUF_ERROR_UNSUPPORTED_OPERATION, GDK_PIXBUF_ERROR_FAILED } GdkPixbufError; An error code in the GDK_PIXBUF_ERROR domain. Many gdk-pixbuf operations can cause errors in this domain, or in the G_FILE_ERROR domain.
GDK_PIXBUF_ERROR#define GDK_PIXBUF_ERROR gdk_pixbuf_error_quark () Error domain used for pixbuf operations. Indicates that the error code will be in the GdkPixbufError enumeration. See GError for information on error domains and error codes. enum GdkColorspacetypedef enum { GDK_COLORSPACE_RGB } GdkColorspace; This enumeration defines the color spaces that are supported by the gdk-pixbuf library. Currently only RGB is supported. enum GdkPixbufAlphaModetypedef enum { GDK_PIXBUF_ALPHA_BILEVEL, GDK_PIXBUF_ALPHA_FULL } GdkPixbufAlphaMode;
These values can be passed to
GdkPixbuftypedef struct _GdkPixbuf GdkPixbuf; This is the main structure in the gdk-pixbuf library. It is used to represent images. It contains information about the image's pixel data, its color space, bits per sample, width and height, and the rowstride (the number of bytes between the start of one row and the start of the next). gdk_pixbuf_get_colorspace ()GdkColorspace gdk_pixbuf_get_colorspace (const GdkPixbuf *pixbuf); Queries the color space of a pixbuf.
gdk_pixbuf_get_n_channels ()int gdk_pixbuf_get_n_channels (const GdkPixbuf *pixbuf); Queries the number of channels of a pixbuf.
gdk_pixbuf_get_has_alpha ()gboolean gdk_pixbuf_get_has_alpha (const GdkPixbuf *pixbuf); Queries whether a pixbuf has an alpha channel (opacity information).
gdk_pixbuf_get_bits_per_sample ()int gdk_pixbuf_get_bits_per_sample (const GdkPixbuf *pixbuf); Queries the number of bits per color sample in a pixbuf.
gdk_pixbuf_get_pixels ()guchar* gdk_pixbuf_get_pixels (const GdkPixbuf *pixbuf); Queries a pointer to the pixel data of a pixbuf.
gdk_pixbuf_get_width ()int gdk_pixbuf_get_width (const GdkPixbuf *pixbuf); Queries the width of a pixbuf.
gdk_pixbuf_get_height ()int gdk_pixbuf_get_height (const GdkPixbuf *pixbuf); Queries the height of a pixbuf.
gdk_pixbuf_get_rowstride ()int gdk_pixbuf_get_rowstride (const GdkPixbuf *pixbuf); Queries the rowstride of a pixbuf, which is the number of bytes between the start of a row and the start of the next row.
gdk_pixbuf_get_option ()const gchar* gdk_pixbuf_get_option (GdkPixbuf *pixbuf, const gchar *key);
Looks up For instance, the ANI loader provides "Title" and "Artist" options. The ICO, XBM, and XPM loaders provide "x_hot" and "y_hot" hot-spot options for cursor definitions. The PNG loader provides the tEXt ancillary chunk key/value pairs as options. Since 2.12, the TIFF and JPEG loaders return an "orientation" option string that corresponds to the embedded TIFF/Exif orientation tag (if present).
Property DetailsThe
|