Blob Blame History Raw
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>The GdkPixbuf Structure: GDK-PixBuf Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="GDK-PixBuf Reference Manual">
<link rel="up" href="rn01.html" title="API Reference">
<link rel="prev" href="gdk-pixbuf-Versioning.html" title="Initialization and Versions">
<link rel="next" href="gdk-pixbuf-Reference-Counting-and-Memory-Mangement.html" title="Reference Counting and Memory Mangement">
<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                  <a href="#gdk-pixbuf-The-GdkPixbuf-Structure.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                  <a href="#gdk-pixbuf-The-GdkPixbuf-Structure.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
                  <a href="#gdk-pixbuf-The-GdkPixbuf-Structure.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
                  <a href="#gdk-pixbuf-The-GdkPixbuf-Structure.properties" class="shortcut">Properties</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="rn01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="gdk-pixbuf-Versioning.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="gdk-pixbuf-Reference-Counting-and-Memory-Mangement.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="gdk-pixbuf-The-GdkPixbuf-Structure"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="gdk-pixbuf-The-GdkPixbuf-Structure.top_of_page"></a>The GdkPixbuf Structure</span></h2>
<p>The GdkPixbuf Structure — Information that describes an image.</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="gdk-pixbuf-The-GdkPixbuf-Structure.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_return">
<col class="functions_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkColorspace" title="enum GdkColorspace"><span class="returnvalue">GdkColorspace</span></a>
</td>
<td class="function_name">
<a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#gdk-pixbuf-get-colorspace" title="gdk_pixbuf_get_colorspace ()">gdk_pixbuf_get_colorspace</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#gdk-pixbuf-get-n-channels" title="gdk_pixbuf_get_n_channels ()">gdk_pixbuf_get_n_channels</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#gdk-pixbuf-get-has-alpha" title="gdk_pixbuf_get_has_alpha ()">gdk_pixbuf_get_has_alpha</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#gdk-pixbuf-get-bits-per-sample" title="gdk_pixbuf_get_bits_per_sample ()">gdk_pixbuf_get_bits_per_sample</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">guchar</span> *
</td>
<td class="function_name">
<a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#gdk-pixbuf-get-pixels" title="gdk_pixbuf_get_pixels ()">gdk_pixbuf_get_pixels</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">guchar</span> *
</td>
<td class="function_name">
<a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#gdk-pixbuf-get-pixels-with-length" title="gdk_pixbuf_get_pixels_with_length ()">gdk_pixbuf_get_pixels_with_length</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#gdk-pixbuf-get-width" title="gdk_pixbuf_get_width ()">gdk_pixbuf_get_width</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#gdk-pixbuf-get-height" title="gdk_pixbuf_get_height ()">gdk_pixbuf_get_height</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#gdk-pixbuf-get-rowstride" title="gdk_pixbuf_get_rowstride ()">gdk_pixbuf_get_rowstride</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gsize</span>
</td>
<td class="function_name">
<a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#gdk-pixbuf-get-byte-length" title="gdk_pixbuf_get_byte_length ()">gdk_pixbuf_get_byte_length</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <span class="returnvalue">gchar</span> *
</td>
<td class="function_name">
<a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#gdk-pixbuf-get-option" title="gdk_pixbuf_get_option ()">gdk_pixbuf_get_option</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#gdk-pixbuf-set-option" title="gdk_pixbuf_set_option ()">gdk_pixbuf_set_option</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#gdk-pixbuf-remove-option" title="gdk_pixbuf_remove_option ()">gdk_pixbuf_remove_option</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GHashTable</span> *
</td>
<td class="function_name">
<a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#gdk-pixbuf-get-options" title="gdk_pixbuf_get_options ()">gdk_pixbuf_get_options</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#gdk-pixbuf-copy-options" title="gdk_pixbuf_copy_options ()">gdk_pixbuf_copy_options</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <span class="returnvalue">guint8</span> *
</td>
<td class="function_name">
<a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#gdk-pixbuf-read-pixels" title="gdk_pixbuf_read_pixels ()">gdk_pixbuf_read_pixels</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="gdk-pixbuf-The-GdkPixbuf-Structure.properties"></a><h2>Properties</h2>
<div class="informaltable"><table class="informaltable" border="0">
<colgroup>
<col width="150px" class="properties_type">
<col width="300px" class="properties_name">
<col width="200px" class="properties_flags">
</colgroup>
<tbody>
<tr>
<td class="property_type"><span class="type">gint</span></td>
<td class="property_name"><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf--bits-per-sample" title="The “bits-per-sample” property">bits-per-sample</a></td>
<td class="property_flags">Read / Write / Construct Only</td>
</tr>
<tr>
<td class="property_type"><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkColorspace" title="enum GdkColorspace"><span class="type">GdkColorspace</span></a></td>
<td class="property_name"><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf--colorspace" title="The “colorspace” property">colorspace</a></td>
<td class="property_flags">Read / Write / Construct Only</td>
</tr>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf--has-alpha" title="The “has-alpha” property">has-alpha</a></td>
<td class="property_flags">Read / Write / Construct Only</td>
</tr>
<tr>
<td class="property_type"><span class="type">gint</span></td>
<td class="property_name"><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf--height" title="The “height” property">height</a></td>
<td class="property_flags">Read / Write / Construct Only</td>
</tr>
<tr>
<td class="property_type"><span class="type">gint</span></td>
<td class="property_name"><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf--n-channels" title="The “n-channels” property">n-channels</a></td>
<td class="property_flags">Read / Write / Construct Only</td>
</tr>
<tr>
<td class="property_type">
<span class="type">GBytes</span> *</td>
<td class="property_name"><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf--pixel-bytes" title="The “pixel-bytes” property">pixel-bytes</a></td>
<td class="property_flags">Read / Write / Construct Only</td>
</tr>
<tr>
<td class="property_type"><span class="type">gpointer</span></td>
<td class="property_name"><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf--pixels" title="The “pixels” property">pixels</a></td>
<td class="property_flags">Read / Write / Construct Only</td>
</tr>
<tr>
<td class="property_type"><span class="type">gint</span></td>
<td class="property_name"><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf--rowstride" title="The “rowstride” property">rowstride</a></td>
<td class="property_flags">Read / Write / Construct Only</td>
</tr>
<tr>
<td class="property_type"><span class="type">gint</span></td>
<td class="property_name"><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf--width" title="The “width” property">width</a></td>
<td class="property_flags">Read / Write / Construct Only</td>
</tr>
</tbody>
</table></div>
</div>
<a name="GdkPixbuf"></a><div class="refsect1">
<a name="gdk-pixbuf-The-GdkPixbuf-Structure.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="name">
<col class="description">
</colgroup>
<tbody>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbufError" title="enum GdkPixbufError">GdkPixbufError</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GDK-PIXBUF-ERROR:CAPS" title="GDK_PIXBUF_ERROR">GDK_PIXBUF_ERROR</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkColorspace" title="enum GdkColorspace">GdkColorspace</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbufAlphaMode" title="enum GdkPixbufAlphaMode">GdkPixbufAlphaMode</a></td>
</tr>
<tr>
<td class="datatype_keyword"> </td>
<td class="function_name"><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf-struct" title="GdkPixbuf">GdkPixbuf</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="gdk-pixbuf-The-GdkPixbuf-Structure.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen">    GObject
    <span class="lineart">╰──</span> GdkPixbuf
