<!-- Copyright 2008 Lubomir Bourdev and Hailin Jin

     Distributed under the Boost Software License, Version 1.0.
     (See accompanying file LICENSE_1_0.txt or copy at
     http://www.boost.org/LICENSE_1_0.txt)
  -->

<!--
    Copyright 2005-2007 Adobe Systems Incorporated
    Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt
    or a copy at http://stlab.adobe.com/licenses.html)

    Some files are held under additional license.
    Please see "http://stlab.adobe.com/licenses.html" for more information.
-->

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">

<head>
    <TITLE>Generic Image Library: rgb.hpp File Reference</TITLE>
    <META HTTP-EQUIV="content-type" CONTENT="text/html;charset=ISO-8859-1"/>
    <LINK TYPE="text/css" REL="stylesheet" HREF="adobe_source.css"/>
</head>
<body>
<table border="0" cellspacing="0" cellpadding="0" style='width: 100%; margin: 0; padding: 0'><tr>
<td width="100%" valign="top" style='padding-left: 10px; padding-right: 10px; padding-bottom: 10px'>
<div class="qindex"><a class="qindex" href="index.html">Modules</a> 
                  | <a class="qindex" href="classes.html">Alphabetical List</a> 
                  | <a class="qindex" href="annotated.html">Class List</a> 
                  | <a class="qindex" href="dirs.html">Directories</a> 
                  | <a class="qindex" href="files.html">File List</a> 
                  | <a class="qindex" href="../index.html">GIL Home Page</a> 
</div>
<!-- End Header -->
<!-- Generated by Doxygen 1.5.6 -->
  <div class="navpath"><a class="el" href="g_i_l_0076.html">boost</a>&nbsp;&raquo&nbsp;<a class="el" href="g_i_l_0079.html">gil</a>
  </div>
<div class="contents">
<h1>rgb.hpp File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
Support for RGB color space and variants. 
<p>
<dl class="author" compact><dt><b>Author:</b></dt><dd>Lubomir Bourdev and Hailin Jin <br>
 Adobe Systems Incorporated </dd></dl>
<dl class="date" compact><dt><b>Date:</b></dt><dd>2005-2007 <br>
 Last updated on October 10, 2007 </dd></dl>

<p>
<code>#include &lt;cstddef&gt;</code><br>
<code>#include &lt;boost/mpl/range_c.hpp&gt;</code><br>
<code>#include &lt;boost/mpl/vector_c.hpp&gt;</code><br>
<code>#include &quot;<a class="el" href="g_i_l_0093.html">gil_config.hpp</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="g_i_l_0237.html">metafunctions.hpp</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="g_i_l_0246.html">planar_pixel_iterator.hpp</a>&quot;</code><br>

<p>
<a href="rgb_8hpp-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Namespaces</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><b>boost::gil</b></td></tr>

<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0618.html">red_t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Red.  <a href="g_i_l_0618.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0537.html">green_t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Green.  <a href="g_i_l_0537.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0405.html">blue_t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Blue.  <a href="g_i_l_0405.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g50218e9d22c4225fa6ff361c55a374b0"></a><!-- doxytag: member="rgb.hpp::rgb_t" ref="g50218e9d22c4225fa6ff361c55a374b0" args="" -->
typedef mpl::vector3&lt; red_t, <br>
green_t, blue_t &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><b>rgb_t</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g98af6fd6874c0579b5576333c45bead8"></a><!-- doxytag: member="rgb.hpp::rgb_layout_t" ref="g98af6fd6874c0579b5576333c45bead8" args="" -->
typedef layout&lt; rgb_t &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><b>rgb_layout_t</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc1f366961a6cb936eeb5612506bdfd37"></a><!-- doxytag: member="rgb.hpp::bgr_layout_t" ref="gc1f366961a6cb936eeb5612506bdfd37" args="" -->
typedef layout&lt; rgb_t, <br>
mpl::vector3_c&lt; int, 2, 1, 0 &gt; &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><b>bgr_layout_t</b></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="g294f43780e7b88f43b91fdd6346cb51b"></a><!-- doxytag: member="rgb.hpp::planar_rgb_view" ref="g294f43780e7b88f43b91fdd6346cb51b" args="(std::size_t width, std::size_t height, IC r, IC g, IC b, std::ptrdiff_t rowsize_in_bytes)" -->
template&lt;typename IC&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">type_from_x_iterator<br>
&lt; planar_pixel_iterator&lt; IC, <br>
rgb_t &gt; &gt;::view_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="g_i_l_0140.html#g294f43780e7b88f43b91fdd6346cb51b">planar_rgb_view</a> (std::size_t width, std::size_t height, IC r, IC g, IC b, std::ptrdiff_t rowsize_in_bytes)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">from raw RGB planar data <br></td></tr>
</table>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat May 2 13:50:16 2009 for Generic Image Library by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>
