#include <config.h>
#include "gdk-pixbuf.h"
#include "gdk-pixbuf-private.h"
+#include <stdlib.h>
+#include <string.h>
\f
* @bits_per_sample: Number of bits per sample.
* @width: Width of the image in pixels.
* @height: Height of the image in pixels.
- * @rowstride: Distance in bytes between rows.
+ * @rowstride: Distance in bytes between row starts.
* @destroy_fn: Function used to free the data when the pixbuf's reference count
- * drops to zero, or NULL if the data should not be freed.
+ * drops to zero, or %NULL if the data should not be freed.
* @destroy_fn_data: Closure data to pass to the destroy notification function.
*
* Creates a new #GdkPixbuf out of in-memory image data. Currently only RGB
* images with 8 bits per sample are supported.
*
- * Return value: A newly-created #GdkPixbuf structure with a reference count of
- * 1.
+ * Return value: A newly-created #GdkPixbuf structure with a reference count of 1.
**/
GdkPixbuf *
gdk_pixbuf_new_from_data (const guchar *data, GdkColorspace colorspace, gboolean has_alpha,
int bits_per_sample, int width, int height, int rowstride,
- GdkPixbufDestroyNotify destroy_fn, gpointer destroy_fn_data)
+ GdkPixbufDestroyNotify destroy_fn, gpointer destroy_fn_data)
{
GdkPixbuf *pixbuf;
g_return_val_if_fail (width > 0, NULL);
g_return_val_if_fail (height > 0, NULL);
- pixbuf = g_object_new (GDK_TYPE_PIXBUF, NULL);
+ pixbuf = g_object_new (GDK_TYPE_PIXBUF,
+ "colorspace", colorspace,
+ "n_channels", has_alpha ? 4 : 3,
+ "bits_per_sample", bits_per_sample,
+ "has_alpha", has_alpha ? TRUE : FALSE,
+ "width", width,
+ "height", height,
+ "rowstride", rowstride,
+ "pixels", data,
+ NULL);
- pixbuf->colorspace = colorspace;
- pixbuf->n_channels = has_alpha ? 4 : 3;
- pixbuf->bits_per_sample = bits_per_sample;
- pixbuf->has_alpha = has_alpha ? TRUE : FALSE;
- pixbuf->width = width;
- pixbuf->height = height;
- pixbuf->rowstride = rowstride;
- pixbuf->pixels = (guchar *) data;
pixbuf->destroy_fn = destroy_fn;
pixbuf->destroy_fn_data = destroy_fn_data;