File: //usr/local/ssl/share/gtk-doc/html/gdk-pixbuf/gdk-pixbuf-util.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Utilities</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
<link rel="start" href="index.html" title="The gdk-pixbuf Library">
<link rel="up" href="rn01.html" title="API Reference">
<link rel="prev" href="gdk-pixbuf-gdk-pixbuf-from-drawables.html" title="Drawables to Pixbufs">
<link rel="next" href="gdk-pixbuf-animation.html" title="Animations">
<meta name="generator" content="GTK-Doc V1.6 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="reference" href="rn01.html" title="API Reference">
<link rel="reference" href="rn02.html" title="Tools Reference">
<link rel="index" href="ix01.html" title="Index">
<link rel="index" href="ix02.html" title="Index of deprecated symbols">
<link rel="index" href="ix03.html" title="Index of new symbols in 2.2">
<link rel="index" href="ix04.html" title="Index of new symbols in 2.4">
<link rel="index" href="ix05.html" title="Index of new symbols in 2.6">
<link rel="index" href="ix06.html" title="Index of new symbols in 2.8">
<link rel="appendix" href="apa.html" title="Appendix A. Porting applications from Imlib to gdk-pixbuf">
<link rel="appendix" href="license.html" title="Appendix B. License">
</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="2">
<tr valign="middle">
<td><a accesskey="p" href="gdk-pixbuf-gdk-pixbuf-from-drawables.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="rn01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">The <span class="application">gdk-pixbuf</span> Library</th>
<td><a accesskey="n" href="gdk-pixbuf-animation.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts"><nobr><a href="#id3116818" class="shortcut">Top</a>
 | 
