### ----------------------------------------------------
### -- Gnome::Gdk3
### -- Licenses: Artistic-2.0
### -- Authors: Marcel Timmerman
### -- File: lib/Gnome/Gdk3/Pixbuf.rakumod
### ----------------------------------------------------
### -- Chunk 2 of 2
 )

=item Str $resource_path;
=item N-GError $error;

=end pod
}}

sub _gdk_pixbuf_new_from_resource ( Str $resource-path --> List ) {
  my N-GError $e;
  my CArray[N-GError] $ga .= new(N-GError);
  my N-GObject $o = __gdk_pixbuf_new_from_resource(
    $resource-path, $ga
  );

  ( $o, Gnome::Glib::Error.new(:native-object($ga[0])))
}

sub __gdk_pixbuf_new_from_resource ( Str $resource_path, CArray[N-GError] $error )
  returns N-GObject
  is native(&gdk-pixbuf-lib)
  is symbol('gdk_pixbuf_new_from_resource')
  { * }

#`{{
#-------------------------------------------------------------------------------
#TM:0:gdk_pixbuf_new_from_resource_at_scale:
=begin pod
=head2 [gdk_pixbuf_] new_from_resource_at_scale

Creates a new pixbuf by loading an image from an resource.

The file format is detected automatically. If NULL is returned, then error will be set.

  method gdk_pixbuf_new_from_resource_at_scale ( Str $resource_path, Int $width, Int $height, Int $preserve_aspect_ratio, N-GError $error --> N-GObject  )

=item Str $resource_path;
=item Int $width;
=item Int $height;
=item Int $preserve_aspect_ratio;
=item N-GError $error;

=end pod

sub gdk_pixbuf_new_from_resource_at_scale ( Str $resource_path, int32 $width, int32 $height, int32 $preserve_aspect_ratio, N-GError $error )
  returns N-GObject
  is native(&gdk-pixbuf-lib)
  { * }
}}
#`{{
#-------------------------------------------------------------------------------
#TM:0:gdk_pixbuf_new_from_data:
=begin pod
=head2 [gdk_pixbuf_] new_from_data



  method gdk_pixbuf_new_from_data ( CArray[byte] $data, GdkColorspace $colorspace, Int $has_alpha, Int $bits_per_sample, Int $width, Int $height, Int $rowstride, GdkPixbufDestroyNotify $destroy_fn, Pointer $destroy_fn_data --> N-GObject  )

=item CArray[byte] $data;
=item GdkColorspace $colorspace;
=item Int $has_alpha;
=item Int $bits_per_sample;
=item Int $width;
=item Int $height;
=item Int $rowstride;
=item GdkPixbufDestroyNotify $destroy_fn;
=item Pointer $destroy_fn_data;

=end pod

sub gdk_pixbuf_new_from_data ( CArray[byte] $data, int32 $colorspace, int32 $has_alpha, int32 $bits_per_sample, int32 $width, int32 $height, int32 $rowstride, GdkPixbufDestroyNotify $destroy_fn, Pointer $destroy_fn_data )
  returns N-GObject
  is native(&gdk-pixbuf-lib)
  { * }
}}

#-------------------------------------------------------------------------------
#TM:0:gdk_pixbuf_new_from_bytes:
=begin pod
=head2 [gdk_pixbuf_] new_from_bytes



  method gdk_pixbuf_new_from_bytes ( N-GObject $data, GdkColorspace $colorspace, Int $has_alpha, Int $bits_per_sample, Int $width, Int $height, Int $rowstride --> N-GObject  )

=item N-GObject $data;
=item GdkColorspace $colorspace;
=item Int $has_alpha;
=item Int $bits_per_sample;
=item Int $width;
=item Int $height;
=item Int $rowstride;

=end pod

