<!-- 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: any_image.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>&nbsp;&raquo&nbsp;<a class="el" href="g_i_l_0078.html">extension</a>&nbsp;&raquo&nbsp;<a class="el" href="g_i_l_0075.html">dynamic_image</a>
  </div>
<div class="contents">
<h1>any_image.hpp File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
Support for run-time instantiated images and image views. 
<p>
<dl class="author" compact><dt><b>Author:</b></dt><dd>Lubomir Bourdev and Hailin Jin <br>
 Adobe Systems Incorporated </dd></dl>

<p>
<code>#include &quot;<a class="el" href="g_i_l_0003.html">any_image_view.hpp</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="g_i_l_0223.html">../../image.hpp</a>&quot;</code><br>

<p>
<a href="g_i_l_0002.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 class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><b>boost::gil::detail</b></td></tr>

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

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Represents a run-time specified <a class="el" href="g_i_l_0038.html" title="container interface over image view. Models ImageConcept, PixelBasedConcept">image</a>. Note it does NOT model <a class="el" href="g_i_l_0306.html" title="2-dimensional image whose value type models PixelValueConcept">ImageConcept</a>.  <a href="g_i_l_0018.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>view, const_view</h2></td></tr>
<tr><td colspan="2">Get an image view from a run-time instantiated image <br><br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="g55e45a15dddfc0d870c2f7fb9739cb2e"></a><!-- doxytag: member="any_image.hpp::view" ref="g55e45a15dddfc0d870c2f7fb9739cb2e" args="(any_image&lt; Types &gt; &amp;anyImage)" -->
template&lt;typename Types&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE any_image<br>
&lt; Types &gt;::view_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="g_i_l_0135.html#g55e45a15dddfc0d870c2f7fb9739cb2e">view</a> (any_image&lt; Types &gt; &amp;anyImage)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the non-constant-pixel view of any <a class="el" href="g_i_l_0038.html" title="container interface over image view. Models ImageConcept, PixelBasedConcept">image</a>. The returned view is any view. <br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="g9e185237819e788838a0d337d21ab722"></a><!-- doxytag: member="any_image.hpp::const_view" ref="g9e185237819e788838a0d337d21ab722" args="(const any_image&lt; Types &gt; &amp;anyImage)" -->
template&lt;typename Types&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE any_image<br>
&lt; Types &gt;::const_view_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="g_i_l_0135.html#g9e185237819e788838a0d337d21ab722">const_view</a> (const any_image&lt; Types &gt; &amp;anyImage)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the constant-pixel view of any <a class="el" href="g_i_l_0038.html" title="container interface over image view. Models ImageConcept, PixelBasedConcept">image</a>. The returned view is any view. <br></td></tr>
</table>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat May 2 13:50:15 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>