</pre>
</div>
<div class="refsect1">
<a name="gdk-pixbuf-The-GdkPixbuf-Structure.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
<p>
GdkPixbuf implements
 GIcon and  GLoadableIcon.</p>
</div>
<div class="refsect1">
<a name="gdk-pixbuf-The-GdkPixbuf-Structure.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;gdk-pixbuf/gdk-pixbuf.h&gt;
</pre>
</div>
<div class="refsect1">
<a name="gdk-pixbuf-The-GdkPixbuf-Structure.description"></a><h2>Description</h2>
<p>The <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> structure contains
information that describes an image in memory.</p>
<div class="refsect3">
<a name="image-data"></a><h4>Image Data</h4>
<p>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 <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#gdk-pixbuf-get-rowstride" title="gdk_pixbuf_get_rowstride ()"><code class="function">gdk_pixbuf_get_rowstride()</code></a>, indicates the number
of bytes between rows.</p>
</div>
<div class="refsect3">
<a name="put-pixel"></a><h4>put_pixel() Example</h4>
<p>The following code illustrates a simple <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#put-pixel" title="put_pixel() Example"><code class="function">put_pixel()</code></a>
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.</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
<span class="function">put_pixel</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GdkPixbuf</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">pixbuf</span><span class="symbol">,</span><span class="normal"> </span><span class="type">int</span><span class="normal"> x</span><span class="symbol">,</span><span class="normal"> </span><span class="type">int</span><span class="normal"> y</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">guchar</span><span class="normal"> red</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">guchar</span><span class="normal"> green</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">guchar</span><span class="normal"> blue</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">guchar</span><span class="normal"> alpha</span><span class="symbol">)</span>
<span class="cbracket">{</span>
<span class="normal">  </span><span class="type">int</span><span class="normal"> width</span><span class="symbol">,</span><span class="normal"> height</span><span class="symbol">,</span><span class="normal"> rowstride</span><span class="symbol">,</span><span class="normal"> n_channels</span><span class="symbol">;</span>
<span class="normal">  </span><span class="usertype">guchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">pixels</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">p</span><span class="symbol">;</span>

<span class="normal">  n_channels </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="gdk-pixbuf-The-GdkPixbuf-Structure.html#gdk-pixbuf-get-n-channels">gdk_pixbuf_get_n_channels</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">pixbuf</span><span class="symbol">);</span>

<span class="normal">  </span><span class="function">g_assert</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="gdk-pixbuf-The-GdkPixbuf-Structure.html#gdk-pixbuf-get-colorspace">gdk_pixbuf_get_colorspace</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">pixbuf</span><span class="symbol">)</span><span class="normal"> </span><span class="symbol">==</span><span class="normal"> <a href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GDK-COLORSPACE-RGB:CAPS">GDK_COLORSPACE_RGB</a></span><span class="symbol">);</span>
<span class="normal">  </span><span class="function">g_assert</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="gdk-pixbuf-The-GdkPixbuf-Structure.html#gdk-pixbuf-get-bits-per-sample">gdk_pixbuf_get_bits_per_sample</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">pixbuf</span><span class="symbol">)</span><span class="normal"> </span><span class="symbol">==</span><span class="normal"> </span><span class="number">8</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function">g_assert</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="gdk-pixbuf-The-GdkPixbuf-Structure.html#gdk-pixbuf-get-has-alpha">gdk_pixbuf_get_has_alpha</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">pixbuf</span><span class="symbol">));</span>
<span class="normal">  </span><span class="function">g_assert</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">n_channels </span><span class="symbol">==</span><span class="normal"> </span><span class="number">4</span><span class="symbol">);</span>

