Sophie

Sophie

distrib > Mageia > 5 > x86_64 > media > core-updates > by-pkgid > 12cd2b60e7ffa1b93f26cacdd7197eb9 > files > 228

exiv2-doc-0.24-5.1.mga5.noarch.rpm

<!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">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>Exiv2: Exiv2::ExifParser Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Exiv2
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;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>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceExiv2.html">Exiv2</a></li><li class="navelem"><a class="el" href="classExiv2_1_1ExifParser.html">ExifParser</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="classExiv2_1_1ExifParser-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">Exiv2::ExifParser Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Stateless parser class for Exif data. Images use this class to decode and encode binary Exif data.  
 <a href="classExiv2_1_1ExifParser.html#details">More...</a></p>

<p><code>#include &lt;exif.hpp&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a0a1965f73e968b9b9b26ba254585f0de"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespaceExiv2.html#a94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1ExifParser.html#a0a1965f73e968b9b9b26ba254585f0de">decode</a> (<a class="el" href="classExiv2_1_1ExifData.html">ExifData</a> &amp;exifData, const <a class="el" href="namespaceExiv2.html#a16f60a5bd4207fe155f6cf93a15efa72">byte</a> *pData, uint32_t size)</td></tr>
<tr class="memdesc:a0a1965f73e968b9b9b26ba254585f0de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode metadata from a buffer <em>pData</em> of length <em>size</em> with binary Exif data to the provided metadata container.  <a href="#a0a1965f73e968b9b9b26ba254585f0de">More...</a><br /></td></tr>
<tr class="separator:a0a1965f73e968b9b9b26ba254585f0de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aadab9ea4fdff24670cd8a973aa0690f8"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespaceExiv2.html#aabfd4f86ce5d686323498c42cfd6cde7">WriteMethod</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1ExifParser.html#aadab9ea4fdff24670cd8a973aa0690f8">encode</a> (<a class="el" href="namespaceExiv2.html#a6e7b9a2ef47caec919b15f1ae6ff4872">Blob</a> &amp;blob, const <a class="el" href="namespaceExiv2.html#a16f60a5bd4207fe155f6cf93a15efa72">byte</a> *pData, uint32_t size, <a class="el" href="namespaceExiv2.html#a94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder, const <a class="el" href="classExiv2_1_1ExifData.html">ExifData</a> &amp;exifData)</td></tr>
<tr class="memdesc:aadab9ea4fdff24670cd8a973aa0690f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode Exif metadata from the provided metadata to binary Exif format.  <a href="#aadab9ea4fdff24670cd8a973aa0690f8">More...</a><br /></td></tr>
<tr class="separator:aadab9ea4fdff24670cd8a973aa0690f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2109bba0b2b538470d3f0c2f25dd471a"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1ExifParser.html#a2109bba0b2b538470d3f0c2f25dd471a">encode</a> (<a class="el" href="namespaceExiv2.html#a6e7b9a2ef47caec919b15f1ae6ff4872">Blob</a> &amp;blob, <a class="el" href="namespaceExiv2.html#a94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder, const <a class="el" href="classExiv2_1_1ExifData.html">ExifData</a> &amp;exifData)</td></tr>
<tr class="memdesc:a2109bba0b2b538470d3f0c2f25dd471a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode metadata from the provided metadata to Exif format.  <a href="#a2109bba0b2b538470d3f0c2f25dd471a">More...</a><br /></td></tr>
<tr class="separator:a2109bba0b2b538470d3f0c2f25dd471a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Stateless parser class for Exif data. Images use this class to decode and encode binary Exif data. </p>
<dl class="section note"><dt>Note</dt><dd>Encode is lossy and is not the inverse of decode. </dd></dl>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a0a1965f73e968b9b9b26ba254585f0de"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespaceExiv2.html#a94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> Exiv2::ExifParser::decode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classExiv2_1_1ExifData.html">ExifData</a> &amp;&#160;</td>
          <td class="paramname"><em>exifData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespaceExiv2.html#a16f60a5bd4207fe155f6cf93a15efa72">byte</a> *&#160;</td>
          <td class="paramname"><em>pData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Decode metadata from a buffer <em>pData</em> of length <em>size</em> with binary Exif data to the provided metadata container. </p>