sub gdk_pixbuf_new_from_bytes ( N-GObject $data, int32 $colorspace, int32 $has_alpha, int32 $bits_per_sample, int32 $width, int32 $height, int32 $rowstride )
  returns N-GObject
  is native(&gdk-pixbuf-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gdk_pixbuf_new_from_xpm_data:
=begin pod
=head2 [gdk_pixbuf_] new_from_xpm_data



  method gdk_pixbuf_new_from_xpm_data ( CArray[Str] $data --> N-GObject  )

=item CArray[Str] $data;

=end pod

sub gdk_pixbuf_new_from_xpm_data ( CArray[Str] $data )
  returns N-GObject
  is native(&gdk-pixbuf-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:_gdk_pixbuf_get_from_window:
# Note: belongs to gdk lib
sub _gdk_pixbuf_get_from_window (
  N-GObject $window, int32 $x, int32 $y, int32 $width, int32 $height
  --> N-GObject
) is native(&gdk-lib)
  is symbol('gdk_pixbuf_get_from_window')
  { * }

#-------------------------------------------------------------------------------
#TM:0:_gdk_pixbuf_get_from_surface:
# Note: belongs to gdk lib
sub _gdk_pixbuf_get_from_surface (
  cairo_surface_t $surface, int32 $x, int32 $y, int32 $width, int32 $height
  --> N-GObject
) is native(&gdk-lib)
  is symbol('gdk_pixbuf_get_from_surface')
  { * }

#-------------------------------------------------------------------------------
#TM:0:gdk_pixbuf_fill:
=begin pod
=head2 gdk_pixbuf_fill

Clears a pixbuf to the given RGBA value, converting the RGBA value into
the pixbuf's pixel format. The alpha will be ignored if the pixbuf
doesn't have an alpha channel.


  method gdk_pixbuf_fill ( UInt $pixel )

=item UInt $pixel; RGBA pixel to clear to (0xffffffff is opaque white, 0x00000000 transparent black)

=end pod

sub gdk_pixbuf_fill ( N-GObject $pixbuf, uint32 $pixel )
  is native(&gdk-pixbuf-lib)
  { * }

#`{{
#-------------------------------------------------------------------------------
#TM:0:gdk_pixbuf_save:
=begin pod
=head2 gdk_pixbuf_save

Saves pixbuf to a file in format type . By default, "jpeg", "png", "ico" and "bmp" are possible file formats to save in, but more formats may be installed. The list of all writable formats can be determined in the following way:

  method gdk_pixbuf_save ( Str $filename, Str $type, N-GError $error --> Int  )

=item Str $filename;
=item Str $type;
=item N-GError $error;

=end pod

sub gdk_pixbuf_save ( N-GObject $pixbuf, Str $filename, Str $type, N-GError $error, Any $any = Any )
  returns int32
  is native(&gdk-pixbuf-lib)
  { * }
}}

#-------------------------------------------------------------------------------
#TM:0:gdk_pixbuf_savev:
=begin pod
=head2 gdk_pixbuf_savev

Saves pixbuf to a file in type , which is currently "jpeg", "png", "tiff", "ico" or "bmp". If error is set, a valid B<Gnome::Glib::Error> object will be returned.
A document L<here|https://valadoc.org/gdk-pixbuf-2.0/Gdk.Pixbuf.save.html> describes some of the possible key names and their values. These are repeated below. The items of both arrays must all be strings.

Currently only few parameters exist. JPEG images can be saved with a "quality" parameter; its value should be in the range [0,100]. JPEG and PNG density can be set by setting the "x-dpi" and "y-dpi" parameters to the appropriate values in dots per inch.

Text chunks can be attached to PNG images by specifying parameters of the form "tEXt::key", where key is an ASCII string of length 1-79. The values are UTF-8 encoded strings. The PNG compression level can be specified using the "compression" parameter; it's value is in an integer in the range of [0,9].

ICC color profiles can also be embedded into PNG, JPEG and TIFF images. The "icc-profile" value should be the complete ICC profile encoded into base64.

TIFF images recognize: (1) a "bits-per-sample" option (integer) which can be either 1 for saving bi-level CCITTFAX4 images, or 8 for saving 8-bits per sample; (2) a "compression" option (integer) which can be 1 for no compression, 2 for Huffman, 5 for LZW, 7 for JPEG and 8 for DEFLATE (see the libtiff documentation and tiff.h for all supported codec values); (3) an "icc-profile" option (zero-terminated string) containing a base64 encoded ICC color profile.

ICO images can be saved in depth 16, 24, or 32, by using the "depth" parameter. When the ICO saver is given "x_hot" and "y_hot" parameters, it produces a CUR instead of an ICO.


  method gdk_pixbuf_savev (
    Str $filename, Str $type, Array $option_keys, Array $option_values
    --> Gnome::Glib::Error
  )