<span class="normal">  width </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="gdk-pixbuf-The-GdkPixbuf-Structure.html#gdk-pixbuf-get-width">gdk_pixbuf_get_width</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">pixbuf</span><span class="symbol">);</span>
<span class="normal">  height </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="gdk-pixbuf-The-GdkPixbuf-Structure.html#gdk-pixbuf-get-height">gdk_pixbuf_get_height</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">pixbuf</span><span class="symbol">);</span>

<span class="normal">  </span><span class="function">g_assert</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">x </span><span class="symbol">&gt;=</span><span class="normal"> </span><span class="number">0</span><span class="normal"> </span><span class="symbol">&amp;&amp;</span><span class="normal"> x </span><span class="symbol">&lt;</span><span class="normal"> width</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function">g_assert</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">y </span><span class="symbol">&gt;=</span><span class="normal"> </span><span class="number">0</span><span class="normal"> </span><span class="symbol">&amp;&amp;</span><span class="normal"> y </span><span class="symbol">&lt;</span><span class="normal"> height</span><span class="symbol">);</span>

<span class="normal">  rowstride </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="gdk-pixbuf-The-GdkPixbuf-Structure.html#gdk-pixbuf-get-rowstride">gdk_pixbuf_get_rowstride</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">pixbuf</span><span class="symbol">);</span>
<span class="normal">  pixels </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="gdk-pixbuf-The-GdkPixbuf-Structure.html#gdk-pixbuf-get-pixels">gdk_pixbuf_get_pixels</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">pixbuf</span><span class="symbol">);</span>

