Sophie

Sophie

distrib > * > 2010.0 > * > by-pkgid > b36c97ff723e66f0f38bce83645c99dc > files > 284

exiv2-doc-0.18.2-1mdv2010.0.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Exiv2: Exiv2::ImageFactory Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="classes.html"><span>Class&nbsp;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="namespaceExiv2.html">Exiv2</a>::<a class="el" href="classExiv2_1_1ImageFactory.html">ImageFactory</a>
  </div>
</div>
<div class="contents">
<h1>Exiv2::ImageFactory Class Reference</h1><!-- doxytag: class="Exiv2::ImageFactory" -->Returns an <a class="el" href="classExiv2_1_1Image.html" title="Abstract base class defining the interface for an image. This is the top-level interface...">Image</a> instance of the specified type.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;image.hpp&gt;</code>
<p>

<p>
<a href="classExiv2_1_1ImageFactory-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classExiv2_1_1Image.html#89ad3ffe7a4e8a943d267d77843415fb">Image::AutoPtr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1ImageFactory.html#981013bdf0d31ec7f64f0f6339fe323e">open</a> (const std::string &amp;path)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create an <a class="el" href="classExiv2_1_1Image.html" title="Abstract base class defining the interface for an image. This is the top-level interface...">Image</a> subclass of the appropriate type by reading the specified file. Image type is derived from the file contents.  <a href="#981013bdf0d31ec7f64f0f6339fe323e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classExiv2_1_1Image.html#89ad3ffe7a4e8a943d267d77843415fb">Image::AutoPtr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1ImageFactory.html#5130bcd72fdcd2765ac40dfec3060c06">open</a> (const <a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> *data, long size)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create an <a class="el" href="classExiv2_1_1Image.html" title="Abstract base class defining the interface for an image. This is the top-level interface...">Image</a> subclass of the appropriate type by reading the provided memory. Image type is derived from the memory contents.  <a href="#5130bcd72fdcd2765ac40dfec3060c06"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classExiv2_1_1Image.html#89ad3ffe7a4e8a943d267d77843415fb">Image::AutoPtr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1ImageFactory.html#b5634be654818fe1ad9d9911ef04ffe3">open</a> (<a class="el" href="classExiv2_1_1BasicIo.html#f8f989522925b884d8c9d3a257265fa1">BasicIo::AutoPtr</a> io)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create an <a class="el" href="classExiv2_1_1Image.html" title="Abstract base class defining the interface for an image. This is the top-level interface...">Image</a> subclass of the appropriate type by reading the provided <a class="el" href="classExiv2_1_1BasicIo.html" title="An interface for simple binary IO.">BasicIo</a> instance. Image type is derived from the data provided by <em>io</em>. The passed in <em>io</em> instance is (re)opened by this method.  <a href="#b5634be654818fe1ad9d9911ef04ffe3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classExiv2_1_1Image.html#89ad3ffe7a4e8a943d267d77843415fb">Image::AutoPtr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1ImageFactory.html#66e3b04ee1e62cd0f978995def1fd495">create</a> (int type, const std::string &amp;path)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create an <a class="el" href="classExiv2_1_1Image.html" title="Abstract base class defining the interface for an image. This is the top-level interface...">Image</a> subclass of the requested type by creating a new image file. If the file already exists, it will be overwritten.  <a href="#66e3b04ee1e62cd0f978995def1fd495"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classExiv2_1_1Image.html#89ad3ffe7a4e8a943d267d77843415fb">Image::AutoPtr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1ImageFactory.html#436ea4f6d7f213d389e3e9ec10264a83">create</a> (int type)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create an <a class="el" href="classExiv2_1_1Image.html" title="Abstract base class defining the interface for an image. This is the top-level interface...">Image</a> subclass of the requested type by creating a new image in memory.  <a href="#436ea4f6d7f213d389e3e9ec10264a83"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classExiv2_1_1Image.html#89ad3ffe7a4e8a943d267d77843415fb">Image::AutoPtr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1ImageFactory.html#047254c8b06726cc0c3733e066a0bc97">create</a> (int type, <a class="el" href="classExiv2_1_1BasicIo.html#f8f989522925b884d8c9d3a257265fa1">BasicIo::AutoPtr</a> io)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create an <a class="el" href="classExiv2_1_1Image.html" title="Abstract base class defining the interface for an image. This is the top-level interface...">Image</a> subclass of the requested type by writing a new image to a <a class="el" href="classExiv2_1_1BasicIo.html" title="An interface for simple binary IO.">BasicIo</a> instance. If the <a class="el" href="classExiv2_1_1BasicIo.html" title="An interface for simple binary IO.">BasicIo</a> instance already contains data, it will be overwritten.  <a href="#047254c8b06726cc0c3733e066a0bc97"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1ImageFactory.html#93387c43470e70c700e1addb92907c40">getType</a> (const std::string &amp;path)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the image type of the provided file.  <a href="#93387c43470e70c700e1addb92907c40"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1ImageFactory.html#5b0f62579f4a9945f525f952cb86619e">getType</a> (const <a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> *data, long size)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the image type of the provided data buffer.  <a href="#5b0f62579f4a9945f525f952cb86619e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1ImageFactory.html#bd5d3ab76420ec7db45cc2105f4e5907">getType</a> (<a class="el" href="classExiv2_1_1BasicIo.html">BasicIo</a> &amp;io)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the image type of data provided by a <a class="el" href="classExiv2_1_1BasicIo.html" title="An interface for simple binary IO.">BasicIo</a> instance. The passed in <em>io</em> instance is (re)opened by this method.  <a href="#bd5d3ab76420ec7db45cc2105f4e5907"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="namespaceExiv2.html#f5f0ea6c944c786f7c4c4841fa22b16c">AccessMode</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1ImageFactory.html#2953661dfbe37cf916e4fdeb5ef5c519">checkMode</a> (int type, <a class="el" href="namespaceExiv2.html#cca494c8cf80f3ac8a804e1b54afffca">MetadataId</a> metadataId)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the access mode or supported metadata functions for an image type and a metadata type.  <a href="#2953661dfbe37cf916e4fdeb5ef5c519"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1ImageFactory.html#f9aa6dad41f17eb012d8d18e291d19f9">checkType</a> (int type, <a class="el" href="classExiv2_1_1BasicIo.html">BasicIo</a> &amp;io, bool advance)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine if the content of <em>io</em> is an image of <em>type</em>.  <a href="#f9aa6dad41f17eb012d8d18e291d19f9"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Friends</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5bebd97ef7c9c246e33ab1892cff87af"></a><!-- doxytag: member="Exiv2::ImageFactory::Image::good" ref="5bebd97ef7c9c246e33ab1892cff87af" args="() const " -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>Image::good</b> () const </td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Returns an <a class="el" href="classExiv2_1_1Image.html" title="Abstract base class defining the interface for an image. This is the top-level interface...">Image</a> instance of the specified type. 
<p>
The factory is implemented as a static class. <hr><h2>Member Function Documentation</h2>
<a class="anchor" name="2953661dfbe37cf916e4fdeb5ef5c519"></a><!-- doxytag: member="Exiv2::ImageFactory::checkMode" ref="2953661dfbe37cf916e4fdeb5ef5c519" args="(int type, MetadataId metadataId)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespaceExiv2.html#f5f0ea6c944c786f7c4c4841fa22b16c">AccessMode</a> Exiv2::ImageFactory::checkMode           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceExiv2.html#cca494c8cf80f3ac8a804e1b54afffca">MetadataId</a>&nbsp;</td>
          <td class="paramname"> <em>metadataId</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the access mode or supported metadata functions for an image type and a metadata type. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>The image type. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>metadataId</em>&nbsp;</td><td>The metadata identifier. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Access mode for the requested image type and metadata identifier. </dd></dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>Error(13)</em>&nbsp;</td><td>if the image type is not supported. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="types_8hpp_source.html#l00449">Exiv2::find()</a>.</p>

