Blame docs/reference/gdk-pixbuf/html/gdk-pixbuf-Image-Data-in-Memory.html

Packit a4058c
Packit a4058c
<html>
Packit a4058c
<head>
Packit a4058c
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Packit a4058c
<title>Image Data in Memory: GDK-PixBuf Reference Manual</title>
Packit a4058c
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
Packit a4058c
<link rel="home" href="index.html" title="GDK-PixBuf Reference Manual">
Packit a4058c
<link rel="up" href="rn01.html" title="API Reference">
Packit a4058c
<link rel="prev" href="gdk-pixbuf-File-saving.html" title="File saving">
Packit a4058c
<link rel="next" href="gdk-pixbuf-Inline-data.html" title="Inline data">
Packit a4058c
<meta name="generator" content="GTK-Doc V1.25.1 (XML mode)">
Packit a4058c
<link rel="stylesheet" href="style.css" type="text/css">
Packit a4058c
</head>
Packit a4058c
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
Packit a4058c
Packit a4058c
Packit a4058c
Top  | 
Packit a4058c
                  Description
Packit a4058c
Packit a4058c
Home
Packit a4058c
Up
Packit a4058c
Prev
Packit a4058c
Next
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c

Image Data in Memory

Packit a4058c

Image Data in Memory — Creating a pixbuf from image data that is already in memory.

Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c

Functions

Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
GdkPixbuf *
Packit a4058c
Packit a4058c
Packit a4058c
gdk_pixbuf_new ()
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
GdkPixbuf *
Packit a4058c
Packit a4058c
Packit a4058c
gdk_pixbuf_new_from_bytes ()
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
GdkPixbuf *
Packit a4058c
Packit a4058c
Packit a4058c
gdk_pixbuf_new_from_data ()
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
GdkPixbuf *
Packit a4058c
Packit a4058c
Packit a4058c
gdk_pixbuf_new_from_xpm_data ()
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
GdkPixbuf *
Packit a4058c
Packit a4058c
Packit a4058c
gdk_pixbuf_new_from_inline ()
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
GdkPixbuf *
Packit a4058c
Packit a4058c
Packit a4058c
gdk_pixbuf_new_subpixbuf ()
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
GdkPixbuf *
Packit a4058c
Packit a4058c
Packit a4058c
gdk_pixbuf_copy ()
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c

Includes

Packit a4058c
#include <gdk-pixbuf/gdk-pixbuf.h>
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c

Description

Packit a4058c

The most basic way to create a pixbuf is to wrap an existing pixel

Packit a4058c
buffer with a GdkPixbuf structure.  You can use the
Packit a4058c
gdk_pixbuf_new_from_data() function to do this You need to specify
Packit a4058c
the destroy notification function that will be called when the
Packit a4058c
data buffer needs to be freed; this will happen when a GdkPixbuf
Packit a4058c
is finalized by the reference counting functions If you have a
Packit a4058c
chunk of static data compiled into your application, you can pass
Packit a4058c
in NULL as the destroy notification function so that the data
Packit a4058c
will not be freed.

Packit a4058c

The gdk_pixbuf_new() function can be used as a convenience to

Packit a4058c
create a pixbuf with an empty buffer.  This is equivalent to
Packit a4058c
allocating a data buffer using malloc() and then wrapping it with
Packit a4058c
gdk_pixbuf_new_from_data(). The gdk_pixbuf_new() function will
Packit a4058c
compute an optimal rowstride so that rendering can be performed
Packit a4058c
with an efficient algorithm.

Packit a4058c

As a special case, you can use the gdk_pixbuf_new_from_xpm_data()

Packit a4058c
function to create a pixbuf from inline XPM image data.

Packit a4058c

You can also copy an existing pixbuf with the gdk_pixbuf_copy()

Packit a4058c
function.  This is not the same as just doing a g_object_ref()
Packit a4058c
on the old pixbuf; the copy function will actually duplicate the
Packit a4058c
pixel data in memory and create a new GdkPixbuf structure for it.

Packit a4058c
Packit a4058c
Packit a4058c

Functions

Packit a4058c
Packit a4058c

gdk_pixbuf_new ()

Packit a4058c
GdkPixbuf *
Packit a4058c
gdk_pixbuf_new (GdkColorspace colorspace,
Packit a4058c
                gboolean has_alpha,
Packit a4058c
                int bits_per_sample,
Packit a4058c
                int width,
Packit a4058c
                int height);
Packit a4058c

Creates a new GdkPixbuf structure and allocates a buffer for it. The