<span class="normal">  p </span><span class="symbol">=</span><span class="normal"> pixels </span><span class="symbol">+</span><span class="normal"> y </span><span class="symbol">*</span><span class="normal"> rowstride </span><span class="symbol">+</span><span class="normal"> x </span><span class="symbol">*</span><span class="normal"> n_channels</span><span class="symbol">;</span>
<span class="normal">  p</span><span class="symbol">[</span><span class="number">0</span><span class="symbol">]</span><span class="normal"> </span><span class="symbol">=</span><span class="normal"> red</span><span class="symbol">;</span>
<span class="normal">  p</span><span class="symbol">[</span><span class="number">1</span><span class="symbol">]</span><span class="normal"> </span><span class="symbol">=</span><span class="normal"> green</span><span class="symbol">;</span>
<span class="normal">  p</span><span class="symbol">[</span><span class="number">2</span><span class="symbol">]</span><span class="normal"> </span><span class="symbol">=</span><span class="normal"> blue</span><span class="symbol">;</span>
<span class="normal">  p</span><span class="symbol">[</span><span class="number">3</span><span class="symbol">]</span><span class="normal"> </span><span class="symbol">=</span><span class="normal"> alpha</span><span class="symbol">;</span>
<span class="cbracket">}</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
<p>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.</p>
<p>If you are doing <code class="function">memcpy()</code> of raw pixbuf data, 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 <code class="literal">memcpy (dest, pixels, rowstride * height)</code> to copy a whole pixbuf.
Use <a class="link" href="gdk-pixbuf-Image-Data-in-Memory.html#gdk-pixbuf-copy" title="gdk_pixbuf_copy ()"><code class="function">gdk_pixbuf_copy()</code></a> instead, or compute the width in bytes of the
last row as <code class="literal">width * ((n_channels * bits_per_sample + 7) / 8)</code>.</p>
</div>
</div>
<div class="refsect1">
<a name="gdk-pixbuf-The-GdkPixbuf-Structure.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="gdk-pixbuf-get-colorspace"></a><h3>gdk_pixbuf_get_colorspace ()</h3>
<pre class="programlisting"><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkColorspace" title="enum GdkColorspace"><span class="returnvalue">GdkColorspace</span></a>
gdk_pixbuf_get_colorspace (<em class="parameter"><code>const <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *pixbuf</code></em>);</pre>
<p>Queries the color space of a pixbuf.</p>
<div class="refsect3">
<a name="gdk-pixbuf-get-colorspace.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>pixbuf</p></td>
<td class="parameter_description"><p>A pixbuf.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdk-pixbuf-get-colorspace.returns"></a><h4>Returns</h4>
<p> Color space.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gdk-pixbuf-get-n-channels"></a><h3>gdk_pixbuf_get_n_channels ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
gdk_pixbuf_get_n_channels (<em class="parameter"><code>const <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *pixbuf</code></em>);</pre>
<p>Queries the number of channels of a pixbuf.</p>
<div class="refsect3">
<a name="gdk-pixbuf-get-n-channels.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>pixbuf</p></td>
<td class="parameter_description"><p>A pixbuf.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdk-pixbuf-get-n-channels.returns"></a><h4>Returns</h4>
<p> Number of channels.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gdk-pixbuf-get-has-alpha"></a><h3>gdk_pixbuf_get_has_alpha ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gdk_pixbuf_get_has_alpha (<em class="parameter"><code>const <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *pixbuf</code></em>);</pre>
<p>Queries whether a pixbuf has an alpha channel (opacity information).</p>
<div class="refsect3">
<a name="gdk-pixbuf-get-has-alpha.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>pixbuf</p></td>
<td class="parameter_description"><p>A pixbuf.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdk-pixbuf-get-has-alpha.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if it has an alpha channel, <code class="literal">FALSE</code> otherwise.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gdk-pixbuf-get-bits-per-sample"></a><h3>gdk_pixbuf_get_bits_per_sample ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
gdk_pixbuf_get_bits_per_sample (<em class="parameter"><code>const <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *pixbuf</code></em>);</pre>
<p>Queries the number of bits per color sample in a pixbuf.</p>
<div class="refsect3">
<a name="gdk-pixbuf-get-bits-per-sample.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>pixbuf</p></td>
<td class="parameter_description"><p>A pixbuf.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdk-pixbuf-get-bits-per-sample.returns"></a><h4>Returns</h4>
<p> Number of bits per color sample.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gdk-pixbuf-get-pixels"></a><h3>gdk_pixbuf_get_pixels ()</h3>
<pre class="programlisting"><span class="returnvalue">guchar</span> *
gdk_pixbuf_get_pixels (<em class="parameter"><code>const <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *pixbuf</code></em>);</pre>
<p>Queries a pointer to the pixel data of a pixbuf.</p>
<div class="refsect3">
<a name="gdk-pixbuf-get-pixels.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>pixbuf</p></td>
<td class="parameter_description"><p>A pixbuf.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdk-pixbuf-get-pixels.returns"></a><h4>Returns</h4>
<p>A pointer to the pixbuf's pixel data.
Please see the section on <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#image-data" title="Image Data">image data</a> for information
about how the pixel data is stored in memory.</p>
<p>This function will cause an implicit copy of the pixbuf data if the
pixbuf was created from read-only data. </p>
<p><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gdk-pixbuf-get-pixels-with-length"></a><h3>gdk_pixbuf_get_pixels_with_length ()</h3>
<pre class="programlisting"><span class="returnvalue">guchar</span> *
gdk_pixbuf_get_pixels_with_length (<em class="parameter"><code>const <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *pixbuf</code></em>,
                                   <em class="parameter"><code><span class="type">guint</span> *length</code></em>);</pre>
