Class (GI Class)

GdkPixbuf-2.0GdkPixbufPixbuf

A pixel buffer.

GdkPixbuf.Pixbuf contains information about an 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).

The most basic way to create a pixbuf is to wrap an existing pixel buffer with a GdkPixbuf.Pixbuf instance. You can use the GdkPixbuf.Pixbuf.new_from_data function to do this.

Every time you create a new GdkPixbuf.Pixbuf instance for some data, you will need to specify the destroy notification function that will be called when the data buffer needs to be freed; this will happen when a GdkPixbuf.Pixbuf is finalized by the reference counting functions. If you have a chunk of static data compiled into your application, you can pass in NULL as the destroy notification function so that the data will not be freed.

The GdkPixbuf.Pixbuf.new constructor function can be used as a convenience to create a pixbuf with an empty buffer; this is equivalent to allocating a data buffer using malloc() and then wrapping it with gdk_pixbuf_new_from_data(). The gdk_pixbuf_new() function will compute an optimal rowstride so that rendering can be performed with an efficient algorithm.

As a special case, you can use the GdkPixbuf.Pixbuf.new_from_xpm_data function to create a pixbuf from inline XPM image data.

You can also copy an existing pixbuf with the Pixbuf.copy function. This is not the same as just acquiring a reference to the old pixbuf instance: the copy function will actually duplicate the pixel data in memory and create a new Pixbuf instance for it.

GdkPixbuf.Pixbuf structures are reference counted. This means that an application can share a single pixbuf among many parts of the code. When a piece of the program needs to use a pixbuf, it should acquire a reference to it by calling g_object_ref(); when it no longer needs the pixbuf, it should release the reference it acquired by calling g_object_unref(). The resources associated with a GdkPixbuf.Pixbuf will be freed when its reference count drops to zero. Newly-created GdkPixbuf.Pixbuf instances start with a reference count of one.

Image data in a pixbuf is stored in memory in an 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 GdkPixbuf.Pixbuf.get_rowstride, indicates the number of bytes between rows.

NOTE: If you are copying raw pixbuf data with memcpy() note that the last row in the pixbuf may not be as wide as the full rowstride, but rather just as wide as the pixel data needs to be; that is: it is unsafe to do memcpy (dest, pixels, rowstride * height) to copy a whole pixbuf. Use GdkPixbuf.Pixbuf.copy instead, or compute the width in bytes of the last row as:

last_row = width * ((n_channels * bits_per_sample + 7) / 8);

The same rule applies when iterating over each row of a GdkPixbuf.Pixbuf pixels array.

The following code illustrates a simple put_pixel() function for RGB pixbufs with 8 bits per channel with an alpha channel.

static void
put_pixel (GdkPixbuf *pixbuf,
int x,
int y,
guchar red,
guchar green,
guchar blue,
guchar alpha)
{
int n_channels = gdk_pixbuf_get_n_channels (pixbuf);

// Ensure that the pixbuf is valid
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);

int width = gdk_pixbuf_get_width (pixbuf);
int height = gdk_pixbuf_get_height (pixbuf);

// Ensure that the coordinates are in a valid range
g_assert (x >= 0 && x < width);
g_assert (y >= 0 && y < height);

int rowstride = gdk_pixbuf_get_rowstride (pixbuf);

// The pixel buffer in the GdkPixbuf instance
guchar *pixels = gdk_pixbuf_get_pixels (pixbuf);

// The pixel we wish to modify
guchar *p = pixels + y * rowstride + x * n_channels;
p[0] = red;
p[1] = green;
p[2] = blue;
p[3] = alpha;
}

The GdkPixBuf class provides a simple mechanism for loading an image from a file in synchronous and asynchronous fashion.

For GUI applications, it is recommended to use the asynchronous stream API to avoid blocking the control flow of the application.

Additionally, GdkPixbuf.Pixbuf provides the GdkPixbuf.PixbufLoader API for progressive image loading.

The GdkPixbuf.Pixbuf class provides methods for saving image data in a number of file formats. The formatted data can be written to a file or to a memory buffer. GdkPixbuf.Pixbuf can also call a user-defined callback on the data, which allows to e.g. write the image to a socket or store it in a database.

Hierarchy (View Summary)

Implements

Index