=item Str $filename; name of file to save.
=item Str $type; name of file format.
=item Array $option_keys; name of options to set.
=item Array $option_values; values for named options.

=end pod

sub gdk_pixbuf_savev (
  N-GObject $pixbuf, Str $filename, Str $type, Array $keys, Array $values
  --> Gnome::Glib::Error
) {
  my CArray[N-GError] $ga .= new(N-GError);

  my CArray[Str] $option_keys .= new( |@$keys, Str);
  my CArray[Str] $option_values .= new( |@$values, Str);

  _gdk_pixbuf_savev(
    $pixbuf, $filename, $type, $option_keys, $option_values, $ga
  );

  Gnome::Glib::Error.new(:native-object($ga[0]))
}

sub _gdk_pixbuf_savev (
  N-GObject $pixbuf, Str $filename, Str $type,
  CArray[Str] $option_keys, CArray[Str] $option_values, CArray[N-GError] $error
  --> int32
) is native(&gdk-pixbuf-lib)
  is symbol('gdk_pixbuf_savev')
  { * }

#`{{
#-------------------------------------------------------------------------------
#TM:0:gdk_pixbuf_savev_utf8:
=begin pod
=head2 [gdk_pixbuf_] savev_utf8



  method gdk_pixbuf_savev_utf8 ( Str $filename, Str $type, CArray[Str] $option_keys, CArray[Str] $option_values, N-GError $error --> Int  )

=item Str $filename;
=item Str $type;
=item CArray[Str] $option_keys;
=item CArray[Str] $option_values;
=item N-GError $error;

=end pod

sub gdk_pixbuf_savev_utf8 ( N-GObject $pixbuf, Str $filename, Str $type, CArray[Str] $option_keys, CArray[Str] $option_values, N-GError $error )
  is native(&gdk-pixbuf-lib)
  { * }
}}

#`{{
#-------------------------------------------------------------------------------
#TM:0:gdk_pixbuf_save_to_callback:
=begin pod
=head2 [gdk_pixbuf_] save_to_callback



  method gdk_pixbuf_save_to_callback ( GdkPixbufSaveFunc $save_func, Pointer $user_data, Str $type, N-GError $error --> Int  )

=item GdkPixbufSaveFunc $save_func;
=item Pointer $user_data;
=item Str $type;
=item N-GError $error;

=end pod

sub gdk_pixbuf_save_to_callback ( N-GObject $pixbuf, GdkPixbufSaveFunc $save_func, Pointer $user_data, Str $type, N-GError $error, Any $any = Any )
  returns int32
  is native(&gdk-pixbuf-lib)
  { * }
}}
#`{{
#-------------------------------------------------------------------------------
#TM:0:gdk_pixbuf_save_to_callbackv:
=begin pod
=head2 [gdk_pixbuf_] save_to_callbackv



  method gdk_pixbuf_save_to_callbackv ( GdkPixbufSaveFunc $save_func, Pointer $user_data, Str $type, CArray[Str] $option_keys, CArray[Str] $option_values, N-GError $error --> Int  )

=item GdkPixbufSaveFunc $save_func;
=item Pointer $user_data;
=item Str $type;
=item CArray[Str] $option_keys;
=item CArray[Str] $option_values;
=item N-GError $error;

=end pod

sub gdk_pixbuf_save_to_callbackv ( N-GObject $pixbuf, GdkPixbufSaveFunc $save_func, Pointer $user_data, Str $type, CArray[Str] $option_keys, CArray[Str] $option_values, N-GError $error )
  returns int32
  is native(&gdk-pixbuf-lib)
  { * }
}}
#`{{
#-------------------------------------------------------------------------------
#TM:0:gdk_pixbuf_save_to_buffer:
=begin pod
=head2 [gdk_pixbuf_] save_to_buffer



  method gdk_pixbuf_save_to_buffer ( CArray[Str] $buffer, UInt $buffer_size, Str $type, N-GError $error --> Int  )

=item CArray[Str] $buffer;
=item UInt $buffer_size;
=item Str $type;
=item N-GError $error;

=end pod

sub gdk_pixbuf_save_to_buffer ( N-GObject $pixbuf, CArray[Str] $buffer, uint64 $buffer_size, Str $type, N-GError $error, Any $any = Any )
  returns int32
  is native(&gdk-pixbuf-lib)
  { * }
}}