<p>The buffer must start with a TIFF header. Return byte order in which the data is encoded.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">exifData</td><td>Exif metadata container. </td></tr>
    <tr><td class="paramname">pData</td><td>Pointer to the data buffer. Must point to data in binary Exif format; no checks are performed. </td></tr>
    <tr><td class="paramname">size</td><td>Length of the data buffer </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Byte order in which the data is encoded. </dd></dl>

<p>References <a class="el" href="classExiv2_1_1TiffParser.html#ab0ec8b956507f84e8bda0125d02e5069">Exiv2::TiffParser::decode()</a>, <a class="el" href="classExiv2_1_1XmpData.html#a43064f07800d084d5c4f9413c704f298">Exiv2::XmpData::empty()</a>, <a class="el" href="classExiv2_1_1IptcData.html#afda626e27ebecd599005c68022db9c1c">Exiv2::IptcData::empty()</a>, and <a class="el" href="error_8hpp.html#a06ee301360765662f07d822ea005647e">EXV_WARNING</a>.</p>

<p>Referenced by <a class="el" href="classExiv2_1_1JpegBase.html#ad6e281a6e5e863c93fbb123f0b38bc4c">Exiv2::JpegBase::readMetadata()</a>.</p>

</div>
</div>
<a class="anchor" id="aadab9ea4fdff24670cd8a973aa0690f8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespaceExiv2.html#aabfd4f86ce5d686323498c42cfd6cde7">WriteMethod</a> Exiv2::ExifParser::encode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceExiv2.html#a6e7b9a2ef47caec919b15f1ae6ff4872">Blob</a> &amp;&#160;</td>
          <td class="paramname"><em>blob</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespaceExiv2.html#a16f60a5bd4207fe155f6cf93a15efa72">byte</a> *&#160;</td>
          <td class="paramname"><em>pData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceExiv2.html#a94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a>&#160;</td>
          <td class="paramname"><em>byteOrder</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classExiv2_1_1ExifData.html">ExifData</a> &amp;&#160;</td>
          <td class="paramname"><em>exifData</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Encode Exif metadata from the provided metadata to binary Exif format. </p>
<p>The original binary Exif data in the memory block <em>pData</em>, <em>size</em> is parsed and updated in-place if possible ("non-intrusive" writing). If that is not possible (e.g., if new tags were added), the entire Exif structure is re-written to the <em>blob</em> ("intrusive" writing). The return value indicates which write method was used. If it is <code>wmNonIntrusive</code>, the original memory <em>pData</em>, <em>size</em> contains the result and <em>blob</em> is empty. If the return value is <code>wmIntrusive</code>, a new Exif structure was created and returned in <em>blob</em>. The memory block <em>pData</em>, <em>size</em> may be partly updated in this case and should not be used anymore.</p>
<p>Encode is a lossy operation. It attempts to fit the Exif data into a binary block suitable as the payload of a JPEG APP1 Exif segment, which can be at most 65527 bytes large. Encode omits IFD0 tags that are "not recorded" in compressed images according to the Exif 2.2 specification. It also doesn't write tags in groups which do not occur in JPEG images. If the resulting binary block is larger than allowed, it further deletes specific large preview tags, unknown tags larger than 4kB and known tags larger than 40kB. The operation succeeds even if the end result is still larger than the allowed size. Application should therefore always check the size of the <em>blob</em>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">blob</td><td>Container for the binary Exif data if "intrusive" writing is necessary. Empty otherwise. </td></tr>
    <tr><td class="paramname">pData</td><td>Pointer to the binary Exif data buffer. Must point to data in Exif format; no checks are performed. Will be modified if "non-intrusive" writing is possible. </td></tr>
    <tr><td class="paramname">size</td><td>Length of the data buffer. </td></tr>
    <tr><td class="paramname">byteOrder</td><td>Byte order to use. </td></tr>
    <tr><td class="paramname">exifData</td><td>Exif metadata container.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Write method used. </dd></dl>