<p>Queries a pointer to the pixel data of a pixbuf.</p>
<p><span class="annotation">[<acronym title="Rename the original symbol's name to SYMBOL."><span class="acronym">rename-to</span></acronym> gdk_pixbuf_get_pixels]</span></p>
<div class="refsect3">
<a name="gdk-pixbuf-get-pixels-with-length.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>pixbuf</p></td>
<td class="parameter_description"><p>A pixbuf.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>length</p></td>
<td class="parameter_description"><p>The length of the binary data. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdk-pixbuf-get-pixels-with-length.returns"></a><h4>Returns</h4>
<p>A pointer to the pixbuf's
pixel data.  Please see the section on <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#image-data" title="Image Data">image data</a>
for information about how the pixel data is stored in memory.</p>
<p>This function will cause an implicit copy of the pixbuf data if the
pixbuf was created from read-only data. </p>
<p><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=length]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-26.html#api-index-2.26">2.26</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdk-pixbuf-get-width"></a><h3>gdk_pixbuf_get_width ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
gdk_pixbuf_get_width (<em class="parameter"><code>const <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *pixbuf</code></em>);</pre>
<p>Queries the width of a pixbuf.</p>
<div class="refsect3">
<a name="gdk-pixbuf-get-width.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>pixbuf</p></td>
<td class="parameter_description"><p>A pixbuf.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdk-pixbuf-get-width.returns"></a><h4>Returns</h4>
<p> Width in pixels.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gdk-pixbuf-get-height"></a><h3>gdk_pixbuf_get_height ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
gdk_pixbuf_get_height (<em class="parameter"><code>const <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *pixbuf</code></em>);</pre>
<p>Queries the height of a pixbuf.</p>
<div class="refsect3">
<a name="gdk-pixbuf-get-height.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>pixbuf</p></td>
<td class="parameter_description"><p>A pixbuf.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdk-pixbuf-get-height.returns"></a><h4>Returns</h4>
<p> Height in pixels.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gdk-pixbuf-get-rowstride"></a><h3>gdk_pixbuf_get_rowstride ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
gdk_pixbuf_get_rowstride (<em class="parameter"><code>const <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *pixbuf</code></em>);</pre>
<p>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.</p>
<div class="refsect3">
<a name="gdk-pixbuf-get-rowstride.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>pixbuf</p></td>
<td class="parameter_description"><p>A pixbuf.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdk-pixbuf-get-rowstride.returns"></a><h4>Returns</h4>
<p> Distance between row starts.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gdk-pixbuf-get-byte-length"></a><h3>gdk_pixbuf_get_byte_length ()</h3>
<pre class="programlisting"><span class="returnvalue">gsize</span>
gdk_pixbuf_get_byte_length (<em class="parameter"><code>const <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *pixbuf</code></em>);</pre>
<p>Returns the length of the pixel data, in bytes.</p>
<div class="refsect3">
<a name="gdk-pixbuf-get-byte-length.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>pixbuf</p></td>
<td class="parameter_description"><p>A pixbuf</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdk-pixbuf-get-byte-length.returns"></a><h4>Returns</h4>
<p> The length of the pixel data.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-26.html#api-index-2.26">2.26</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdk-pixbuf-get-option"></a><h3>gdk_pixbuf_get_option ()</h3>
<pre class="programlisting">const <span class="returnvalue">gchar</span> *
gdk_pixbuf_get_option (<em class="parameter"><code><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *pixbuf</code></em>,
                       <em class="parameter"><code>const <span class="type">gchar</span> *key</code></em>);</pre>
<p>Looks up <em class="parameter"><code>key</code></em>
 in the list of options that may have been attached to the
<em class="parameter"><code>pixbuf</code></em>
 when it was loaded, or that may have been attached by another
function using <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#gdk-pixbuf-set-option" title="gdk_pixbuf_set_option ()"><code class="function">gdk_pixbuf_set_option()</code></a>.</p>
<p>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.</p>
<div class="refsect3">
<a name="gdk-pixbuf-get-option.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>pixbuf</p></td>
<td class="parameter_description"><p>a <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>key</p></td>
<td class="parameter_description"><p>a nul-terminated string.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdk-pixbuf-get-option.returns"></a><h4>Returns</h4>
<p> the value associated with <em class="parameter"><code>key</code></em>
. This is a nul-terminated
string that should not be freed or <code class="literal">NULL</code> if <em class="parameter"><code>key</code></em>
was not found.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gdk-pixbuf-set-option"></a><h3>gdk_pixbuf_set_option ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gdk_pixbuf_set_option (<em class="parameter"><code><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *pixbuf</code></em>,
                       <em class="parameter"><code>const <span class="type">gchar</span> *key</code></em>,
                       <em class="parameter"><code>const <span class="type">gchar</span> *value</code></em>);</pre>