Packit a4058c
buffer has an optimal rowstride.  Note that the buffer is not cleared;
Packit a4058c
you will have to fill it completely yourself.

Packit a4058c
Packit a4058c

Parameters

Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c

colorspace

Packit a4058c

Color space for image

Packit a4058c
 
Packit a4058c
Packit a4058c
Packit a4058c

has_alpha

Packit a4058c

Whether the image should have transparency information

Packit a4058c
 
Packit a4058c
Packit a4058c
Packit a4058c

bits_per_sample

Packit a4058c

Number of bits per color sample

Packit a4058c
 
Packit a4058c
Packit a4058c
Packit a4058c

width

Packit a4058c

Width of image in pixels, must be > 0

Packit a4058c
 
Packit a4058c
Packit a4058c
Packit a4058c

height

Packit a4058c

Height of image in pixels, must be > 0

Packit a4058c
 
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c

Returns

Packit a4058c

A newly-created GdkPixbuf with a reference count of 1, or

Packit a4058c
NULL if not enough memory could be allocated for the image buffer.

Packit a4058c
Packit a4058c
Packit a4058c

Packit a4058c
Packit a4058c

gdk_pixbuf_new_from_bytes ()

Packit a4058c
GdkPixbuf *
Packit a4058c
gdk_pixbuf_new_from_bytes (GBytes *data,
Packit a4058c
                           GdkColorspace colorspace,
Packit a4058c
                           gboolean has_alpha,
Packit a4058c
                           int bits_per_sample,
Packit a4058c
                           int width,
Packit a4058c
                           int height,
Packit a4058c
                           int rowstride);
Packit a4058c

Creates a new GdkPixbuf out of in-memory readonly image data.

Packit a4058c
Currently only RGB images with 8 bits per sample are supported.
Packit a4058c
This is the GBytes variant of gdk_pixbuf_new_from_data().

Packit a4058c
Packit a4058c

Parameters

Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c

data

Packit a4058c

Image data in 8-bit/sample packed format inside a GBytes

Packit a4058c
 
Packit a4058c
Packit a4058c
Packit a4058c

colorspace

Packit a4058c

Colorspace for the image data

Packit a4058c
 
Packit a4058c
Packit a4058c
Packit a4058c

has_alpha

Packit a4058c

Whether the data has an opacity channel

Packit a4058c
 
Packit a4058c
Packit a4058c
Packit a4058c

bits_per_sample

Packit a4058c

Number of bits per sample

Packit a4058c
 
Packit a4058c
Packit a4058c
Packit a4058c

width

Packit a4058c

Width of the image in pixels, must be > 0

Packit a4058c
 
Packit a4058c
Packit a4058c
Packit a4058c

height

Packit a4058c

Height of the image in pixels, must be > 0

Packit a4058c
 
Packit a4058c
Packit a4058c
Packit a4058c

rowstride

Packit a4058c

Distance in bytes between row starts

Packit a4058c
 
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c

Returns

Packit a4058c

A newly-created GdkPixbuf structure with a reference count of 1.

Packit a4058c

[transfer full]

Packit a4058c
Packit a4058c

Since: 2.32

Packit a4058c
Packit a4058c

Packit a4058c
Packit a4058c

gdk_pixbuf_new_from_data ()

Packit a4058c
GdkPixbuf *
Packit a4058c
gdk_pixbuf_new_from_data (const guchar *data,
Packit a4058c
                          GdkColorspace colorspace,
Packit a4058c
                          gboolean has_alpha,
Packit a4058c
                          int bits_per_sample,
Packit a4058c
                          int width,
Packit a4058c
                          int height,
Packit a4058c
                          int rowstride,
Packit a4058c
                          GdkPixbufDestroyNotify destroy_fn,
Packit a4058c
                          gpointer destroy_fn_data);
Packit a4058c

Creates a new GdkPixbuf out of in-memory image data. Currently only RGB

Packit a4058c
images with 8 bits per sample are supported.

Packit a4058c

Since you are providing a pre-allocated pixel buffer, you must also

Packit a4058c
specify a way to free that data.  This is done with a function of
Packit a4058c
type GdkPixbufDestroyNotify.  When a pixbuf created with is
Packit a4058c
finalized, your destroy notification function will be called, and
Packit a4058c
it is its responsibility to free the pixel array.

Packit a4058c

See also gdk_pixbuf_new_from_bytes().

Packit a4058c
Packit a4058c

Parameters

Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c

data

Packit a4058c

Image data in 8-bit/sample packed format.

Packit a4058c
[array]
Packit a4058c
Packit a4058c
Packit a4058c