</div>
</div><p>
<a class="anchor" name="f9aa6dad41f17eb012d8d18e291d19f9"></a><!-- doxytag: member="Exiv2::ImageFactory::checkType" ref="f9aa6dad41f17eb012d8d18e291d19f9" args="(int type, BasicIo &amp;io, bool advance)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Exiv2::ImageFactory::checkType           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classExiv2_1_1BasicIo.html">BasicIo</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>io</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>advance</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Determine if the content of <em>io</em> is an image of <em>type</em>. 
<p>
The <em>advance</em> flag determines if the read position in the stream is moved (see below). This applies only if the type matches and the function returns true. If the type does not match, the stream position is not changed. However, if reading from the stream fails, the stream position is undefined. Consult the stream state to obtain more information in this case.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>Type of the image. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>io</em>&nbsp;</td><td><a class="el" href="classExiv2_1_1BasicIo.html" title="An interface for simple binary IO.">BasicIo</a> instance to read from. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>advance</em>&nbsp;</td><td>Flag indicating whether the position of the io should be advanced by the number of characters read to analyse the data (true) or left at its original position (false). This applies only if the type matches. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>true if the data matches the type of this class;<br>
 false if the data does not match </dd></dl>

<p>References <a class="el" href="types_8hpp_source.html#l00449">Exiv2::find()</a>.</p>