<p>Attaches a key/value pair as an option to a <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a>. If <em class="parameter"><code>key</code></em>
 already
exists in the list of options attached to <em class="parameter"><code>pixbuf</code></em>
, the new value is 
ignored and <code class="literal">FALSE</code> is returned.</p>
<div class="refsect3">
<a name="gdk-pixbuf-set-option.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>pixbuf</p></td>
<td class="parameter_description"><p>a <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>key</p></td>
<td class="parameter_description"><p>a nul-terminated string.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>value</p></td>
<td class="parameter_description"><p>a nul-terminated string.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdk-pixbuf-set-option.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> on success.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-2.html#api-index-2.2">2.2</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdk-pixbuf-remove-option"></a><h3>gdk_pixbuf_remove_option ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gdk_pixbuf_remove_option (<em class="parameter"><code><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *pixbuf</code></em>,
                          <em class="parameter"><code>const <span class="type">gchar</span> *key</code></em>);</pre>
<p>Remove the key/value pair option attached to a <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a>.</p>
<div class="refsect3">
<a name="gdk-pixbuf-remove-option.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>pixbuf</p></td>
<td class="parameter_description"><p>a <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>key</p></td>
<td class="parameter_description"><p>a nul-terminated string representing the key to remove.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdk-pixbuf-remove-option.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if an option was removed, <code class="literal">FALSE</code> if not.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-36.html#api-index-2.36">2.36</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdk-pixbuf-get-options"></a><h3>gdk_pixbuf_get_options ()</h3>
<pre class="programlisting"><span class="returnvalue">GHashTable</span> *
gdk_pixbuf_get_options (<em class="parameter"><code><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *pixbuf</code></em>);</pre>
<p>Returns a <span class="type">GHashTable</span> with a list of all the options that may have been
attached to the <em class="parameter"><code>pixbuf</code></em>
 when it was loaded, or that may have been
attached by another function using <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#gdk-pixbuf-set-option" title="gdk_pixbuf_set_option ()"><code class="function">gdk_pixbuf_set_option()</code></a>.</p>
<p>See <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#gdk-pixbuf-get-option" title="gdk_pixbuf_get_option ()"><code class="function">gdk_pixbuf_get_option()</code></a> for more details.</p>
<div class="refsect3">
<a name="gdk-pixbuf-get-options.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>pixbuf</p></td>
<td class="parameter_description"><p>a <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdk-pixbuf-get-options.returns"></a><h4>Returns</h4>
<p>a <span class="type">GHashTable</span> of key/values. </p>
<p><span class="annotation">[<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8 utf8]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-32.html#api-index-2.32">2.32</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdk-pixbuf-copy-options"></a><h3>gdk_pixbuf_copy_options ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gdk_pixbuf_copy_options (<em class="parameter"><code><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *src_pixbuf</code></em>,
                         <em class="parameter"><code><a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *dest_pixbuf</code></em>);</pre>