<a href="#id3117492" class="shortcut">Description</a></nobr></td></tr>
</table>
<div class="refentry" lang="en">
<a name="gdk-pixbuf-util"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2>
<a name="id3116818"></a><span class="refentrytitle">Utilities</span>
</h2>
<p>Utilities — Utility and miscellaneous convenience functions.</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<pre class="synopsis">
#include <gdk-pixbuf/gdk-pixbuf.h>
<a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a>* <a href="gdk-pixbuf-util.html#gdk-pixbuf-add-alpha">gdk_pixbuf_add_alpha</a> (const <a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *pixbuf,
<a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> substitute_color,
<a
href="../glib/glib-Basic-Types.html#guchar"
>guchar</a> r,
<a
href="../glib/glib-Basic-Types.html#guchar"
>guchar</a> g,
<a
href="../glib/glib-Basic-Types.html#guchar"
>guchar</a> b);
void <a href="gdk-pixbuf-util.html#gdk-pixbuf-copy-area">gdk_pixbuf_copy_area</a> (const <a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *src_pixbuf,
int src_x,
int src_y,
int width,
int height,
<a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *dest_pixbuf,
int dest_x,
int dest_y);
void <a href="gdk-pixbuf-util.html#gdk-pixbuf-saturate-and-pixelate">gdk_pixbuf_saturate_and_pixelate</a>
(const <a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *src,
<a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *dest,
<a
href="../glib/glib-Basic-Types.html#gfloat"
>gfloat</a> saturation,
<a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> pixelate);
void <a href="gdk-pixbuf-util.html#gdk-pixbuf-fill">gdk_pixbuf_fill</a> (<a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *pixbuf,
<a
href="../glib/glib-Basic-Types.html#guint32"
>guint32</a> pixel);
</pre>
</div>
<div class="refsect1" lang="en">
<a name="id3117492"></a><h2>Description</h2>
<p>
These functions provide miscellaneous utilities for manipulating
pixbufs. The pixel data in pixbufs may of course be manipulated
directly by applications, but several common operations can be
performed by these functions instead.
</p>
</div>
<div class="refsect1" lang="en">
<a name="id3117511"></a><h2>Details</h2>
<div class="refsect2" lang="en">
<a name="id3117521"></a><h3>
<a name="gdk-pixbuf-add-alpha"></a>gdk_pixbuf_add_alpha ()</h3>
<a class="indexterm" name="id3117534"></a><pre class="programlisting"><a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a>* gdk_pixbuf_add_alpha (const <a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *pixbuf,
<a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> substitute_color,
<a
href="../glib/glib-Basic-Types.html#guchar"
>guchar</a> r,
<a
href="../glib/glib-Basic-Types.html#guchar"
>guchar</a> g,
<a
href="../glib/glib-Basic-Types.html#guchar"
>guchar</a> b);</pre>
<p>
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).
</p>
<p>
If <em class="parameter"><code>substitute_color</code></em> is <a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a>, then the color specified by (<em class="parameter"><code>r</code></em>, <em class="parameter"><code>g</code></em>, <em class="parameter"><code>b</code></em>) will be
assigned zero opacity. That is, if you pass (255, 255, 255) for the
substitute color, all white pixels will become fully transparent.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>pixbuf</code></em> :</span></td>
<td> A <a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a>.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>substitute_color</code></em> :</span></td>
<td> Whether to set a color to zero opacity. If this
is <a
href="../glib/glib-Standard-Macros.html#FALSE:CAPS"
><code class="literal">FALSE</code></a>, then the (<em class="parameter"><code>r</code></em>, <em class="parameter"><code>g</code></em>, <em class="parameter"><code>b</code></em>) arguments will be ignored.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>r</code></em> :</span></td>
<td> Red value to substitute.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>g</code></em> :</span></td>
<td> Green value to substitute.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>b</code></em> :</span></td>
<td> Blue value to substitute.
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> A newly-created pixbuf with a reference count of 1.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3117760"></a><h3>
<a name="gdk-pixbuf-copy-area"></a>gdk_pixbuf_copy_area ()</h3>
<a class="indexterm" name="id3117774"></a><pre class="programlisting">void gdk_pixbuf_copy_area (const <a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *src_pixbuf,
int src_x,
int src_y,
int width,
int height,
<a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *dest_pixbuf,
int dest_x,
int dest_y);</pre>
<p>
Copies a rectangular area from <em class="parameter"><code>src_pixbuf</code></em> to <em class="parameter"><code>dest_pixbuf</code></em>. Conversion of
pixbuf formats is done automatically.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>src_pixbuf</code></em> :</span></td>
<td> Source pixbuf.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>src_x</code></em> :</span></td>
<td> Source X coordinate within <em class="parameter"><code>src_pixbuf</code></em>.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>src_y</code></em> :</span></td>
<td> Source Y coordinate within <em class="parameter"><code>src_pixbuf</code></em>.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>width</code></em> :</span></td>
<td> Width of the area to copy.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>height</code></em> :</span></td>
<td> Height of the area to copy.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>dest_pixbuf</code></em> :</span></td>
<td> Destination pixbuf.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>dest_x</code></em> :</span></td>
<td> X coordinate within <em class="parameter"><code>dest_pixbuf</code></em>.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>dest_y</code></em> :</span></td>
<td> Y coordinate within <em class="parameter"><code>dest_pixbuf</code></em>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3118009"></a><h3>
<a name="gdk-pixbuf-saturate-and-pixelate"></a>gdk_pixbuf_saturate_and_pixelate ()</h3>
<a class="indexterm" name="id3118023"></a><pre class="programlisting">void gdk_pixbuf_saturate_and_pixelate
(const <a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *src,
<a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *dest,
<a
href="../glib/glib-Basic-Types.html#gfloat"
>gfloat</a> saturation,
<a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> pixelate);</pre>
<p>
Modifies saturation and optionally pixelates <em class="parameter"><code>src</code></em>, placing the result in
<em class="parameter"><code>dest</code></em>. <em class="parameter"><code>src</code></em> and <em class="parameter"><code>dest</code></em> may be the same pixbuf with no ill effects. If
<em class="parameter"><code>saturation</code></em> 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 <em class="parameter"><code>pixelate</code></em>
is <a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a>, then pixels are faded in a checkerboard pattern to create a
pixelated image. <em class="parameter"><code>src</code></em> and <em class="parameter"><code>dest</code></em> must have the same image format, size, and
rowstride.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>src</code></em> :</span></td>
<td> source image
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>dest</code></em> :</span></td>
<td> place to write modified version of <em class="parameter"><code>src</code></em>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>saturation</code></em> :</span></td>
<td> saturation factor
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>pixelate</code></em> :</span></td>
<td> whether to pixelate
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3118209"></a><h3>
<a name="gdk-pixbuf-fill"></a>gdk_pixbuf_fill ()</h3>
<a class="indexterm" name="id3118222"></a><pre class="programlisting">void gdk_pixbuf_fill (<a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *pixbuf,
<a
href="../glib/glib-Basic-Types.html#guint32"
>guint32</a> pixel);</pre>
<p>
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.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>pixbuf</code></em> :</span></td>
<td> a <a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>pixel</code></em> :</span></td>
<td> RGBA pixel to clear to
(0xffffffff is opaque white, 0x00000000 transparent black)
</td>
</tr>
</tbody>
</table></div>
</div>
</div>
<div class="refsect1" lang="en">
<a name="id3118306"></a><h2>See Also</h2>
<p>
<a href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a>
</p>
</div>
</div>
</body>
</html>