#-------------------------------------------------------------------------------
#TM:0:gdk_pixbuf_save_to_bufferv:
=begin pod
=head2 [gdk_pixbuf_] save_to_bufferv



  method gdk_pixbuf_save_to_bufferv ( CArray[Str] $buffer, UInt $buffer_size, Str $type, CArray[Str] $option_keys, CArray[Str] $option_values, N-GError $error --> Int  )

=item CArray[Str] $buffer;
=item UInt $buffer_size;
=item Str $type;
=item CArray[Str] $option_keys;
=item CArray[Str] $option_values;
=item N-GError $error;

=end pod

sub gdk_pixbuf_save_to_bufferv ( N-GObject $pixbuf, CArray[Str] $buffer, uint64 $buffer_size, Str $type, CArray[Str] $option_keys, CArray[Str] $option_values, N-GError $error )
  returns int32
  is native(&gdk-pixbuf-lib)
  { * }

#`{{
#-------------------------------------------------------------------------------
#TM:FF:gdk_pixbuf_new_from_stream:
=begin pod
=head2 [gdk_pixbuf_] new_from_stream



  method gdk_pixbuf_new_from_stream ( GInputStream $stream, GCancellable $cancellable, N-GError $error --> N-GObject  )

=item GInputStream $stream;
=item GCancellable $cancellable;
=item N-GError $error;

=end pod

sub gdk_pixbuf_new_from_stream ( GInputStream $stream, GCancellable $cancellable, N-GError $error )
  returns N-GObject
  is native(&gdk-pixbuf-lib)
  { * }
}}

#`{{
#-------------------------------------------------------------------------------
#TM:FF:gdk_pixbuf_new_from_stream_async:
=begin pod
=head2 [gdk_pixbuf_] new_from_stream_async



  method gdk_pixbuf_new_from_stream_async ( GInputStream $stream, GCancellable $cancellable, GAsyncReadyCallback $callback, Pointer $user_data )

=item GInputStream $stream;
=item GCancellable $cancellable;
=item GAsyncReadyCallback $callback;
=item Pointer $user_data;

=end pod

sub gdk_pixbuf_new_from_stream_async ( GInputStream $stream, GCancellable $cancellable, GAsyncReadyCallback $callback, Pointer $user_data )
  is native(&gdk-pixbuf-lib)
  { * }
}}
#`{{
#-------------------------------------------------------------------------------
#TM:FF:gdk_pixbuf_new_from_stream_finish:
=begin pod
=head2 [gdk_pixbuf_] new_from_stream_finish



  method gdk_pixbuf_new_from_stream_finish ( GAsyncResult $async_result, N-GError $error --> N-GObject  )

=item GAsyncResult $async_result;
=item N-GError $error;

=end pod

sub gdk_pixbuf_new_from_stream_finish ( GAsyncResult $async_result, N-GError $error )
  returns N-GObject
  is native(&gdk-pixbuf-lib)
  { * }
}}
#`{{
#-------------------------------------------------------------------------------
#TM:FF:gdk_pixbuf_new_from_stream_at_scale:
=begin pod
=head2 [gdk_pixbuf_] new_from_stream_at_scale



  method gdk_pixbuf_new_from_stream_at_scale ( GInputStream $stream, Int $width, Int $height, Int $preserve_aspect_ratio, GCancellable $cancellable, N-GError $error --> N-GObject  )

=item GInputStream $stream;
=item Int $width;
=item Int $height;
=item Int $preserve_aspect_ratio;
=item GCancellable $cancellable;
=item N-GError $error;

=end pod

sub gdk_pixbuf_new_from_stream_at_scale ( GInputStream $stream, int32 $width, int32 $height, int32 $preserve_aspect_ratio, GCancellable $cancellable, N-GError $error )
  returns N-GObject
  is native(&gdk-pixbuf-lib)
  { * }
}}
#`{{
#-------------------------------------------------------------------------------
#TM:FF:gdk_pixbuf_new_from_stream_at_scale_async:
=begin pod
=head2 [gdk_pixbuf_] new_from_stream_at_scale_async



  method gdk_pixbuf_new_from_stream_at_scale_async ( GInputStream $stream, Int $width, Int $height, Int $preserve_aspect_ratio, GCancellable $cancellable, GAsyncReadyCallback $callback, Pointer $user_data )