<p>Copy the key/value pair options attached to a <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> 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.</p>
<div class="refsect3">
<a name="gdk-pixbuf-copy-options.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>src_pixbuf</p></td>
<td class="parameter_description"><p>a <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> to copy options from</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>dest_pixbuf</p></td>
<td class="parameter_description"><p>the <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> to copy options to</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdk-pixbuf-copy-options.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> on success.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-36.html#api-index-2.36">2.36</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdk-pixbuf-read-pixels"></a><h3>gdk_pixbuf_read_pixels ()</h3>
<pre class="programlisting">const <span class="returnvalue">guint8</span> *
gdk_pixbuf_read_pixels (<em class="parameter"><code>const <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *pixbuf</code></em>);</pre>
<p>Returns a read-only pointer to the raw pixel data; must not be
modified.  This function allows skipping the implicit copy that
must be made if <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#gdk-pixbuf-get-pixels" title="gdk_pixbuf_get_pixels ()"><code class="function">gdk_pixbuf_get_pixels()</code></a> is called on a read-only
pixbuf.</p>
<div class="refsect3">
<a name="gdk-pixbuf-read-pixels.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>pixbuf</p></td>
<td class="parameter_description"><p>A pixbuf</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-2-32.html#api-index-2.32">2.32</a></p>
</div>
</div>
<div class="refsect1">
<a name="gdk-pixbuf-The-GdkPixbuf-Structure.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GdkPixbufError"></a><h3>enum GdkPixbufError</h3>
<p>An error code in the <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GDK-PIXBUF-ERROR:CAPS" title="GDK_PIXBUF_ERROR"><span class="type">GDK_PIXBUF_ERROR</span></a> domain. Many gdk-pixbuf
operations can cause errors in this domain, or in the <span class="type">G_FILE_ERROR</span>
domain.</p>
<div class="refsect3">
<a name="GdkPixbufError.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="GDK-PIXBUF-ERROR-CORRUPT-IMAGE:CAPS"></a>GDK_PIXBUF_ERROR_CORRUPT_IMAGE</p></td>
<td class="enum_member_description">
<p>An image file was broken somehow.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GDK-PIXBUF-ERROR-INSUFFICIENT-MEMORY:CAPS"></a>GDK_PIXBUF_ERROR_INSUFFICIENT_MEMORY</p></td>
<td class="enum_member_description">
<p>Not enough memory.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GDK-PIXBUF-ERROR-BAD-OPTION:CAPS"></a>GDK_PIXBUF_ERROR_BAD_OPTION</p></td>
<td class="enum_member_description">
<p>A bad option was passed to a pixbuf save module.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GDK-PIXBUF-ERROR-UNKNOWN-TYPE:CAPS"></a>GDK_PIXBUF_ERROR_UNKNOWN_TYPE</p></td>
<td class="enum_member_description">
<p>Unknown image type.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GDK-PIXBUF-ERROR-UNSUPPORTED-OPERATION:CAPS"></a>GDK_PIXBUF_ERROR_UNSUPPORTED_OPERATION</p></td>
<td class="enum_member_description">
<p>Don't know how to perform the
 given operation on the type of image at hand.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GDK-PIXBUF-ERROR-FAILED:CAPS"></a>GDK_PIXBUF_ERROR_FAILED</p></td>
<td class="enum_member_description">
<p>Generic failure code, something went wrong.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GDK-PIXBUF-ERROR-INCOMPLETE-ANIMATION:CAPS"></a>GDK_PIXBUF_ERROR_INCOMPLETE_ANIMATION</p></td>
<td class="enum_member_description">
<p>Only part of the animation was loaded.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GDK-PIXBUF-ERROR:CAPS"></a><h3>GDK_PIXBUF_ERROR</h3>
<pre class="programlisting">#define GDK_PIXBUF_ERROR gdk_pixbuf_error_quark ()
</pre>
<p>Error domain used for pixbuf operations. Indicates that the error code
will be in the <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbufError" title="enum GdkPixbufError"><span class="type">GdkPixbufError</span></a> enumeration. See <span class="type">GError</span> for
information on error domains and error codes.</p>
</div>
<hr>
<div class="refsect2">
<a name="GdkColorspace"></a><h3>enum GdkColorspace</h3>
<p>This enumeration defines the color spaces that are supported by
the gdk-pixbuf library.  Currently only RGB is supported.</p>
<div class="refsect3">
<a name="GdkColorspace.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody><tr>
<td class="enum_member_name"><p><a name="GDK-COLORSPACE-RGB:CAPS"></a>GDK_COLORSPACE_RGB</p></td>
<td class="enum_member_description">
<p>Indicates a red/green/blue additive color space.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GdkPixbufAlphaMode"></a><h3>enum GdkPixbufAlphaMode</h3>
<p>These values can be passed to
<a class="link" href="gdk-pixbuf-Xlib-Rendering.html#gdk-pixbuf-xlib-render-to-drawable-alpha" title="gdk_pixbuf_xlib_render_to_drawable_alpha ()"><code class="function">gdk_pixbuf_xlib_render_to_drawable_alpha()</code></a> to control how the alpha
channel of an image should be handled.  This function can create a
bilevel clipping mask (black and white) and use it while painting
the image.  In the future, when the X Window System gets an alpha
channel extension, it will be possible to do full alpha
compositing onto arbitrary drawables.  For now both cases fall
back to a bilevel clipping mask.</p>
<div class="refsect3">
<a name="GdkPixbufAlphaMode.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="GDK-PIXBUF-ALPHA-BILEVEL:CAPS"></a>GDK_PIXBUF_ALPHA_BILEVEL</p></td>
<td class="enum_member_description">
<p>A bilevel clipping mask (black and white)
 will be created and used to draw the image.  Pixels below 0.5 opacity
 will be considered fully transparent, and all others will be
 considered fully opaque.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GDK-PIXBUF-ALPHA-FULL:CAPS"></a>GDK_PIXBUF_ALPHA_FULL</p></td>