<p>References <a class="el" href="namespaceExiv2.html#a717a4bb844932a834dd109ce2554a2a4">Exiv2::append()</a>, <a class="el" href="classExiv2_1_1ExifData.html#a53bce2980ee060fc2da5fe6751f51db9">Exiv2::ExifData::begin()</a>, <a class="el" href="classExiv2_1_1Internal_1_1TiffParserWorker.html#a997834afb3498e2abd298921fc14dee7">Exiv2::Internal::TiffParserWorker::encode()</a>, <a class="el" href="classExiv2_1_1ExifData.html#a9c15177b03489e3d4bb81e9acc1165fe">Exiv2::ExifData::end()</a>, <a class="el" href="classExiv2_1_1ExifData.html#a13b24f0ee2a3f585cf714b9418b75edd">Exiv2::ExifData::erase()</a>, <a class="el" href="types_8hpp.html#a26ec01b2862132b64975e59ad89747b5">EXV_COUNTOF</a>, <a class="el" href="error_8hpp.html#a06ee301360765662f07d822ea005647e">EXV_WARNING</a>, <a class="el" href="classExiv2_1_1Internal_1_1TiffMapping.html#af1929701af5886a4768883d577e96a1c">Exiv2::Internal::TiffMapping::findEncoder()</a>, <a class="el" href="classExiv2_1_1ExifData.html#a9700e579aef8fd1845dd5da59b608773">Exiv2::ExifData::findKey()</a>, <a class="el" href="namespaceExiv2_1_1Internal.html#a8d40d5f0bced57d0a6564f7d5bfe9494">Exiv2::Internal::groupId()</a>, <a class="el" href="classExiv2_1_1MemIo.html#a9472d3d09a1aebce9fca15f36803caf5">Exiv2::MemIo::mmap()</a>, <a class="el" href="namespaceExiv2_1_1Internal_1_1Tag.html#a417152f70ffd99dfe68efd7d5d5264c5">Exiv2::Internal::Tag::root</a>, and <a class="el" href="classExiv2_1_1MemIo.html#a4cba82129b173367e5e987125d2a1635">Exiv2::MemIo::size()</a>.</p>

</div>
</div>
<a class="anchor" id="a2109bba0b2b538470d3f0c2f25dd471a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void Exiv2::ExifParser::encode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceExiv2.html#a6e7b9a2ef47caec919b15f1ae6ff4872">Blob</a> &amp;&#160;</td>
          <td class="paramname"><em>blob</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceExiv2.html#a94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a>&#160;</td>
          <td class="paramname"><em>byteOrder</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classExiv2_1_1ExifData.html">ExifData</a> &amp;&#160;</td>
          <td class="paramname"><em>exifData</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Encode metadata from the provided metadata to Exif format. </p>
<p>Encode Exif metadata from the <em><a class="el" href="classExiv2_1_1ExifData.html" title="A container for Exif data. This is a top-level class of the Exiv2 library. The container holds Exifda...">ExifData</a></em> container to binary Exif format in the <em>blob</em>, encoded in <em>byteOrder</em>.</p>
<p>This simpler encode method uses "intrusive" writing, i.e., it builds the binary representation of the metadata from scratch. It does not attempt "non-intrusive", i.e., in-place updating. It's better to use the other <a class="el" href="classExiv2_1_1ExifParser.html#aadab9ea4fdff24670cd8a973aa0690f8" title="Encode Exif metadata from the provided metadata to binary Exif format. ">encode()</a> method, if the metadata is already available in binary format, in order to allow for "non-intrusive" updating of the existing binary representation.</p>
<p>This is just an inline wrapper for ExifParser::encode(blob, 0, 0, byteOrder, exifData).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">blob</td><td>Container for the binary Exif data. </td></tr>
    <tr><td class="paramname">byteOrder</td><td>Byte order to use. </td></tr>
    <tr><td class="paramname">exifData</td><td>Exif metadata container. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="exif_8hpp.html">exif.hpp</a></li>
<li>exif.cpp</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Mar 4 2016 17:51:50 for Exiv2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>