=item GInputStream $stream;
=item Int $width;
=item Int $height;
=item Int $preserve_aspect_ratio;
=item GCancellable $cancellable;
=item GAsyncReadyCallback $callback;
=item Pointer $user_data;

=end pod

sub gdk_pixbuf_new_from_stream_at_scale_async ( GInputStream $stream, int32 $width, int32 $height, int32 $preserve_aspect_ratio, GCancellable $cancellable, GAsyncReadyCallback $callback, Pointer $user_data )
  is native(&gdk-pixbuf-lib)
  { * }
}}
#`{{
#-------------------------------------------------------------------------------
#TM:FF:gdk_pixbuf_save_to_stream:
=begin pod
=head2 [gdk_pixbuf_] save_to_stream



  method gdk_pixbuf_save_to_stream ( GOutputStream $stream, Str $type, GCancellable $cancellable, N-GError $error --> Int  )

=item GOutputStream $stream;
=item Str $type;
=item GCancellable $cancellable;
=item N-GError $error;

=end pod

sub gdk_pixbuf_save_to_stream ( N-GObject $pixbuf, GOutputStream $stream, Str $type, GCancellable $cancellable, N-GError $error, Any $any = Any )
  returns int32
  is native(&gdk-pixbuf-lib)
  { * }
}}
#`{{
#-------------------------------------------------------------------------------
#TM:FF:gdk_pixbuf_save_to_stream_async:
=begin pod
=head2 [gdk_pixbuf_] save_to_stream_async



  method gdk_pixbuf_save_to_stream_async ( GOutputStream $stream, Str $type, GCancellable $cancellable, GAsyncReadyCallback $callback, Pointer $user_data )

=item GOutputStream $stream;
=item Str $type;
=item GCancellable $cancellable;
=item GAsyncReadyCallback $callback;
=item Pointer $user_data;

=end pod

sub gdk_pixbuf_save_to_stream_async ( N-GObject $pixbuf, GOutputStream $stream, Str $type, GCancellable $cancellable, GAsyncReadyCallback $callback, Pointer $user_data, Any $any = Any )
  is native(&gdk-pixbuf-lib)
  { * }
}}
#`{{
#-------------------------------------------------------------------------------
#TM:FF:gdk_pixbuf_save_to_stream_finish:
=begin pod
=head2 [gdk_pixbuf_] save_to_stream_finish



  method gdk_pixbuf_save_to_stream_finish ( GAsyncResult $async_result, N-GError $error --> Int  )

=item GAsyncResult $async_result;
=item N-GError $error;

=end pod

sub gdk_pixbuf_save_to_stream_finish ( GAsyncResult $async_result, N-GError $error )
  returns int32
  is native(&gdk-pixbuf-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:FF:gdk_pixbuf_save_to_streamv_async:
=begin pod
=head2 [gdk_pixbuf_] save_to_streamv_async



  method gdk_pixbuf_save_to_streamv_async ( GOutputStream $stream, Str $type, CArray[Str] $option_keys, CArray[Str] $option_values, GCancellable $cancellable, GAsyncReadyCallback $callback, Pointer $user_data )

=item GOutputStream $stream;
=item Str $type;
=item CArray[Str] $option_keys;
=item CArray[Str] $option_values;
=item GCancellable $cancellable;
=item GAsyncReadyCallback $callback;
=item Pointer $user_data;

=end pod

sub gdk_pixbuf_save_to_streamv_async ( N-GObject $pixbuf, GOutputStream $stream, Str $type, CArray[Str] $option_keys, CArray[Str] $option_values, GCancellable $cancellable, GAsyncReadyCallback $callback, Pointer $user_data )
  is native(&gdk-pixbuf-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:FF:gdk_pixbuf_save_to_streamv:
=begin pod
=head2 [gdk_pixbuf_] save_to_streamv



  method gdk_pixbuf_save_to_streamv ( GOutputStream $stream, Str $type, CArray[Str] $option_keys, CArray[Str] $option_values, GCancellable $cancellable, N-GError $error --> Int  )

=item GOutputStream $stream;
=item Str $type;
=item CArray[Str] $option_keys;
=item CArray[Str] $option_values;
=item GCancellable $cancellable;
=item N-GError $error;

=end pod

sub gdk_pixbuf_save_to_streamv ( N-GObject $pixbuf, GOutputStream $stream, Str $type, CArray[Str] $option_keys, CArray[Str] $option_values, GCancellable $cancellable, N-GError $error )
  returns int32
  is native(&gdk-pixbuf-lib)
  { * }
}}