<p>Referenced by <a class="el" href="image_8cpp_source.html#l00231">Exiv2::Image::good()</a>.</p>

</div>
</div><p>
<a class="anchor" name="047254c8b06726cc0c3733e066a0bc97"></a><!-- doxytag: member="Exiv2::ImageFactory::create" ref="047254c8b06726cc0c3733e066a0bc97" args="(int type, BasicIo::AutoPtr io)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classExiv2_1_1Image.html#89ad3ffe7a4e8a943d267d77843415fb">Image::AutoPtr</a> Exiv2::ImageFactory::create           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classExiv2_1_1BasicIo.html#f8f989522925b884d8c9d3a257265fa1">BasicIo::AutoPtr</a>&nbsp;</td>
          <td class="paramname"> <em>io</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create an <a class="el" href="classExiv2_1_1Image.html" title="Abstract base class defining the interface for an image. This is the top-level interface...">Image</a> subclass of the requested type by writing a new image to a <a class="el" href="classExiv2_1_1BasicIo.html" title="An interface for simple binary IO.">BasicIo</a> instance. If the <a class="el" href="classExiv2_1_1BasicIo.html" title="An interface for simple binary IO.">BasicIo</a> instance already contains data, it will be overwritten. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>Type of the image to be created. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>io</em>&nbsp;</td><td>An auto-pointer that owns a <a class="el" href="classExiv2_1_1BasicIo.html" title="An interface for simple binary IO.">BasicIo</a> instance that will be written to when creating a new image. </td></tr>
  </table>
</dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>This method takes ownership of the passed in <a class="el" href="classExiv2_1_1BasicIo.html" title="An interface for simple binary IO.">BasicIo</a> instance through the auto-pointer. Callers should not continue to use the <a class="el" href="classExiv2_1_1BasicIo.html" title="An interface for simple binary IO.">BasicIo</a> instance after it is passed to this method. Use the <a class="el" href="classExiv2_1_1Image.html#5b4560b599ff50e28e3dc31fba62431e" title="Return a reference to the BasicIo instance being used for Io.">Image::io()</a> method to get a temporary reference. </dd></dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>An auto-pointer that owns an <a class="el" href="classExiv2_1_1Image.html" title="Abstract base class defining the interface for an image. This is the top-level interface...">Image</a> instance of the requested type. If the image type is not supported, the pointer is 0. </dd></dl>

<p>References <a class="el" href="types_8hpp_source.html#l00449">Exiv2::find()</a>.</p>