colorspace

Packit a4058c

Colorspace for the image data

Packit a4058c
 
Packit a4058c
Packit a4058c
Packit a4058c

has_alpha

Packit a4058c

Whether the data has an opacity channel

Packit a4058c
 
Packit a4058c
Packit a4058c
Packit a4058c

bits_per_sample

Packit a4058c

Number of bits per sample

Packit a4058c
 
Packit a4058c
Packit a4058c
Packit a4058c

width

Packit a4058c

Width of the image in pixels, must be > 0

Packit a4058c
 
Packit a4058c
Packit a4058c
Packit a4058c

height

Packit a4058c

Height of the image in pixels, must be > 0

Packit a4058c
 
Packit a4058c
Packit a4058c
Packit a4058c

rowstride

Packit a4058c

Distance in bytes between row starts

Packit a4058c
 
Packit a4058c
Packit a4058c
Packit a4058c

destroy_fn

Packit a4058c

Function used to free the data when the pixbuf's reference count

Packit a4058c
drops to zero, or NULL if the data should not be freed. 

Packit a4058c
[scope async][allow-none]
Packit a4058c
Packit a4058c
Packit a4058c

destroy_fn_data

Packit a4058c

Closure data to pass to the destroy notification function.

Packit a4058c
[closure]
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c

Returns

Packit a4058c

A newly-created GdkPixbuf structure with a reference count of 1.

Packit a4058c

[transfer full]

Packit a4058c
Packit a4058c
Packit a4058c

Packit a4058c
Packit a4058c

gdk_pixbuf_new_from_xpm_data ()

Packit a4058c
GdkPixbuf *
Packit a4058c
gdk_pixbuf_new_from_xpm_data (const char **data);
Packit a4058c

Creates a new pixbuf by parsing XPM data in memory. This data is commonly

Packit a4058c
the result of including an XPM file into a program's C source.

Packit a4058c
Packit a4058c

Parameters

Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c

data

Packit a4058c

Pointer to inline XPM data.

Packit a4058c
[array zero-terminated=1]
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c

Returns

Packit a4058c

A newly-created pixbuf with a reference count of 1.

Packit a4058c
Packit a4058c
Packit a4058c

Packit a4058c
Packit a4058c

gdk_pixbuf_new_from_inline ()

Packit a4058c
GdkPixbuf *
Packit a4058c
gdk_pixbuf_new_from_inline (gint data_length,
Packit a4058c
                            const guint8 *data,
Packit a4058c
                            gboolean copy_pixels,
Packit a4058c
                            GError **error);
Packit a4058c
Packit a4058c

gdk_pixbuf_new_from_inline has been deprecated since version 2.32 and should not be used in newly-written code.

Packit a4058c

Use GResource instead.

Packit a4058c
Packit a4058c

Create a GdkPixbuf from a flat representation that is suitable for

Packit a4058c
storing as inline data in a program. This is useful if you want to
Packit a4058c
ship a program with images, but don't want to depend on any
Packit a4058c
external files.

Packit a4058c

gdk-pixbuf ships with a program called gdk-pixbuf-csource,

Packit a4058c
which allows for conversion of GdkPixbufs into such a inline representation.
Packit a4058c
In almost all cases, you should pass the --raw option to
Packit a4058c
gdk-pixbuf-csource. A sample invocation would be:

Packit a4058c
Packit a4058c
  
Packit a4058c
    
Packit a4058c
      
Packit a4058c
        
1
Packit a4058c
        
gdk-pixbuf-csource --raw --name=myimage_inline myimage.png
Packit a4058c
      
Packit a4058c
    
Packit a4058c
  
Packit a4058c
Packit a4058c
Packit a4058c

Packit a4058c

For the typical case where the inline pixbuf is read-only static data,

Packit a4058c
you don't need to copy the pixel data unless you intend to write to
Packit a4058c
it, so you can pass FALSE for copy_pixels
Packit a4058c
.  (If you pass --rle to
Packit a4058c
gdk-pixbuf-csource, a copy will be made even if copy_pixels
Packit a4058c
 is FALSE,
Packit a4058c
so using this option is generally a bad idea.)

Packit a4058c

If you create a pixbuf from const inline data compiled into your

Packit a4058c
program, it's probably safe to ignore errors and disable length checks, 
Packit a4058c
since things will always succeed:

Packit a4058c
Packit a4058c
  
Packit a4058c
    
Packit a4058c
      
Packit a4058c
        
1
Packit a4058c
        
