<!-- 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: cmyk.hpp Source File</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>cmyk.hpp</h1><a href="cmyk_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment">    Copyright 2005-2007 Adobe Systems Incorporated</span>
<a name="l00003"></a>00003 <span class="comment">   </span>
<a name="l00004"></a>00004 <span class="comment">    Use, modification and distribution are subject to the Boost Software License,</span>
<a name="l00005"></a>00005 <span class="comment">    Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at</span>
<a name="l00006"></a>00006 <span class="comment">    http://www.boost.org/LICENSE_1_0.txt).</span>
<a name="l00007"></a>00007 <span class="comment"></span>
<a name="l00008"></a>00008 <span class="comment">    See http://opensource.adobe.com/gil for most recent version including documentation.</span>
<a name="l00009"></a>00009 <span class="comment">*/</span>
<a name="l00010"></a>00010 
<a name="l00011"></a>00011 <span class="comment">/*************************************************************************************************/</span>
<a name="l00012"></a>00012 
<a name="l00013"></a>00013 <span class="preprocessor">#ifndef GIL_CMYK_H</span>
<a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor">#define GIL_CMYK_H</span>
<a name="l00015"></a>00015 <span class="preprocessor"></span>
<a name="l00023"></a>00023 
<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;cstddef&gt;</span>
<a name="l00025"></a>00025 <span class="preprocessor">#include "<a class="code" href="g_i_l_0094.html" title="GIL configuration file.">gil_config.hpp</a>"</span>
<a name="l00026"></a>00026 <span class="preprocessor">#include "<a class="code" href="g_i_l_0238.html" title="metafunctions that construct types or return type properties">metafunctions.hpp</a>"</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;boost/mpl/range_c.hpp&gt;</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;boost/mpl/vector_c.hpp&gt;</span>
<a name="l00029"></a>00029 
<a name="l00030"></a>00030 <span class="keyword">namespace </span>boost { <span class="keyword">namespace </span>gil {
<a name="l00031"></a>00031 
<a name="l00032"></a>00032 
<a name="l00035"></a>00035 
<a name="l00037"></a><a class="code" href="g_i_l_0448.html">00037</a> <span class="keyword">struct </span><a class="code" href="g_i_l_0448.html" title="Cyan.">cyan_t</a> {};    
<a name="l00038"></a>00038 
<a name="l00040"></a><a class="code" href="g_i_l_0574.html">00040</a> <span class="keyword">struct </span><a class="code" href="g_i_l_0574.html" title="Magenta.">magenta_t</a> {};
<a name="l00041"></a>00041 
<a name="l00043"></a><a class="code" href="g_i_l_0637.html">00043</a> <span class="keyword">struct </span><a class="code" href="g_i_l_0637.html" title="Yellow.">yellow_t</a> {}; 
<a name="l00044"></a>00044 
<a name="l00046"></a><a class="code" href="g_i_l_0404.html">00046</a> <span class="keyword">struct </span><a class="code" href="g_i_l_0404.html" title="Black.">black_t</a> {};
<a name="l00048"></a>00048 
<a name="l00050"></a>00050 <span class="keyword">typedef</span> mpl::vector4&lt;cyan_t,magenta_t,yellow_t,black_t&gt;  cmyk_t;
<a name="l00051"></a>00051 
<a name="l00053"></a>00053 <span class="keyword">typedef</span> <a class="code" href="g_i_l_0567.html" title="Represents a color space and ordering of channels in memory.">layout&lt;cmyk_t&gt;</a> <a class="code" href="g_i_l_0567.html" title="Represents a color space and ordering of channels in memory.">cmyk_layout_t</a>;
<a name="l00054"></a>00054 
<a name="l00057"></a>00057 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> IC&gt;
<a name="l00058"></a>00058 <span class="keyword">inline</span> <span class="keyword">typename</span> <a class="code" href="g_i_l_0627.html" title="Given a pixel iterator defining access to pixels along a row, returns the types of...">type_from_x_iterator&lt;planar_pixel_iterator&lt;IC,cmyk_t&gt;</a> &gt;::view_t
<a name="l00059"></a><a class="code" href="g_i_l_0140.html#g3f0ccd91f2f5d214040a8665f7a26497">00059</a> <a class="code" href="g_i_l_0140.html#g3f0ccd91f2f5d214040a8665f7a26497" title="from raw CMYK planar data">planar_cmyk_view</a>(std::size_t width, std::size_t height, IC c, IC m, IC y, IC k, std::ptrdiff_t rowsize_in_bytes) {
<a name="l00060"></a>00060     <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="g_i_l_0627.html" title="Given a pixel iterator defining access to pixels along a row, returns the types of...">type_from_x_iterator&lt;planar_pixel_iterator&lt;IC,cmyk_t&gt;</a> &gt;::view_t RView;
<a name="l00061"></a>00061     <span class="keywordflow">return</span> RView(width, height, <span class="keyword">typename</span> RView::locator(<a class="code" href="g_i_l_0609.html" title="An iterator over planar pixels. Models HomogeneousColorBaseConcept, PixelIteratorConcept...">planar_pixel_iterator&lt;IC,cmyk_t&gt;</a>(c,m,y,k), rowsize_in_bytes));
<a name="l00062"></a>00062 }
<a name="l00063"></a>00063 
<a name="l00064"></a>00064 } }  <span class="comment">// namespace gil</span>
<a name="l00065"></a>00065 
<a name="l00066"></a>00066 <span class="preprocessor">#endif</span>
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat May 2 13:50:13 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>