</div>
</div><p>
<a class="anchor" name="436ea4f6d7f213d389e3e9ec10264a83"></a><!-- doxytag: member="Exiv2::ImageFactory::create" ref="436ea4f6d7f213d389e3e9ec10264a83" args="(int type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classExiv2_1_1Image.html#89ad3ffe7a4e8a943d267d77843415fb">Image::AutoPtr</a> Exiv2::ImageFactory::create           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>type</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create an <a class="el" href="classExiv2_1_1Image.html" title="Abstract base class defining the interface for an image. This is the top-level interface...">Image</a> subclass of the requested type by creating a new image in memory. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>Type of the image to be created. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>An auto-pointer that owns an <a class="el" href="classExiv2_1_1Image.html" title="Abstract base class defining the interface for an image. This is the top-level interface...">Image</a> instance of the requested type. </dd></dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classExiv2_1_1Error.html" title="Simple error class used for exceptions. An output operator is provided to print errors...">Error</a></em>&nbsp;</td><td>If the image type is not supported </td></tr>
  </table>
</dl>

<p>References <a class="el" href="image_8cpp_source.html#l00335">create()</a>.</p>

</div>
</div><p>
<a class="anchor" name="66e3b04ee1e62cd0f978995def1fd495"></a><!-- doxytag: member="Exiv2::ImageFactory::create" ref="66e3b04ee1e62cd0f978995def1fd495" args="(int type, const std::string &amp;path)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classExiv2_1_1Image.html#89ad3ffe7a4e8a943d267d77843415fb">Image::AutoPtr</a> Exiv2::ImageFactory::create           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>path</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create an <a class="el" href="classExiv2_1_1Image.html" title="Abstract base class defining the interface for an image. This is the top-level interface...">Image</a> subclass of the requested type by creating a new image file. If the file already exists, it will be overwritten. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>Type of the image to be created. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>path</em>&nbsp;</td><td>Image file to create. File extension is ignored. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>An auto-pointer that owns an <a class="el" href="classExiv2_1_1Image.html" title="Abstract base class defining the interface for an image. This is the top-level interface...">Image</a> instance of the requested type. </dd></dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classExiv2_1_1Error.html" title="Simple error class used for exceptions. An output operator is provided to print errors...">Error</a></em>&nbsp;</td><td>If the image type is not supported. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="namespaceExiv2.html#086796c27d01f4618a158a0e56905f72">Exiv2::strError()</a>.</p>

<p>Referenced by <a class="el" href="image_8cpp_source.html#l00350">create()</a>.</p>

</div>
</div><p>
<a class="anchor" name="bd5d3ab76420ec7db45cc2105f4e5907"></a><!-- doxytag: member="Exiv2::ImageFactory::getType" ref="bd5d3ab76420ec7db45cc2105f4e5907" args="(BasicIo &amp;io)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int Exiv2::ImageFactory::getType           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classExiv2_1_1BasicIo.html">BasicIo</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>io</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the image type of data provided by a <a class="el" href="classExiv2_1_1BasicIo.html" title="An interface for simple binary IO.">BasicIo</a> instance. The passed in <em>io</em> instance is (re)opened by this method. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>io</em>&nbsp;</td><td>A <a class="el" href="classExiv2_1_1BasicIo.html" title="An interface for simple binary IO.">BasicIo</a> instance that provides image data. The contents of the image data are tested to determine the type. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Image type or Image::none if the type is not recognized. </dd></dl>

<p>References <a class="el" href="image_8hpp_source.html#l00058">Exiv2::ImageType::none</a>, and <a class="el" href="classExiv2_1_1BasicIo.html#1beff0dcdf03510bad13b6946379c5f2">Exiv2::BasicIo::open()</a>.</p>

</div>
</div><p>
<a class="anchor" name="5b0f62579f4a9945f525f952cb86619e"></a><!-- doxytag: member="Exiv2::ImageFactory::getType" ref="5b0f62579f4a9945f525f952cb86619e" args="(const byte *data, long size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int Exiv2::ImageFactory::getType           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&nbsp;</td>
          <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the image type of the provided data buffer. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>Pointer to a data buffer containing an image. The contents of the memory are tested to determine the image type. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>Number of bytes pointed to by <em>data</em>. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Image type or Image::none if the type is not recognized. </dd></dl>