<td class="enum_member_description">
<p>For now falls back to <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GDK-PIXBUF-ALPHA-BILEVEL:CAPS"><span class="type">GDK_PIXBUF_ALPHA_BILEVEL</span></a>.
 In the future it will do full alpha compositing.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GdkPixbuf-struct"></a><h3>GdkPixbuf</h3>
<pre class="programlisting">typedef struct _GdkPixbuf GdkPixbuf;</pre>
<p>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).</p>
</div>
</div>
<div class="refsect1">
<a name="gdk-pixbuf-The-GdkPixbuf-Structure.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="GdkPixbuf--bits-per-sample"></a><h3>The <code class="literal">“bits-per-sample”</code> property</h3>
<pre class="programlisting">  “bits-per-sample”          <span class="type">gint</span></pre>
<p>The number of bits per sample.

Currently only 8 bit per sample are supported.</p>
<p>Flags: Read / Write / Construct Only</p>
<p>Allowed values: [1,16]</p>
<p>Default value: 8</p>
</div>
<hr>
<div class="refsect2">
<a name="GdkPixbuf--colorspace"></a><h3>The <code class="literal">“colorspace”</code> property</h3>
<pre class="programlisting">  “colorspace”               <a class="link" href="gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkColorspace" title="enum GdkColorspace"><span class="type">GdkColorspace</span></a></pre>
<p>The colorspace in which the samples are interpreted.</p>
<p>Flags: Read / Write / Construct Only</p>
<p>Default value: GDK_COLORSPACE_RGB</p>
</div>
<hr>
<div class="refsect2">
<a name="GdkPixbuf--has-alpha"></a><h3>The <code class="literal">“has-alpha”</code> property</h3>
<pre class="programlisting">  “has-alpha”                <span class="type">gboolean</span></pre>
<p>Whether the pixbuf has an alpha channel.</p>
<p>Flags: Read / Write / Construct Only</p>
<p>Default value: FALSE</p>
</div>
<hr>
<div class="refsect2">
<a name="GdkPixbuf--height"></a><h3>The <code class="literal">“height”</code> property</h3>
<pre class="programlisting">  “height”                   <span class="type">gint</span></pre>
<p>The number of rows of the pixbuf.</p>
<p>Flags: Read / Write / Construct Only</p>
<p>Allowed values: &gt;= 1</p>
<p>Default value: 1</p>
</div>
<hr>
<div class="refsect2">
<a name="GdkPixbuf--n-channels"></a><h3>The <code class="literal">“n-channels”</code> property</h3>
<pre class="programlisting">  “n-channels”               <span class="type">gint</span></pre>
<p>The number of samples per pixel.

Currently, only 3 or 4 samples per pixel are supported.</p>
<p>Flags: Read / Write / Construct Only</p>
<p>Allowed values: &gt;= 0</p>
<p>Default value: 3</p>
</div>
<hr>
<div class="refsect2">
<a name="GdkPixbuf--pixel-bytes"></a><h3>The <code class="literal">“pixel-bytes”</code> property</h3>
<pre class="programlisting">  “pixel-bytes”              <span class="type">GBytes</span> *</pre>
<p>Readonly pixel data.</p>
<p>Flags: Read / Write / Construct Only</p>
</div>
<hr>
<div class="refsect2">
<a name="GdkPixbuf--pixels"></a><h3>The <code class="literal">“pixels”</code> property</h3>
<pre class="programlisting">  “pixels”                   <span class="type">gpointer</span></pre>
<p>A pointer to the pixel data of the pixbuf.</p>
<p>Flags: Read / Write / Construct Only</p>
</div>
<hr>
<div class="refsect2">
<a name="GdkPixbuf--rowstride"></a><h3>The <code class="literal">“rowstride”</code> property</h3>
<pre class="programlisting">  “rowstride”                <span class="type">gint</span></pre>
<p>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.</p>
<p>Flags: Read / Write / Construct Only</p>
<p>Allowed values: &gt;= 1</p>
<p>Default value: 1</p>
</div>
<hr>
<div class="refsect2">
<a name="GdkPixbuf--width"></a><h3>The <code class="literal">“width”</code> property</h3>
<pre class="programlisting">  “width”                    <span class="type">gint</span></pre>
<p>The number of columns of the pixbuf.</p>
<p>Flags: Read / Write / Construct Only</p>
<p>Allowed values: &gt;= 1</p>
<p>Default value: 1</p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.27</div>
</body>
</html>