#-------------------------------------------------------------------------------
#TM:0:gdk_pixbuf_add_alpha:
=begin pod
=head2 [gdk_pixbuf_] add_alpha



  method gdk_pixbuf_add_alpha ( Int $substitute_color, UInt $r, UInt $g, UInt $b --> N-GObject  )

=item Int $substitute_color;
=item UInt $r;
=item UInt $g;
=item UInt $b;

=end pod

sub gdk_pixbuf_add_alpha ( N-GObject $pixbuf, int32 $substitute_color, byte $r, byte $g, byte $b )
  returns N-GObject
  is native(&gdk-pixbuf-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gdk_pixbuf_copy_area:
=begin pod
=head2 [gdk_pixbuf_] copy_area



  method gdk_pixbuf_copy_area ( Int $src_x, Int $src_y, Int $width, Int $height, N-GObject $dest_pixbuf, Int $dest_x, Int $dest_y )

=item Int $src_x;
=item Int $src_y;
=item Int $width;
=item Int $height;
=item N-GObject $dest_pixbuf;
=item Int $dest_x;
=item Int $dest_y;

=end pod

sub gdk_pixbuf_copy_area ( N-GObject $src_pixbuf, int32 $src_x, int32 $src_y, int32 $width, int32 $height, N-GObject $dest_pixbuf, int32 $dest_x, int32 $dest_y )
  is native(&gdk-pixbuf-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gdk_pixbuf_saturate_and_pixelate:
=begin pod
=head2 [gdk_pixbuf_] saturate_and_pixelate



  method gdk_pixbuf_saturate_and_pixelate ( N-GObject $dest, Num $saturation, Int $pixelate )

=item N-GObject $dest;
=item Num $saturation;
=item Int $pixelate;

=end pod

sub gdk_pixbuf_saturate_and_pixelate ( N-GObject $src, N-GObject $dest, num32 $saturation, int32 $pixelate )
  is native(&gdk-pixbuf-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gdk_pixbuf_apply_embedded_orientation:
=begin pod
=head2 [gdk_pixbuf_] apply_embedded_orientation



  method gdk_pixbuf_apply_embedded_orientation ( --> N-GObject  )


=end pod

sub gdk_pixbuf_apply_embedded_orientation ( N-GObject $src )
  returns N-GObject
  is native(&gdk-pixbuf-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gdk_pixbuf_set_option:
=begin pod
=head2 [gdk_pixbuf_] set_option

Attaches a key/value pair as an option to a B<Gnome::Gdk3::Pixbuf>. If I<key> already
exists in the list of options attached to I<pixbuf>, the new value is
ignored and C<0> is returned.

Return value: C<1> on success.

Since: 2.2

  method gdk_pixbuf_set_option ( Str $key, Str $value --> Int  )

=item Str $key; a nul-terminated string.
=item Str $value; a nul-terminated string.

=end pod

sub gdk_pixbuf_set_option ( N-GObject $pixbuf, Str $key, Str $value )
  returns int32
  is native(&gdk-pixbuf-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gdk_pixbuf_get_option:
=begin pod
=head2 [gdk_pixbuf_] get_option

Looks up I<key> in the list of options that may have been attached to the
I<pixbuf> when it was loaded, or that may have been attached by another
function using C<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.

Return value: the value associated with I<key>. This is a nul-terminated
string that should not be freed or C<Any> if I<key> was not found.

  method gdk_pixbuf_get_option ( Str $key --> Str  )

=item Str $key; a nul-terminated string.

=end pod

sub gdk_pixbuf_get_option ( N-GObject $pixbuf, Str $key )
  returns Str
  is native(&gdk-pixbuf-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gdk_pixbuf_remove_option:
=begin pod
=head2 [gdk_pixbuf_] remove_option

Remove the key/value pair option attached to a B<Gnome::Gdk3::Pixbuf>.

Return value: C<1> if an option was removed, C<0> if not.

Since: 2.36

  method gdk_pixbuf_remove_option ( Str $key --> Int  )

=item Str $key; a nul-terminated string representing the key to remove.

=end pod

sub gdk_pixbuf_remove_option ( N-GObject $pixbuf, Str $key )
  returns int32
  is native(&gdk-pixbuf-lib)
  { * }

#`{{
#-------------------------------------------------------------------------------
#TM:0:gdk_pixbuf_get_options:
=begin pod
=head2 [gdk_pixbuf_] get_options

Returns a B<GHashTable> with a list of all the options that may have been
attached to the I<pixbuf> when it was loaded, or that may have been
attached by another function using C<gdk_pixbuf_set_option()>.

See C<gdk_pixbuf_get_option()> for more details.

Return value: (transfer container) (element-type utf8 utf8): a B<GHashTable> of key/values

Since: 2.32

  method gdk_pixbuf_get_options ( --> GHashTable  )


=end pod

sub gdk_pixbuf_get_options ( N-GObject $pixbuf )
  returns GHashTable
  is native(&gdk-pixbuf-lib)
  { * }
}}

#-------------------------------------------------------------------------------
#TM:0:gdk_pixbuf_copy_options:
=begin pod
=head2 [gdk_pixbuf_] copy_options

Copy the key/value pair options attached to a B<Gnome::Gdk3::Pixbuf> to another.
This is useful to keep original metadata after having manipulated
a file. However be careful to remove metadata which you've already
applied, such as the "orientation" option after rotating the image.

Return value: C<1> on success.

Since: 2.36

  method gdk_pixbuf_copy_options ( N-GObject $dest_pixbuf --> Int  )

=item N-GObject $dest_pixbuf; the B<Gnome::Gdk3::Pixbuf> to copy options to

=end pod

sub gdk_pixbuf_copy_options ( N-GObject $src_pixbuf, N-GObject $dest_pixbuf )
  returns int32
  is native(&gdk-pixbuf-lib)
  { * }


#-------------------------------------------------------------------------------
=begin pod
=head1 Properties

An example of using a string type property of a B<Gnome::Gtk3::Label> object. This is just showing how to set/read a property, not that it is the best way to do it. This is because a) The class initialization often provides some options to set some of the properties and b) the classes provide many methods to modify just those properties. In the case below one can use B<new(:label('my text label'))> or B<gtk_label_set_text('my text label')>.

  my Gnome::Gtk3::Label $label .= new;
  my Gnome::GObject::Value $gv .= new(:init(G_TYPE_STRING));
  $label.g-object-get-property( 'label', $gv);
  $gv.g-value-set-string('my text label');

=head2 Supported properties

=comment #TP:0:n-channels:
=head3 _(Number of Channels


The number of samples per pixel.
Currently, only 3 or 4 samples per pixel are supported.

The B<Gnome::GObject::Value> type of property I<n-channels> is C<G_TYPE_INT>.

=comment #TP:0:colorspace:
=head3 _(Colorspace

_(The colorspace in which the samples are interpreted
Default value: False


The B<Gnome::GObject::Value> type of property I<colorspace> is C<G_TYPE_ENUM>.

=comment #TP:0:has-alpha:
=head3 _(Has Alpha

_(Whether the pixbuf has an alpha channel
Default value: False


The B<Gnome::GObject::Value> type of property I<has-alpha> is C<G_TYPE_BOOLEAN>.

=comment #TP:0:bits-per-sample:
=head3 _(Bits per Sample


The number of bits per sample.
Currently only 8 bit per sample are supported.

The B<Gnome::GObject::Value> type of property I<bits-per-sample> is C<G_TYPE_INT>.

=comment #TP:0:width:
=head3 _(Width



The B<Gnome::GObject::Value> type of property I<width> is C<G_TYPE_INT>.

=comment #TP:0:height:
=head3 _(Height



The B<Gnome::GObject::Value> type of property I<height> is C<G_TYPE_INT>.

=comment #TP:0:rowstride:
=head3 _(Rowstride


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.

The B<Gnome::GObject::Value> type of property I<rowstride> is C<G_TYPE_INT>.

=comment #TP:0:pixels:
=head3 _(Pixels



The B<Gnome::GObject::Value> type of property I<pixels> is C<G_TYPE_POINTER>.

=comment #TP:0:pixel-bytes:
=head3 _(Pixel Bytes



The B<Gnome::GObject::Value> type of property I<pixel-bytes> is C<G_TYPE_BOXED>.
=end pod