<p>References <a class="el" href="image_8cpp_source.html#l00282">getType()</a>.</p>

</div>
</div><p>
<a class="anchor" name="93387c43470e70c700e1addb92907c40"></a><!-- doxytag: member="Exiv2::ImageFactory::getType" ref="93387c43470e70c700e1addb92907c40" args="(const std::string &amp;path)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int Exiv2::ImageFactory::getType           </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>path</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the image type of the provided file. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>path</em>&nbsp;</td><td>Image file. The contents of the file are tested to determine the image type. File extension is ignored. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Image type or Image::none if the type is not recognized. </dd></dl>

<p>Referenced by <a class="el" href="image_8cpp_source.html#l00288">getType()</a>.</p>

</div>
</div><p>
<a class="anchor" name="b5634be654818fe1ad9d9911ef04ffe3"></a><!-- doxytag: member="Exiv2::ImageFactory::open" ref="b5634be654818fe1ad9d9911ef04ffe3" args="(BasicIo::AutoPtr io)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classExiv2_1_1Image.html#89ad3ffe7a4e8a943d267d77843415fb">Image::AutoPtr</a> Exiv2::ImageFactory::open           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classExiv2_1_1BasicIo.html#f8f989522925b884d8c9d3a257265fa1">BasicIo::AutoPtr</a>&nbsp;</td>
          <td class="paramname"> <em>io</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create an <a class="el" href="classExiv2_1_1Image.html" title="Abstract base class defining the interface for an image. This is the top-level interface...">Image</a> subclass of the appropriate type by reading the provided <a class="el" href="classExiv2_1_1BasicIo.html" title="An interface for simple binary IO.">BasicIo</a> instance. Image type is derived from the data provided by <em>io</em>. The passed in <em>io</em> instance is (re)opened by this method. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>io</em>&nbsp;</td><td>An auto-pointer that owns a <a class="el" href="classExiv2_1_1BasicIo.html" title="An interface for simple binary IO.">BasicIo</a> instance that provides image data. The contents of the image data are tested to determine the type. </td></tr>
  </table>
</dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>This method takes ownership of the passed in <a class="el" href="classExiv2_1_1BasicIo.html" title="An interface for simple binary IO.">BasicIo</a> instance through the auto-pointer. Callers should not continue to use the <a class="el" href="classExiv2_1_1BasicIo.html" title="An interface for simple binary IO.">BasicIo</a> instance after it is passed to this method. Use the <a class="el" href="classExiv2_1_1Image.html#5b4560b599ff50e28e3dc31fba62431e" title="Return a reference to the BasicIo instance being used for Io.">Image::io()</a> method to get a temporary reference. </dd></dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>An auto-pointer that owns an <a class="el" href="classExiv2_1_1Image.html" title="Abstract base class defining the interface for an image. This is the top-level interface...">Image</a> instance whose type matches that of the <em>io</em> data. If no image type could be determined, the pointer is 0. </dd></dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classExiv2_1_1Error.html" title="Simple error class used for exceptions. An output operator is provided to print errors...">Error</a></em>&nbsp;</td><td>If opening the <a class="el" href="classExiv2_1_1BasicIo.html" title="An interface for simple binary IO.">BasicIo</a> fails </td></tr>
  </table>
</dl>

<p>References <a class="el" href="image_8hpp_source.html#l00058">Exiv2::ImageType::none</a>, and <a class="el" href="namespaceExiv2.html#086796c27d01f4618a158a0e56905f72">Exiv2::strError()</a>.</p>