pixbuf = gdk_pixbuf_new_from_inline (-1, myimage_inline, FALSE, NULL);
Packit a4058c
      
Packit a4058c
    
Packit a4058c
  
Packit a4058c
Packit a4058c
Packit a4058c

Packit a4058c

For non-const inline data, you could get out of memory. For untrusted

Packit a4058c
inline data located at runtime, you could have corrupt inline data in 
Packit a4058c
addition.

Packit a4058c
Packit a4058c

Parameters

Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c

data_length

Packit a4058c

Length in bytes of the data

Packit a4058c
argument or -1 to
Packit a4058c
disable length checks

Packit a4058c
 
Packit a4058c
Packit a4058c
Packit a4058c

data

Packit a4058c

Byte data containing a

Packit a4058c
serialized GdkPixdata structure. 

Packit a4058c
[array length=data_length]
Packit a4058c
Packit a4058c
Packit a4058c

copy_pixels

Packit a4058c

Whether to copy the pixel data, or use direct pointers

Packit a4058c
data
Packit a4058c
for the resulting pixbuf

Packit a4058c
 
Packit a4058c
Packit a4058c
Packit a4058c

error

Packit a4058c

GError return location, may be NULL to ignore errors

Packit a4058c
 
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c

Returns

Packit a4058c

A newly-created GdkPixbuf structure with a reference,

Packit a4058c
count of 1, or NULL if an error occurred.

Packit a4058c
Packit a4058c
Packit a4058c

Packit a4058c
Packit a4058c

gdk_pixbuf_new_subpixbuf ()

Packit a4058c
GdkPixbuf *
Packit a4058c
gdk_pixbuf_new_subpixbuf (GdkPixbuf *src_pixbuf,
Packit a4058c
                          int src_x,
Packit a4058c
                          int src_y,
Packit a4058c
                          int width,
Packit a4058c
                          int height);
Packit a4058c

Creates a new pixbuf which represents a sub-region of src_pixbuf

Packit a4058c
.
Packit a4058c
The new pixbuf shares its pixels with the original pixbuf, so
Packit a4058c
writing to one affects both.  The new pixbuf holds a reference to
Packit a4058c
src_pixbuf
Packit a4058c
, so src_pixbuf
Packit a4058c
 will not be finalized until the new
Packit a4058c
pixbuf is finalized.

Packit a4058c

Note that if src_pixbuf

Packit a4058c
 is read-only, this function will force it
Packit a4058c
to be mutable.

Packit a4058c
Packit a4058c

Parameters

Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c

src_pixbuf

Packit a4058c

a GdkPixbuf

Packit a4058c
 
Packit a4058c
Packit a4058c
Packit a4058c

src_x

Packit a4058c

X coord in src_pixbuf

Packit a4058c

Packit a4058c
 
Packit a4058c
Packit a4058c
Packit a4058c

src_y

Packit a4058c

Y coord in src_pixbuf

Packit a4058c

Packit a4058c
 
Packit a4058c
Packit a4058c
Packit a4058c

width

Packit a4058c

width of region in src_pixbuf

Packit a4058c

Packit a4058c
 
Packit a4058c
Packit a4058c
Packit a4058c

height

Packit a4058c

height of region in src_pixbuf

Packit a4058c

Packit a4058c
 
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c

Returns

Packit a4058c

a new pixbuf.

Packit a4058c

[transfer full]

Packit a4058c
Packit a4058c
Packit a4058c

Packit a4058c
Packit a4058c

gdk_pixbuf_copy ()

Packit a4058c
GdkPixbuf *
Packit a4058c
gdk_pixbuf_copy (const GdkPixbuf *pixbuf);
Packit a4058c

Creates a new GdkPixbuf with a copy of the information in the specified

Packit a4058c
pixbuf
Packit a4058c
. Note that this does not copy the options set on the original GdkPixbuf,
Packit a4058c
use gdk_pixbuf_copy_options() for this.

Packit a4058c
Packit a4058c

Parameters

Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c

pixbuf

Packit a4058c

A pixbuf.

Packit a4058c
 
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c

Returns

Packit a4058c

A newly-created pixbuf with a reference count of 1, or NULL if

Packit a4058c
not enough memory could be allocated. 

Packit a4058c

[transfer full]

Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c

Types and Values

Packit a4058c
Packit a4058c
Packit a4058c

See Also

Packit a4058c

gdk_pixbuf_finalize().

Packit a4058c
Packit a4058c
Packit a4058c
Packit a4058c

Generated by GTK-Doc V1.25.1
Packit a4058c
</body>
Packit a4058c
</html>