<!-- 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: PixelConvertibleConcept Struct Template 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="namespaceboost.html">boost</a>::<b>gil</b>::<a class="el" href="g_i_l_0348.html">PixelConvertibleConcept</a>
  </div>
<div class="contents">
<h1>PixelConvertibleConcept Struct Template Reference<br>
<small>
[<a class="el" href="g_i_l_0183.html">Concepts</a>]</small>
</h1><!-- doxytag: class="boost::gil::PixelConvertibleConcept" --><code>#include &lt;<a class="el" href="g_i_l_0091.html">gil_concept.hpp</a>&gt;</code>
<p>

<p>
<a href="g_i_l_0347.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
<h3>template&lt;typename SrcP, typename DstP&gt;<br>
 struct boost::gil::PixelConvertibleConcept&lt; SrcP, DstP &gt;</h3>

Pixel convertible concept. 
<p>
Convertibility is non-symmetric and implies that one <a class="el" href="g_i_l_0599.html" title="Represents a pixel value (a container of channels). Models: HomogeneousColorBaseValueConcept...">pixel</a> can be converted to another, approximating the color. Conversion is explicit and sometimes lossy. <div class="fragment"><pre class="fragment"><span class="keyword">template</span> &lt;PixelConcept SrcPixel, MutablePixelConcept DstPixel&gt;
concept PixelConvertibleConcept {
    <span class="keywordtype">void</span> <a class="code" href="g_i_l_0178.html#gaa258d34eafbf9d9e34a2a2ad6131af2" title="helper function for converting one pixel to another using GIL default color-converters...">color_convert</a>(<span class="keyword">const</span> SrcPixel&amp;, DstPixel&amp;);
};
</pre></div> <table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b0a0dbf6ca9028bbbb2240cad5882537"></a><!-- doxytag: member="boost::gil::PixelConvertibleConcept::constraints" ref="b0a0dbf6ca9028bbbb2240cad5882537" args="()" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>constraints</b> ()</td></tr>

<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fffe1b4d6fe2b0cdc20ba404e4f54b47"></a><!-- doxytag: member="boost::gil::PixelConvertibleConcept::src" ref="fffe1b4d6fe2b0cdc20ba404e4f54b47" args="" -->
SrcP&nbsp;</td><td class="memItemRight" valign="bottom"><b>src</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ef41afe26e5a67972135a8dd7c6c9626"></a><!-- doxytag: member="boost::gil::PixelConvertibleConcept::dst" ref="ef41afe26e5a67972135a8dd7c6c9626" args="" -->
DstP&nbsp;</td><td class="memItemRight" valign="bottom"><b>dst</b></td></tr>

</table>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="g_i_l_0091.html">gil_concept.hpp</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat May 2 13:50:17 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>