</div>
</div><p>
<a class="anchor" name="5130bcd72fdcd2765ac40dfec3060c06"></a><!-- doxytag: member="Exiv2::ImageFactory::open" ref="5130bcd72fdcd2765ac40dfec3060c06" args="(const byte *data, long size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classExiv2_1_1Image.html#89ad3ffe7a4e8a943d267d77843415fb">Image::AutoPtr</a> Exiv2::ImageFactory::open           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&nbsp;</td>
          <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create an <a class="el" href="classExiv2_1_1Image.html" title="Abstract base class defining the interface for an image. This is the top-level interface...">Image</a> subclass of the appropriate type by reading the provided memory. Image type is derived from the memory contents. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>Pointer to a data buffer containing an image. The contents of the memory are tested to determine the image type. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>Number of bytes pointed to by <em>data</em>. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>An auto-pointer that owns an <a class="el" href="classExiv2_1_1Image.html" title="Abstract base class defining the interface for an image. This is the top-level interface...">Image</a> instance whose type matches that of the data buffer. </dd></dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classExiv2_1_1Error.html" title="Simple error class used for exceptions. An output operator is provided to print errors...">Error</a></em>&nbsp;</td><td>If the memory contains data of an unknown image type. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="image_8cpp_source.html#l00306">open()</a>.</p>

</div>
</div><p>
<a class="anchor" name="981013bdf0d31ec7f64f0f6339fe323e"></a><!-- doxytag: member="Exiv2::ImageFactory::open" ref="981013bdf0d31ec7f64f0f6339fe323e" args="(const std::string &amp;path)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classExiv2_1_1Image.html#89ad3ffe7a4e8a943d267d77843415fb">Image::AutoPtr</a> Exiv2::ImageFactory::open           </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>path</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create an <a class="el" href="classExiv2_1_1Image.html" title="Abstract base class defining the interface for an image. This is the top-level interface...">Image</a> subclass of the appropriate type by reading the specified file. Image type is derived from the file contents. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>path</em>&nbsp;</td><td>Image file. The contents of the file are tested to determine the image type. File extension is ignored. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>An auto-pointer that owns an <a class="el" href="classExiv2_1_1Image.html" title="Abstract base class defining the interface for an image. This is the top-level interface...">Image</a> instance whose type matches that of the file. </dd></dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classExiv2_1_1Error.html" title="Simple error class used for exceptions. An output operator is provided to print errors...">Error</a></em>&nbsp;</td><td>If opening the file fails or it contains data of an unknown image type. </td></tr>
  </table>
</dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="addmoddel_8cpp-example.html#a18">addmoddel.cpp</a>, <a class="el" href="exifcomment_8cpp-example.html#a0">exifcomment.cpp</a>, <a class="el" href="exifprint_8cpp-example.html#a0">exifprint.cpp</a>, <a class="el" href="iptceasy_8cpp-example.html#a4">iptceasy.cpp</a>, and <a class="el" href="iptcprint_8cpp-example.html#a0">iptcprint.cpp</a>.</dl>
<p>Referenced by <a class="el" href="actions_8cpp_source.html#l01107">Action::Insert::insertThumbnail()</a>, <a class="el" href="actions_8cpp_source.html#l01082">Action::Insert::insertXmpPacket()</a>, <a class="el" href="image_8cpp_source.html#l00314">open()</a>, <a class="el" href="actions_8cpp_source.html#l00645">Action::Print::printComment()</a>, <a class="el" href="actions_8cpp_source.html#l00474">Action::Print::printList()</a>, <a class="el" href="actions_8cpp_source.html#l00662">Action::Print::printPreviewList()</a>, <a class="el" href="actions_8cpp_source.html#l00247">Action::Print::printSummary()</a>, <a class="el" href="actions_8cpp_source.html#l01511">Action::FixIso::run()</a>, <a class="el" href="actions_8cpp_source.html#l01375">Action::Adjust::run()</a>, <a class="el" href="actions_8cpp_source.html#l01140">Action::Modify::run()</a>, <a class="el" href="actions_8cpp_source.html#l00787">Action::Erase::run()</a>, <a class="el" href="actions_8cpp_source.html#l00702">Action::Rename::run()</a>, <a class="el" href="actions_8cpp_source.html#l00976">Action::Extract::writePreviews()</a>, and <a class="el" href="actions_8cpp_source.html#l00934">Action::Extract::writeThumbnail()</a>.</p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="image_8hpp.html">image.hpp</a><li>image.cpp</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Jun 25 15:17:58 2009 for Exiv2 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>