Constructors

Properties

Accessors

Methods

_init add_alpha apply_embedded_orientation bind_property bind_property_full block_signal_handler composite composite_color composite_color_simple connect connect_after copy copy_area copy_options disconnect emit equal fill flip force_floating freeze_notify get_bits_per_sample get_byte_length get_colorspace get_data get_has_alpha get_height get_n_channels get_option get_options get_pixels get_property get_qdata get_rowstride get_width getv hash is_floating load load_async load_finish new_subpixbuf notify notify_by_pspec read_pixel_bytes read_pixels ref ref_sink remove_option rotate_simple run_dispose saturate_and_pixelate save_to_bufferv save_to_callbackv save_to_streamv save_to_streamv_async savev scale scale_simple serialize set set_data set_option set_property steal_data steal_qdata stop_emission_by_name thaw_notify to_string unblock_signal_handler unref vfunc_constructed vfunc_dispatch_properties_changed vfunc_dispose vfunc_equal vfunc_finalize vfunc_get_property vfunc_hash vfunc_load vfunc_load_async vfunc_load_finish vfunc_notify vfunc_serialize vfunc_set_property vfunc_to_tokens watch_closure calculate_rowstride get_file_info get_file_info_async get_file_info_finish get_formats init_modules new new_from_bytes new_from_data new_from_file new_from_file_at_scale new_from_file_at_size new_from_inline new_from_resource new_from_resource_at_scale new_from_stream new_from_stream_async new_from_stream_at_scale new_from_stream_at_scale_async new_from_stream_finish new_from_xpm_data save_to_stream_finish

Methods - Inherited from GObject

Constructors

Properties

Compile-time signal type information.

This instance property is generated only for TypeScript type checking. It is not defined at runtime and should not be accessed in JS code.

Accessors

  • get rowstride(): number

    The number of bytes between the start of a row and the start of the next row.

    This number must (obviously) be at least as large as the width of the pixbuf.

    Returns number

Methods

  • Takes an existing pixbuf and adds an alpha channel to it.

    If the existing pixbuf already had an alpha channel, the channel values are copied from the original; otherwise, the alpha channel is initialized to 255 (full opacity).

    If substitute_color is TRUE, then the color specified by the (r, g, b) arguments will be assigned zero opacity. That is, if you pass (255, 255, 255) for the substitute color, all white pixels will become fully transparent.

    If substitute_color is FALSE, then the (r, g, b) arguments will be ignored.

    Parameters

    • substitute_color: boolean

      Whether to set a color to zero opacity.

    • r: number

      Red value to substitute.

    • g: number

      Green value to substitute.

    • b: number

      Blue value to substitute.

    Returns GdkPixbuf.Pixbuf

    A newly-created pixbuf

  • Takes an existing pixbuf and checks for the presence of an associated "orientation" option.

    The orientation option may be provided by the JPEG loader (which reads the exif orientation tag) or the TIFF loader (which reads the TIFF orientation tag, and compensates it for the partial transforms performed by libtiff).

    If an orientation option/tag is present, the appropriate transform will be performed so that the pixbuf is oriented correctly.

    Returns GdkPixbuf.Pixbuf

    A newly-created pixbuf

  • Creates a binding between source_property on source and target_property on target.

    Whenever the source_property is changed the target_property is updated using the same value. For instance:

      g_object_bind_property (action, "active", widget, "sensitive", 0);
    

    Will result in the "sensitive" property of the widget GObject.Object instance to be updated with the same value of the "active" property of the action GObject.Object instance.

    If flags contains GObject.BindingFlags.BIDIRECTIONAL then the binding will be mutual: if target_property on target changes then the source_property on source will be updated as well.

    The binding will automatically be removed when either the source or the target instances are finalized. To remove the binding without affecting the source and the target you can just call g_object_unref() on the returned GObject.Binding instance.

    Removing the binding by calling g_object_unref() on it must only be done if the binding, source and target are only used from a single thread and it is clear that both source and target outlive the binding. Especially it is not safe to rely on this if the binding, source or target can be finalized from different threads. Keep another reference to the binding and use g_binding_unbind() instead to be on the safe side.

    A GObject.Object can have multiple bindings.

    Parameters

    Returns GObject.Binding

    the GObject.Binding instance representing the binding between the two GObject.Object instances. The binding is released whenever the GObject.Binding reference count reaches zero.

  • Complete version of g_object_bind_property().

    Creates a binding between source_property on source and target_property on target, allowing you to set the transformation functions to be used by the binding.

    If flags contains GObject.BindingFlags.BIDIRECTIONAL then the binding will be mutual: if target_property on target changes then the source_property on source will be updated as well. The transform_from function is only used in case of bidirectional bindings, otherwise it will be ignored

    The binding will automatically be removed when either the source or the target instances are finalized. This will release the reference that is being held on the GObject.Binding instance; if you want to hold on to the GObject.Binding instance, you will need to hold a reference to it.

    To remove the binding, call g_binding_unbind().

    A GObject.Object can have multiple bindings.

    The same user_data parameter will be used for both transform_to and transform_from transformation functions; the notify function will be called once, when the binding is removed. If you need different data for each transformation function, please use g_object_bind_property_with_closures() instead.

    Parameters

    • source_property: string

      the property on source to bind

    • target: GObject.Object

      the target GObject.Object

    • target_property: string

      the property on target to bind

    • flags: GObject.BindingFlags

      flags to pass to GObject.Binding

    • Optionaltransform_to: BindingTransformFunc

      the transformation function from the source to the target, or null to use the default

    • Optionaltransform_from: BindingTransformFunc

      the transformation function from the target to the source, or null to use the default

    • Optionalnotify: DestroyNotify

      a function to call when disposing the binding, to free resources used by the transformation functions, or null if not required

    Returns GObject.Binding

    the GObject.Binding instance representing the binding between the two GObject.Object instances. The binding is released whenever the GObject.Binding reference count reaches zero.

  • Creates a binding between source_property on source and target_property on target, allowing you to set the transformation functions to be used by the binding.

    This function is the language bindings friendly version of g_object_bind_property_full(), using GClosures instead of function pointers.

    Parameters

    • ...args: never[]

      the property on source to bind

    Returns any

    the GObject.Binding instance representing the binding between the two GObject.Object instances. The binding is released whenever the GObject.Binding reference count reaches zero.

  • Creates a transformation of the source image src by scaling by scale_x and scale_y then translating by offset_x and offset_y.

    This gives an image in the coordinates of the destination pixbuf. The rectangle (dest_x, dest_y, dest_width, dest_height) is then alpha blended onto the corresponding rectangle of the original destination image.

    When the destination rectangle contains parts not in the source image, the data at the edges of the source image is replicated to infinity.

    Parameters

    • dest: GdkPixbuf.Pixbuf

      the GdkPixbuf.Pixbuf into which to render the results

    • dest_x: number

      the left coordinate for region to render

    • dest_y: number

      the top coordinate for region to render

    • dest_width: number

      the width of the region to render

    • dest_height: number

      the height of the region to render

    • offset_x: number

      the offset in the X direction (currently rounded to an integer)

    • offset_y: number

      the offset in the Y direction (currently rounded to an integer)

    • scale_x: number

      the scale factor in the X direction

    • scale_y: number

      the scale factor in the Y direction

    • interp_type: GdkPixbuf.InterpType

      the interpolation type for the transformation.

    • overall_alpha: number

      overall alpha for source image (0..255)

    Returns void

  • Creates a transformation of the source image src by scaling by scale_x and scale_y then translating by offset_x and offset_y, then alpha blends the rectangle (dest_x ,dest_y, dest_width, dest_height) of the resulting image with a checkboard of the colors color1 and color2 and renders it onto the destination image.

    If the source image has no alpha channel, and overall_alpha is 255, a fast path is used which omits the alpha blending and just performs the scaling.

    See gdk_pixbuf_composite_color_simple() for a simpler variant of this function suitable for many tasks.

    Parameters

    • dest: GdkPixbuf.Pixbuf

      the GdkPixbuf.Pixbuf into which to render the results

    • dest_x: number

      the left coordinate for region to render

    • dest_y: number

      the top coordinate for region to render

    • dest_width: number

      the width of the region to render

    • dest_height: number

      the height of the region to render

    • offset_x: number

      the offset in the X direction (currently rounded to an integer)

    • offset_y: number

      the offset in the Y direction (currently rounded to an integer)

    • scale_x: number

      the scale factor in the X direction

    • scale_y: number

      the scale factor in the Y direction

    • interp_type: GdkPixbuf.InterpType

      the interpolation type for the transformation.

    • overall_alpha: number

      overall alpha for source image (0..255)

    • check_x: number

      the X offset for the checkboard (origin of checkboard is at -check_x, -check_y)

    • check_y: number

      the Y offset for the checkboard

    • check_size: number

      the size of checks in the checkboard (must be a power of two)

    • color1: number

      the color of check at upper left

    • color2: number

      the color of the other check

    Returns void

  • Creates a new pixbuf by scaling src to dest_width x dest_height and alpha blending the result with a checkboard of colors color1 and color2.

    Parameters

    • dest_width: number

      the width of destination image

    • dest_height: number

      the height of destination image

    • interp_type: GdkPixbuf.InterpType

      the interpolation type for the transformation.

    • overall_alpha: number

      overall alpha for source image (0..255)

    • check_size: number

      the size of checks in the checkboard (must be a power of two)

    • color1: number

      the color of check at upper left

    • color2: number

      the color of the other check

    Returns GdkPixbuf.Pixbuf

    the new pixbuf

  • Copies a rectangular area from src_pixbuf to dest_pixbuf.

    Conversion of pixbuf formats is done automatically.

    If the source rectangle overlaps the destination rectangle on the same pixbuf, it will be overwritten during the copy operation. Therefore, you can not use this function to scroll a pixbuf.

    Parameters

    • src_x: number

      Source X coordinate within src_pixbuf.

    • src_y: number

      Source Y coordinate within src_pixbuf.

    • width: number

      Width of the area to copy.

    • height: number

      Height of the area to copy.

    • dest_pixbuf: GdkPixbuf.Pixbuf

      Destination pixbuf.

    • dest_x: number

      X coordinate within dest_pixbuf.

    • dest_y: number

      Y coordinate within dest_pixbuf.

    Returns void

  • Clears a pixbuf to the given RGBA value, converting the RGBA value into the pixbuf's pixel format.

    The alpha component will be ignored if the pixbuf doesn't have an alpha channel.

    Parameters

    • pixel: number

      RGBA pixel to used to clear (0xffffffff is opaque white, 0x00000000 transparent black)

    Returns void

  • Increases the freeze count on object. If the freeze count is non-zero, the emission of "notify" signals on object is stopped. The signals are queued until the freeze count is decreased to zero. Duplicate notifications are squashed so that at most one GObject.Object::notify signal is emitted for each property modified while the object is frozen.

    This is necessary for accessors that modify multiple properties to prevent premature notification while the object is still being modified.

    Returns void

  • Queries whether a pixbuf has an alpha channel (opacity information).

    Returns boolean

    TRUE if it has an alpha channel, FALSE otherwise.

  • Looks up key in the list of options that may have been attached to the pixbuf when it was loaded, or that may have been attached by another function using gdk_pixbuf_set_option().

    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). Since 2.32, the TIFF loader sets the "multipage" option string to "yes" when a multi-page TIFF is loaded. Since 2.32 the JPEG and PNG loaders set "x-dpi" and "y-dpi" if the file contains image density information in dots per inch. Since 2.36.6, the JPEG loader sets the "comment" option with the comment EXIF tag.

    Parameters

    • key: string

      a nul-terminated string.

    Returns string

    the value associated with key

  • Queries a pointer to the pixel data of a pixbuf.

    This function will cause an implicit copy of the pixbuf data if the pixbuf was created from read-only data.

    Please see the section on image data for information about how the pixel data is stored in memory.

    Returns Uint8Array

    A pointer to the pixbuf's pixel data.

  • Queries a pointer to the pixel data of a pixbuf.

    This function will cause an implicit copy of the pixbuf data if the pixbuf was created from read-only data.

    Please see the section on image data for information about how the pixel data is stored in memory.

    Returns Uint8Array

    A pointer to the pixbuf's pixel data.

  • Gets a property of an object.

    The value can be:

    • an empty GObject.Value initialized by G_VALUE_INIT, which will be automatically initialized with the expected type of the property (since GLib 2.60)
    • a GObject.Value initialized with the expected type of the property
    • a GObject.Value initialized with a type to which the expected type of the property can be transformed

    In general, a copy is made of the property contents and the caller is responsible for freeing the memory by calling GObject.Value.unset.

    Note that GObject.Object.get_property is really intended for language bindings, GObject.Object.get is much more convenient for C programming.

    Parameters

    • property_name: string

      The name of the property to get

    • value: any

      Return location for the property value. Can be an empty GObject.Value initialized by G_VALUE_INIT (auto-initialized with expected type since GLib 2.60), a GObject.Value initialized with the expected property type, or a GObject.Value initialized with a transformable type

    Returns any

  • 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.

    Returns number

    Distance between row starts.

  • Gets n_properties properties for an object. Obtained properties will be set to values. All properties must be valid. Warnings will be emitted and undefined behaviour may result if invalid properties are passed in.

    Parameters

    • names: string[]

      the names of each property to get

    • values: any[]

      the values of each property to get

    Returns void

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

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

    Note that if src_pixbuf is read-only, this function will force it to be mutable.

    Parameters

    • src_x: number

      X coord in src_pixbuf

    • src_y: number

      Y coord in src_pixbuf

    • width: number

      width of region in src_pixbuf

    • height: number

      height of region in src_pixbuf

    Returns GdkPixbuf.Pixbuf

    a new pixbuf

  • Emits a "notify" signal for the property property_name on object.

    When possible, eg. when signaling a property change from within the class that registered the property, you should use g_object_notify_by_pspec() instead.

    Note that emission of the notify signal may be blocked with g_object_freeze_notify(). In this case, the signal emissions are queued and will be emitted (in reverse order) when g_object_thaw_notify() is called.

    Parameters

    • property_name: string

      the name of a property installed on the class of object.

    Returns void

  • Emits a "notify" signal for the property specified by pspec on object.

    This function omits the property name lookup, hence it is faster than g_object_notify().

    One way to avoid using g_object_notify() from within the class that registered the properties, and using g_object_notify_by_pspec() instead, is to store the GParamSpec used with g_object_class_install_property() inside a static array, e.g.:

      typedef enum
    {
    PROP_FOO = 1,
    PROP_LAST
    } MyObjectProperty;

    static GParamSpec *properties[PROP_LAST];

    static void
    my_object_class_init (MyObjectClass *klass)
    {
    properties[PROP_FOO] = g_param_spec_int ("foo", NULL, NULL,
    0, 100,
    50,
    G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
    g_object_class_install_property (gobject_class,
    PROP_FOO,
    properties[PROP_FOO]);
    }

    and then notify a change on the "foo" property with:

      g_object_notify_by_pspec (self, properties[PROP_FOO]);
    

    Parameters

    Returns void

  • Provides a GLib.Bytes buffer containing the raw pixel data; the data must not be modified.

    This function allows skipping the implicit copy that must be made if gdk_pixbuf_get_pixels() is called on a read-only pixbuf.

    Returns GLib.Bytes

    A new reference to a read-only copy of the pixel data. Note that for mutable pixbufs, this function will incur a one-time copy of the pixel data for conversion into the returned GLib.Bytes.

  • Provides a read-only pointer to the raw pixel data.

    This function allows skipping the implicit copy that must be made if gdk_pixbuf_get_pixels() is called on a read-only pixbuf.

    Returns number

    a read-only pointer to the raw pixel data

  • Increases the reference count of object.

    Since GLib 2.56, if GLIB_VERSION_MAX_ALLOWED is 2.56 or greater, the type of object will be propagated to the return type (using the GCC typeof() extension), so any casting the caller needs to do on the return type must be explicit.

    Returns GObject.Object

    the same object

  • Increase the reference count of object, and possibly remove the [floating][floating-ref] reference, if object has a floating reference.

    In other words, if the object is floating, then this call "assumes ownership" of the floating reference, converting it to a normal reference by clearing the floating flag while leaving the reference count unchanged. If the object is not floating, then this call adds a new normal reference increasing the reference count by one.

    Since GLib 2.56, the type of object will be propagated to the return type under the same conditions as for g_object_ref().

    Returns GObject.Object

    object

  • Removes the key/value pair option attached to a GdkPixbuf.Pixbuf.

    Parameters

    • key: string

      a nul-terminated string representing the key to remove.

    Returns boolean

    TRUE if an option was removed, FALSE if not.

  • Modifies saturation and optionally pixelates src, placing the result in dest.

    The src and dest pixbufs must have the same image format, size, and rowstride.

    The src and dest arguments may be the same pixbuf with no ill effects.

    If saturation is 1.0 then saturation is not changed. If it's less than 1.0, saturation is reduced (the image turns toward grayscale); if greater than 1.0, saturation is increased (the image gets more vivid colors).

    If pixelate is TRUE, then pixels are faded in a checkerboard pattern to create a pixelated image.

    Parameters

    • dest: GdkPixbuf.Pixbuf

      place to write modified version of src

    • saturation: number

      saturation factor

    • pixelate: boolean

      whether to pixelate

    Returns void

  • Vector version of gdk_pixbuf_save_to_buffer().

    Saves pixbuf to a new buffer in format type, which is currently "jpeg", "tiff", "png", "ico" or "bmp".

    See GdkPixbuf.Pixbuf.save_to_buffer for more details.

    Parameters

    • type: string

      name of file format.

    • Optionaloption_keys: string[]

      name of options to set

    • Optionaloption_values: string[]

      values for named options

    Returns [boolean, Uint8Array<ArrayBufferLike>]

    whether an error was set

  • Vector version of gdk_pixbuf_save_to_callback().

    Saves pixbuf to a callback in format type, which is currently "jpeg", "png", "tiff", "ico" or "bmp".

    If error is set, FALSE will be returned.

    See GdkPixbuf.Pixbuf.save_to_callback for more details.

    Parameters

    • save_func: PixbufSaveFunc

      a function that is called to save each block of data that the save routine generates.

    • type: string

      name of file format.

    • Optionaloption_keys: string[]

      name of options to set

    • Optionaloption_values: string[]

      values for named options

    Returns boolean

    whether an error was set

  • Saves pixbuf to an output stream.

    Supported file formats are currently "jpeg", "tiff", "png", "ico" or "bmp".

    See GdkPixbuf.Pixbuf.save_to_stream for more details.

    Parameters

    Returns boolean

    TRUE if the pixbuf was saved successfully, FALSE if an error was set.

  • Vector version of gdk_pixbuf_save().

    Saves pixbuf to a file in type, which is currently "jpeg", "png", "tiff", "ico" or "bmp".

    If error is set, FALSE will be returned.

    See GdkPixbuf.Pixbuf.save for more details.

    Parameters

    • filename: string

      name of file to save.

    • type: string

      name of file format.

    • Optionaloption_keys: string[]

      name of options to set

    • Optionaloption_values: string[]

      values for named options

    Returns boolean

    whether an error was set

  • Creates a transformation of the source image src by scaling by scale_x and scale_y then translating by offset_x and offset_y, then renders the rectangle (dest_x, dest_y, dest_width, dest_height) of the resulting image onto the destination image replacing the previous contents.

    Try to use gdk_pixbuf_scale_simple() first; this function is the industrial-strength power tool you can fall back to, if gdk_pixbuf_scale_simple() isn't powerful enough.

    If the source rectangle overlaps the destination rectangle on the same pixbuf, it will be overwritten during the scaling which results in rendering artifacts.

    Parameters

    • dest: GdkPixbuf.Pixbuf

      the GdkPixbuf.Pixbuf into which to render the results

    • dest_x: number

      the left coordinate for region to render

    • dest_y: number

      the top coordinate for region to render

    • dest_width: number

      the width of the region to render

    • dest_height: number

      the height of the region to render

    • offset_x: number

      the offset in the X direction (currently rounded to an integer)

    • offset_y: number

      the offset in the Y direction (currently rounded to an integer)

    • scale_x: number

      the scale factor in the X direction

    • scale_y: number

      the scale factor in the Y direction

    • interp_type: GdkPixbuf.InterpType

      the interpolation type for the transformation.

    Returns void

  • Create a new pixbuf containing a copy of src scaled to dest_width x dest_height.

    This function leaves src unaffected.

    The interp_type should be GDK_INTERP_NEAREST if you want maximum speed (but when scaling down GDK_INTERP_NEAREST is usually unusably ugly). The default interp_type should be GDK_INTERP_BILINEAR which offers reasonable quality and speed.

    You can scale a sub-portion of src by creating a sub-pixbuf pointing into src; see GdkPixbuf.Pixbuf.new_subpixbuf.

    If dest_width and dest_height are equal to the width and height of src, this function will return an unscaled copy of src.

    For more complicated scaling/alpha blending see GdkPixbuf.Pixbuf.scale and GdkPixbuf.Pixbuf.composite.

    Parameters

    • dest_width: number

      the width of destination image

    • dest_height: number

      the height of destination image

    • interp_type: GdkPixbuf.InterpType

      the interpolation type for the transformation.

    Returns GdkPixbuf.Pixbuf

    the new pixbuf

  • Sets multiple properties of an object at once. The properties argument should be a dictionary mapping property names to values.

    Parameters

    • properties: { [key: string]: any }

      Object containing the properties to set

    Returns void

  • Each object carries around a table of associations from strings to pointers. This function lets you set an association.

    If the object already had an association with that name, the old association will be destroyed.

    Internally, the key is converted to a GLib.Quark using g_quark_from_string(). This means a copy of key is kept permanently (even after object has been finalized) — so it is recommended to only use a small, bounded set of values for key in your program, to avoid the GLib.Quark storage growing unbounded.

    Parameters

    • key: string

      name of the key

    • Optionaldata: any

      data to associate with that key

    Returns void

  • Attaches a key/value pair as an option to a GdkPixbuf.Pixbuf.

    If key already exists in the list of options attached to the pixbuf, the new value is ignored and FALSE is returned.

    Parameters

    • key: string

      a nul-terminated string.

    • value: string

      a nul-terminated string.

    Returns boolean

    TRUE on success

  • This function gets back user data pointers stored via g_object_set_qdata() and removes the data from object without invoking its destroy() function (if any was set). Usually, calling this function is only required to update user data pointers with a destroy notifier, for example:

    void
    object_add_to_user_list (GObject *object,
    const gchar *new_string)
    {
    // the quark, naming the object data
    GQuark quark_string_list = g_quark_from_static_string ("my-string-list");
    // retrieve the old string list
    GList *list = g_object_steal_qdata (object, quark_string_list);

    // prepend new string
    list = g_list_prepend (list, g_strdup (new_string));
    // this changed 'list', so we need to set it again
    g_object_set_qdata_full (object, quark_string_list, list, free_string_list);
    }
    static void
    free_string_list (gpointer data)
    {
    GList *node, *list = data;

    for (node = list; node; node = node->next)
    g_free (node->data);
    g_list_free (list);
    }

    Using g_object_get_qdata() in the above example, instead of g_object_steal_qdata() would have left the destroy function set, and thus the partial string list would have been freed upon g_object_set_qdata_full().

    Parameters

    • quark: number

      A GLib.Quark, naming the user data pointer

    Returns any

    The user data pointer set, or null

  • Reverts the effect of a previous call to g_object_freeze_notify(). The freeze count is decreased on object and when it reaches zero, queued "notify" signals are emitted.

    Duplicate notifications for each property are squashed so that at most one GObject.Object::notify signal is emitted for each property, in the reverse order in which they have been queued.

    It is an error to call this function when the freeze count is zero.

    Returns void

  • Generates a textual representation of icon that can be used for serialization such as when passing icon to a different process or saving it to persistent storage. Use g_icon_new_for_string() to get icon back from the returned string.

    The encoding of the returned string is proprietary to Gio.Icon except in the following two cases

    • If icon is a Gio.FileIcon, the returned string is a native path (such as /path/to/my icon.png) without escaping if the Gio.File for icon is a native file. If the file is not native, the returned string is the result of g_file_get_uri() (such as sftp://path/to/my%20icon.png).

    • If icon is a Gio.ThemedIcon with exactly one name and no fallbacks, the encoding is simply the name (such as network-server).

    Returns string

    An allocated NUL-terminated UTF8 string or null if icon can't be serialized. Use g_free() to free.

  • Decreases the reference count of object. When its reference count drops to 0, the object is finalized (i.e. its memory is freed).

    If the pointer to the GObject.Object may be reused in future (for example, if it is an instance variable of another object), it is recommended to clear the pointer to null rather than retain a dangling pointer to a potentially invalid GObject.Object instance. Use g_clear_object() for this.

    Returns void

  • the constructed function is called by g_object_new() as the final step of the object creation process. At the point of the call, all construction properties have been set on the object. The purpose of this call is to allow for object initialisation steps that can only be performed after construction properties have been set. constructed implementors should chain up to the constructed call of their parent class to allow it to complete its initialisation.

    Returns void

  • the dispose function is supposed to drop all references to other objects, but keep the instance otherwise intact, so that client method invocations still work. It may be run multiple times (due to reference loops). Before returning, dispose should chain up to the dispose method of the parent class.

    Returns void

  • Emits a "notify" signal for the property property_name on object.

    When possible, eg. when signaling a property change from within the class that registered the property, you should use g_object_notify_by_pspec() instead.

    Note that emission of the notify signal may be blocked with g_object_freeze_notify(). In this case, the signal emissions are queued and will be emitted (in reverse order) when g_object_thaw_notify() is called.

    Parameters

    Returns void

  • the generic setter for all properties of this type. Should be overridden for every type with properties. If implementations of set_property don't emit property change notification explicitly, this will be done implicitly by the type system. However, if the notify signal is emitted explicitly, the type system will not emit it a second time.

    Parameters

    Returns void

  • This function essentially limits the life time of the closure to the life time of the object. That is, when the object is finalized, the closure is invalidated by calling g_closure_invalidate() on it, in order to prevent invocations of the closure with a finalized (nonexisting) object. Also, g_object_ref() and g_object_unref() are added as marshal guards to the closure, to ensure that an extra reference count is held on object during invocation of the closure. Usually, this function will be called on closures that use this object as closure data.

    Parameters

    Returns void

  • Calculates the rowstride that an image created with those values would have.

    This function is useful for front-ends and backends that want to check image values without needing to create a GdkPixbuf.Pixbuf.

    Parameters

    • colorspace: RGB

      Color space for image

    • has_alpha: boolean

      Whether the image should have transparency information

    • bits_per_sample: number

      Number of bits per color sample

    • width: number

      Width of image in pixels, must be > 0

    • height: number

      Height of image in pixels, must be > 0

    Returns number

  • Initalizes the gdk-pixbuf loader modules referenced by the loaders.cache file present inside that directory.

    This is to be used by applications that want to ship certain loaders in a different location from the system ones.

    This is needed when the OS or runtime ships a minimal number of loaders so as to reduce the potential attack surface of carefully crafted image files, especially for uncommon file types. Applications that require broader image file types coverage, such as image viewers, would be expected to ship the gdk-pixbuf modules in a separate location, bundled with the application in a separate directory from the OS or runtime- provided modules.

    Parameters

    • path: string

      Path to directory where the loaders.cache is installed

    Returns boolean

  • Parameters

    • data: Uint8Array<ArrayBufferLike> | GLib.Bytes
    • colorspace: RGB
    • has_alpha: boolean
    • bits_per_sample: number
    • width: number
    • height: number
    • rowstride: number

    Returns GdkPixbuf.Pixbuf

  • Creates a new pixbuf by asynchronously loading an image from an input stream.

    For more details see gdk_pixbuf_new_from_stream_at_scale(), which is the synchronous version of this function.

    When the operation is finished, callback will be called in the main thread. You can then call gdk_pixbuf_new_from_stream_finish() to get the result of the operation.

    Parameters

    Returns void

Methods - Inherited from GObject

  • Add a property to an interface; this is only useful for interfaces that are added to GObject-derived types. Adding a property to an interface forces all objects classes with that interface to have a compatible property. The compatible property could be a newly created GObject.ParamSpec, but normally g_object_class_override_property() will be used so that the object class only needs to provide an implementation and inherits the property description, default value, bounds, and so forth from the interface property.

    This function is meant to be called from the interface's default vtable initialization function (the class_init member of GObject.TypeInfo.) It must not be called after after class_init has been called for any object types implementing this interface.

    If pspec is a floating reference, it will be consumed.

    Parameters

    Returns void

  • Parameters

    • property_id: number

      the new property ID

    • name: string

      the name of a property registered in a parent class or in an interface of this class.

    Returns void

Interfaces

ConstructorProps
SignalSignatures