<!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"/> <title>EXIF library (libexif) API: libexif/exif-data.h File Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript"> $(document).ready(initResizable); </script> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.3 --> <div id="top"> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">EXIF library (libexif) API <span id="projectnumber">0.6.20</span></div> </td> </tr> </tbody> </table> </div> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> </div> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> initNavTree('exif-data_8h.html',''); </script> <div id="doc-content"> <div class="header"> <div class="summary"> <a href="#nested-classes">Data Structures</a> | <a href="#define-members">Defines</a> | <a href="#typedef-members">Typedefs</a> | <a href="#enum-members">Enumerations</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <h1>exif-data.h File Reference</h1> </div> </div> <div class="contents"> <p>Defines the ExifData type and the associated functions. <a href="#_details">More...</a></p> <div class="textblock"><code>#include <libexif/exif-byte-order.h></code><br/> <code>#include <libexif/exif-data-type.h></code><br/> <code>#include <libexif/exif-ifd.h></code><br/> <code>#include <libexif/exif-log.h></code><br/> <code>#include <libexif/exif-tag.h></code><br/> <code>#include <libexif/exif-content.h></code><br/> <code>#include <libexif/exif-mnote-data.h></code><br/> <code>#include <libexif/exif-mem.h></code><br/> </div> <p><a href="exif-data_8h_source.html">Go to the source code of this file.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="nested-classes"></a> Data Structures</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__ExifData.html">_ExifData</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Represents the entire EXIF data found in an image. <a href="struct__ExifData.html#_details">More...</a><br/></td></tr> <tr><td colspan="2"><h2><a name="define-members"></a> Defines</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="exif-data_8h.html#a984540c607eb7cfce58cf34e7374ab47">exif_data_get_entry</a>(d, t)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return an <a class="el" href="exif-entry_8h.html#a1629f9c1b9c17765f4e5b297f91a6e45" title="Data found in one EXIF tag.">ExifEntry</a> for the given tag if found in any IFD. <a href="#a984540c607eb7cfce58cf34e7374ab47"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="typedef-members"></a> Typedefs</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae62aab6698d7c078e38cd445ddcb8abf"></a><!-- doxytag: member="exif-data.h::ExifData" ref="ae62aab6698d7c078e38cd445ddcb8abf" args="" --> typedef struct <a class="el" href="struct__ExifData.html">_ExifData</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf">ExifData</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Represents the entire EXIF data found in an image. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a97b20650f53066bfad2fcaafbaf04ff0"></a><!-- doxytag: member="exif-data.h::ExifDataPrivate" ref="a97b20650f53066bfad2fcaafbaf04ff0" args="" --> typedef struct _ExifDataPrivate </td><td class="memItemRight" valign="bottom"><b>ExifDataPrivate</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a59abd1064b2757668fc33518d554af72"></a><!-- doxytag: member="exif-data.h::ExifDataForeachContentFunc" ref="a59abd1064b2757668fc33518d554af72" args=")(ExifContent *, void *user_data)" --> typedef void(* </td><td class="memItemRight" valign="bottom"><b>ExifDataForeachContentFunc</b> )(<a class="el" href="struct__ExifContent.html">ExifContent</a> *, void *user_data)</td></tr> <tr><td colspan="2"><h2><a name="enum-members"></a> Enumerations</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="exif-data_8h.html#a324f86ac1d053b37aaee45d2cfbda96d">ExifDataOption</a> { <a class="el" href="exif-data_8h.html#a324f86ac1d053b37aaee45d2cfbda96da37a62c4c36dfb4d533338062a4040dee">EXIF_DATA_OPTION_IGNORE_UNKNOWN_TAGS</a> = 1 << 0, <a class="el" href="exif-data_8h.html#a324f86ac1d053b37aaee45d2cfbda96dae8470cc4acd5755528f7ff36ba168023">EXIF_DATA_OPTION_FOLLOW_SPECIFICATION</a> = 1 << 1, <a class="el" href="exif-data_8h.html#a324f86ac1d053b37aaee45d2cfbda96da02a9ae63a51323c42968d1612e8215e7">EXIF_DATA_OPTION_DONT_CHANGE_MAKER_NOTE</a> = 1 << 2 }</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><p>Options to configure the behaviour of <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a>. </p> <a href="exif-data_8h.html#a324f86ac1d053b37aaee45d2cfbda96d">More...</a><br/></td></tr> <tr><td colspan="2"><h2><a name="func-members"></a> Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct__ExifData.html">ExifData</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="exif-data_8h.html#a1b1570fbbb15d525a0dfde8db7c8b500">exif_data_new</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Allocate a new <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a>. <a href="#a1b1570fbbb15d525a0dfde8db7c8b500"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct__ExifData.html">ExifData</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="exif-data_8h.html#ae0236d550b49c78505b82105da905b94">exif_data_new_mem</a> (<a class="el" href="exif-mem_8h.html#aab8aacbc0ed6f11a1f022b7b1bf4750e">ExifMem</a> *)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Allocate a new <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a> using the given memory allocator. <a href="#ae0236d550b49c78505b82105da905b94"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct__ExifData.html">ExifData</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="exif-data_8h.html#ac3c2d86223d3b219bad7ab2d28d8b8d2">exif_data_new_from_file</a> (const char *path)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Allocate a new <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a> and load EXIF data from a JPEG file. <a href="#ac3c2d86223d3b219bad7ab2d28d8b8d2"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct__ExifData.html">ExifData</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="exif-data_8h.html#a66a30ece3bdb6cfd8f2692df27ea2b87">exif_data_new_from_data</a> (const unsigned char *data, unsigned int size)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Allocate a new <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a> and load EXIF data from a memory buffer. <a href="#a66a30ece3bdb6cfd8f2692df27ea2b87"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="exif-data_8h.html#ae3ca622e7c30ea30eca06de3a120d84f">exif_data_load_data</a> (<a class="el" href="struct__ExifData.html">ExifData</a> *data, const unsigned char *d, unsigned int size)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Load the <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a> structure from the raw JPEG or EXIF data in the given memory buffer. <a href="#ae3ca622e7c30ea30eca06de3a120d84f"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="exif-data_8h.html#ac5700820c7d7e2a199a9170ed3833591">exif_data_save_data</a> (<a class="el" href="struct__ExifData.html">ExifData</a> *data, unsigned char **d, unsigned int *ds)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Store raw EXIF data representing the <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a> structure into a memory buffer. <a href="#ac5700820c7d7e2a199a9170ed3833591"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a41f2b9713a153809c3a19cc7007ef4e1"></a><!-- doxytag: member="exif-data.h::exif_data_ref" ref="a41f2b9713a153809c3a19cc7007ef4e1" args="(ExifData *data)" --> void </td><td class="memItemRight" valign="bottom"><b>exif_data_ref</b> (<a class="el" href="struct__ExifData.html">ExifData</a> *data)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2a48cbedffbb7b2fcd74407fe68f09f6"></a><!-- doxytag: member="exif-data.h::exif_data_unref" ref="a2a48cbedffbb7b2fcd74407fe68f09f6" args="(ExifData *data)" --> void </td><td class="memItemRight" valign="bottom"><b>exif_data_unref</b> (<a class="el" href="struct__ExifData.html">ExifData</a> *data)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2d2f8fee30176bd6460d51d33d080674"></a><!-- doxytag: member="exif-data.h::exif_data_free" ref="a2d2f8fee30176bd6460d51d33d080674" args="(ExifData *data)" --> void </td><td class="memItemRight" valign="bottom"><b>exif_data_free</b> (<a class="el" href="struct__ExifData.html">ExifData</a> *data)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">ExifByteOrder </td><td class="memItemRight" valign="bottom"><a class="el" href="exif-data_8h.html#a2d8d50e6a9c19d28fe8192ef7cc52777">exif_data_get_byte_order</a> (<a class="el" href="struct__ExifData.html">ExifData</a> *data)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return the byte order in use by this EXIF structure. <a href="#a2d8d50e6a9c19d28fe8192ef7cc52777"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="exif-data_8h.html#a0cb36f43b46dabad15aca7378eefe75a">exif_data_set_byte_order</a> (<a class="el" href="struct__ExifData.html">ExifData</a> *data, ExifByteOrder order)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the byte order to use for this EXIF data. <a href="#a0cb36f43b46dabad15aca7378eefe75a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct__ExifMnoteData.html">ExifMnoteData</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="exif-data_8h.html#a81091d71b36b90611e996106680d478f">exif_data_get_mnote_data</a> (<a class="el" href="struct__ExifData.html">ExifData</a> *d)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return the MakerNote data out of the EXIF data. <a href="#a81091d71b36b90611e996106680d478f"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="exif-data_8h.html#a9146930a0b3ef89375790e19e1bc55b2">exif_data_fix</a> (<a class="el" href="struct__ExifData.html">ExifData</a> *d)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Fix the EXIF data to bring it into specification. <a href="#a9146930a0b3ef89375790e19e1bc55b2"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="exif-data_8h.html#ad3b39ab4a3117ca9fd7d9a1126b5d879">exif_data_foreach_content</a> (<a class="el" href="struct__ExifData.html">ExifData</a> *data, ExifDataForeachContentFunc func, void *user_data)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Execute a function on each IFD in turn. <a href="#ad3b39ab4a3117ca9fd7d9a1126b5d879"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="exif-data_8h.html#a2d755968b904ced3c4ce541ed7b8d109">exif_data_option_get_name</a> (<a class="el" href="exif-data_8h.html#a324f86ac1d053b37aaee45d2cfbda96d">ExifDataOption</a> o)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return a short textual description of the given <a class="el" href="exif-data_8h.html#a324f86ac1d053b37aaee45d2cfbda96d" title="Options to configure the behaviour of ExifData.">ExifDataOption</a>. <a href="#a2d755968b904ced3c4ce541ed7b8d109"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="exif-data_8h.html#a4b2240643a70ea66e4f24ac709086802">exif_data_option_get_description</a> (<a class="el" href="exif-data_8h.html#a324f86ac1d053b37aaee45d2cfbda96d">ExifDataOption</a> o)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return a verbose textual description of the given <a class="el" href="exif-data_8h.html#a324f86ac1d053b37aaee45d2cfbda96d" title="Options to configure the behaviour of ExifData.">ExifDataOption</a>. <a href="#a4b2240643a70ea66e4f24ac709086802"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="exif-data_8h.html#af3fd819c29391da3b444cc347b86a3d4">exif_data_set_option</a> (<a class="el" href="struct__ExifData.html">ExifData</a> *d, <a class="el" href="exif-data_8h.html#a324f86ac1d053b37aaee45d2cfbda96d">ExifDataOption</a> o)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the given option on the given <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a>. <a href="#af3fd819c29391da3b444cc347b86a3d4"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="exif-data_8h.html#abe62de8c8f5a24f8847e65ca3a098da8">exif_data_unset_option</a> (<a class="el" href="struct__ExifData.html">ExifData</a> *d, <a class="el" href="exif-data_8h.html#a324f86ac1d053b37aaee45d2cfbda96d">ExifDataOption</a> o)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Clear the given option on the given <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a>. <a href="#abe62de8c8f5a24f8847e65ca3a098da8"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="exif-data_8h.html#abe6f9020e02df0d550545b50ddcafe24">exif_data_set_data_type</a> (<a class="el" href="struct__ExifData.html">ExifData</a> *d, ExifDataType dt)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the data type for the given <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a>. <a href="#abe6f9020e02df0d550545b50ddcafe24"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">ExifDataType </td><td class="memItemRight" valign="bottom"><a class="el" href="exif-data_8h.html#a4fb5dada09c9fdcab3eb7fe7e840ec84">exif_data_get_data_type</a> (<a class="el" href="struct__ExifData.html">ExifData</a> *d)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return the data type for the given <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a>. <a href="#a4fb5dada09c9fdcab3eb7fe7e840ec84"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="exif-data_8h.html#abbb8951da3fd646776ee4d8685b61162">exif_data_dump</a> (<a class="el" href="struct__ExifData.html">ExifData</a> *data)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Dump all EXIF data to stdout. <a href="#abbb8951da3fd646776ee4d8685b61162"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="exif-data_8h.html#af0d9d41ffeb6cd98906cd5ba5819c5ef">exif_data_log</a> (<a class="el" href="struct__ExifData.html">ExifData</a> *data, <a class="el" href="exif-log_8h.html#a6b225115984bb2016282923cb487f16b">ExifLog</a> *log)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the log message object for all IFDs. <a href="#af0d9d41ffeb6cd98906cd5ba5819c5ef"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <div class="textblock"><p>Defines the ExifData type and the associated functions. </p> </div><hr/><h2>Define Documentation</h2> <a class="anchor" id="a984540c607eb7cfce58cf34e7374ab47"></a><!-- doxytag: member="exif-data.h::exif_data_get_entry" ref="a984540c607eb7cfce58cf34e7374ab47" args="(d, t)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define exif_data_get_entry</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">d, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">t </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment">(exif_content_get_entry(d->ifd[EXIF_IFD_0],t) ? \ exif_content_get_entry(d->ifd[EXIF_IFD_0],t) : \ exif_content_get_entry(d->ifd[EXIF_IFD_1],t) ? \ exif_content_get_entry(d->ifd[EXIF_IFD_1],t) : \ exif_content_get_entry(d->ifd[EXIF_IFD_EXIF],t) ? \ exif_content_get_entry(d->ifd[EXIF_IFD_EXIF],t) : \ exif_content_get_entry(d->ifd[EXIF_IFD_GPS],t) ? \ exif_content_get_entry(d->ifd[EXIF_IFD_GPS],t) : \ exif_content_get_entry(d->ifd[EXIF_IFD_INTEROPERABILITY],t) ? \ exif_content_get_entry(d->ifd[EXIF_IFD_INTEROPERABILITY],t) : NULL) </pre></div> <p>Return an <a class="el" href="exif-entry_8h.html#a1629f9c1b9c17765f4e5b297f91a6e45" title="Data found in one EXIF tag.">ExifEntry</a> for the given tag if found in any IFD. </p> <p>Each IFD is searched in turn and the first containing a tag with this number is returned.</p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">d</td><td><a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a> </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">t</td><td><a class="el" href="exif-tag_8h.html#a1a0ded93d47585f6889eb546915d0f41" title="EXIF tags.">ExifTag</a> </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="exif-entry_8h.html#a1629f9c1b9c17765f4e5b297f91a6e45" title="Data found in one EXIF tag.">ExifEntry</a>* if found, else NULL if not found </dd></dl> </div> </div> <hr/><h2>Enumeration Type Documentation</h2> <a class="anchor" id="a324f86ac1d053b37aaee45d2cfbda96d"></a><!-- doxytag: member="exif-data.h::ExifDataOption" ref="a324f86ac1d053b37aaee45d2cfbda96d" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="exif-data_8h.html#a324f86ac1d053b37aaee45d2cfbda96d">ExifDataOption</a></td> </tr> </table> </div> <div class="memdoc"> <p>Options to configure the behaviour of <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a>. </p> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="a324f86ac1d053b37aaee45d2cfbda96da37a62c4c36dfb4d533338062a4040dee"></a><!-- doxytag: member="EXIF_DATA_OPTION_IGNORE_UNKNOWN_TAGS" ref="a324f86ac1d053b37aaee45d2cfbda96da37a62c4c36dfb4d533338062a4040dee" args="" -->EXIF_DATA_OPTION_IGNORE_UNKNOWN_TAGS</em> </td><td> <p>Act as though unknown tags are not present. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a324f86ac1d053b37aaee45d2cfbda96dae8470cc4acd5755528f7ff36ba168023"></a><!-- doxytag: member="EXIF_DATA_OPTION_FOLLOW_SPECIFICATION" ref="a324f86ac1d053b37aaee45d2cfbda96dae8470cc4acd5755528f7ff36ba168023" args="" -->EXIF_DATA_OPTION_FOLLOW_SPECIFICATION</em> </td><td> <p>Fix the EXIF tags to follow the spec. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a324f86ac1d053b37aaee45d2cfbda96da02a9ae63a51323c42968d1612e8215e7"></a><!-- doxytag: member="EXIF_DATA_OPTION_DONT_CHANGE_MAKER_NOTE" ref="a324f86ac1d053b37aaee45d2cfbda96da02a9ae63a51323c42968d1612e8215e7" args="" -->EXIF_DATA_OPTION_DONT_CHANGE_MAKER_NOTE</em> </td><td> <p>Leave the MakerNote alone, which could cause it to be corrupted. </p> </td></tr> </table> </dd> </dl> </div> </div> <hr/><h2>Function Documentation</h2> <a class="anchor" id="abbb8951da3fd646776ee4d8685b61162"></a><!-- doxytag: member="exif-data.h::exif_data_dump" ref="abbb8951da3fd646776ee4d8685b61162" args="(ExifData *data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void exif_data_dump </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ExifData.html">ExifData</a> * </td> <td class="paramname"><em>data</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Dump all EXIF data to stdout. </p> <p>This is intended for diagnostic purposes only.</p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>EXIF data </td></tr> </table> </dd> </dl> <p>References <a class="el" href="struct__ExifData.html#a6adaa7f443903d8fc2d2b232c67bf660">_ExifData::data</a>, <a class="el" href="struct__ExifData.html#a93efef6710d8b867b743ed0a152d5293">_ExifData::ifd</a>, and <a class="el" href="struct__ExifData.html#a83a9d29c7769854ea86dd48979f8b21b">_ExifData::size</a>.</p> </div> </div> <a class="anchor" id="a9146930a0b3ef89375790e19e1bc55b2"></a><!-- doxytag: member="exif-data.h::exif_data_fix" ref="a9146930a0b3ef89375790e19e1bc55b2" args="(ExifData *d)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void exif_data_fix </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ExifData.html">ExifData</a> * </td> <td class="paramname"><em>d</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Fix the EXIF data to bring it into specification. </p> <p>Call <a class="el" href="exif-content_8h.html#a16c54e0f88067820efd37cd3088a9c70" title="Fix the IFD to bring it into specification.">exif_content_fix</a> on each IFD to fix existing entries, create any new entries that are mandatory but do not yet exist, and remove any entries that are not allowed.</p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramdir">[in,out]</td><td class="paramname">d</td><td>EXIF data </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ad3b39ab4a3117ca9fd7d9a1126b5d879"></a><!-- doxytag: member="exif-data.h::exif_data_foreach_content" ref="ad3b39ab4a3117ca9fd7d9a1126b5d879" args="(ExifData *data, ExifDataForeachContentFunc func, void *user_data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void exif_data_foreach_content </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ExifData.html">ExifData</a> * </td> <td class="paramname"><em>data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">ExifDataForeachContentFunc </td> <td class="paramname"><em>func</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>user_data</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Execute a function on each IFD in turn. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>EXIF data over which to iterate </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">func</td><td>function to call for each entry </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">user_data</td><td>data to pass into func on each call </td></tr> </table> </dd> </dl> <p>References <a class="el" href="struct__ExifData.html#a93efef6710d8b867b743ed0a152d5293">_ExifData::ifd</a>.</p> </div> </div> <a class="anchor" id="a2d8d50e6a9c19d28fe8192ef7cc52777"></a><!-- doxytag: member="exif-data.h::exif_data_get_byte_order" ref="a2d8d50e6a9c19d28fe8192ef7cc52777" args="(ExifData *data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">ExifByteOrder exif_data_get_byte_order </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ExifData.html">ExifData</a> * </td> <td class="paramname"><em>data</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Return the byte order in use by this EXIF structure. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>EXIF data </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>byte order </dd></dl> </div> </div> <a class="anchor" id="a4fb5dada09c9fdcab3eb7fe7e840ec84"></a><!-- doxytag: member="exif-data.h::exif_data_get_data_type" ref="a4fb5dada09c9fdcab3eb7fe7e840ec84" args="(ExifData *d)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">ExifDataType exif_data_get_data_type </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ExifData.html">ExifData</a> * </td> <td class="paramname"><em>d</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Return the data type for the given <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a>. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">d</td><td>EXIF data </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>data type, or #EXIF_DATA_TYPE_UNKNOWN on error </dd></dl> </div> </div> <a class="anchor" id="a81091d71b36b90611e996106680d478f"></a><!-- doxytag: member="exif-data.h::exif_data_get_mnote_data" ref="a81091d71b36b90611e996106680d478f" args="(ExifData *d)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="struct__ExifMnoteData.html">ExifMnoteData</a>* exif_data_get_mnote_data </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ExifData.html">ExifData</a> * </td> <td class="paramname"><em>d</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Return the MakerNote data out of the EXIF data. </p> <p>Only certain MakerNote formats that are recognized by libexif are supported. The pointer references a member of the <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a> structure and must NOT be freed by the caller.</p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">d</td><td>EXIF data </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>MakerNote data, or NULL if not found or not supported </dd></dl> </div> </div> <a class="anchor" id="ae3ca622e7c30ea30eca06de3a120d84f"></a><!-- doxytag: member="exif-data.h::exif_data_load_data" ref="ae3ca622e7c30ea30eca06de3a120d84f" args="(ExifData *data, const unsigned char *d, unsigned int size)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void exif_data_load_data </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ExifData.html">ExifData</a> * </td> <td class="paramname"><em>data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned char * </td> <td class="paramname"><em>d</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>size</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Load the <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a> structure from the raw JPEG or EXIF data in the given memory buffer. </p> <p>If the EXIF data contains a recognized MakerNote, it is loaded and stored as well for later retrieval by <a class="el" href="exif-data_8h.html#a81091d71b36b90611e996106680d478f" title="Return the MakerNote data out of the EXIF data.">exif_data_get_mnote_data</a>. If the EXIF_DATA_OPTION_FOLLOW_SPECIFICATION has been set on this <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a>, then the tags are fixed after loading.</p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramdir">[in,out]</td><td class="paramname">data</td><td>EXIF data </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">d</td><td>pointer to raw JPEG or EXIF data </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>number of bytes of data at d </td></tr> </table> </dd> </dl> <p>References <a class="el" href="exif-data_8h.html#a324f86ac1d053b37aaee45d2cfbda96dae8470cc4acd5755528f7ff36ba168023">EXIF_DATA_OPTION_FOLLOW_SPECIFICATION</a>.</p> </div> </div> <a class="anchor" id="af0d9d41ffeb6cd98906cd5ba5819c5ef"></a><!-- doxytag: member="exif-data.h::exif_data_log" ref="af0d9d41ffeb6cd98906cd5ba5819c5ef" args="(ExifData *data, ExifLog *log)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void exif_data_log </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ExifData.html">ExifData</a> * </td> <td class="paramname"><em>data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="exif-log_8h.html#a6b225115984bb2016282923cb487f16b">ExifLog</a> * </td> <td class="paramname"><em>log</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set the log message object for all IFDs. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>EXIF data </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">log</td><td><a class="el" href="exif-log_8h.html#a6b225115984bb2016282923cb487f16b" title="State maintained by the logging interface.">ExifLog</a> </td></tr> </table> </dd> </dl> <p>References <a class="el" href="struct__ExifData.html#a93efef6710d8b867b743ed0a152d5293">_ExifData::ifd</a>.</p> </div> </div> <a class="anchor" id="a1b1570fbbb15d525a0dfde8db7c8b500"></a><!-- doxytag: member="exif-data.h::exif_data_new" ref="a1b1570fbbb15d525a0dfde8db7c8b500" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="struct__ExifData.html">ExifData</a>* exif_data_new </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Allocate a new <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a>. </p> <p>The <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a> contains an empty <a class="el" href="exif-content_8h.html#ac046cba2f9c5cfabf3ad443303090855" title="Holds all EXIF tags in a single IFD.">ExifContent</a> for each IFD and the default set of options, which has <a class="el" href="exif-data_8h.html#a324f86ac1d053b37aaee45d2cfbda96da37a62c4c36dfb4d533338062a4040dee" title="Act as though unknown tags are not present.">EXIF_DATA_OPTION_IGNORE_UNKNOWN_TAGS</a> and <a class="el" href="exif-data_8h.html#a324f86ac1d053b37aaee45d2cfbda96dae8470cc4acd5755528f7ff36ba168023" title="Fix the EXIF tags to follow the spec.">EXIF_DATA_OPTION_FOLLOW_SPECIFICATION</a> set.</p> <dl class="return"><dt><b>Returns:</b></dt><dd>allocated <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a>, or NULL on error </dd></dl> </div> </div> <a class="anchor" id="a66a30ece3bdb6cfd8f2692df27ea2b87"></a><!-- doxytag: member="exif-data.h::exif_data_new_from_data" ref="a66a30ece3bdb6cfd8f2692df27ea2b87" args="(const unsigned char *data, unsigned int size)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="struct__ExifData.html">ExifData</a>* exif_data_new_from_data </td> <td>(</td> <td class="paramtype">const unsigned char * </td> <td class="paramname"><em>data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>size</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Allocate a new <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a> and load EXIF data from a memory buffer. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>pointer to raw JPEG or EXIF data </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>number of bytes of data at data </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>allocated <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a>, or NULL on error </dd></dl> </div> </div> <a class="anchor" id="ac3c2d86223d3b219bad7ab2d28d8b8d2"></a><!-- doxytag: member="exif-data.h::exif_data_new_from_file" ref="ac3c2d86223d3b219bad7ab2d28d8b8d2" args="(const char *path)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="struct__ExifData.html">ExifData</a>* exif_data_new_from_file </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>path</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Allocate a new <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a> and load EXIF data from a JPEG file. </p> <p>Uses an <a class="el" href="exif-loader_8h.html#a2b96cbffaf0f92340a960f887026eced" title="Data used by the loader interface.">ExifLoader</a> internally to do the loading.</p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>filename including path </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>allocated <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a>, or NULL on error </dd></dl> </div> </div> <a class="anchor" id="ae0236d550b49c78505b82105da905b94"></a><!-- doxytag: member="exif-data.h::exif_data_new_mem" ref="ae0236d550b49c78505b82105da905b94" args="(ExifMem *)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="struct__ExifData.html">ExifData</a>* exif_data_new_mem </td> <td>(</td> <td class="paramtype"><a class="el" href="exif-mem_8h.html#aab8aacbc0ed6f11a1f022b7b1bf4750e">ExifMem</a> * </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Allocate a new <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a> using the given memory allocator. </p> <p>The <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a> contains an empty <a class="el" href="exif-content_8h.html#ac046cba2f9c5cfabf3ad443303090855" title="Holds all EXIF tags in a single IFD.">ExifContent</a> for each IFD and the default set of options, which has <a class="el" href="exif-data_8h.html#a324f86ac1d053b37aaee45d2cfbda96da37a62c4c36dfb4d533338062a4040dee" title="Act as though unknown tags are not present.">EXIF_DATA_OPTION_IGNORE_UNKNOWN_TAGS</a> and <a class="el" href="exif-data_8h.html#a324f86ac1d053b37aaee45d2cfbda96dae8470cc4acd5755528f7ff36ba168023" title="Fix the EXIF tags to follow the spec.">EXIF_DATA_OPTION_FOLLOW_SPECIFICATION</a> set.</p> <dl class="return"><dt><b>Returns:</b></dt><dd>allocated <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a>, or NULL on error </dd></dl> <p>References <a class="el" href="exif-data_8h.html#a324f86ac1d053b37aaee45d2cfbda96dae8470cc4acd5755528f7ff36ba168023">EXIF_DATA_OPTION_FOLLOW_SPECIFICATION</a>, <a class="el" href="exif-data_8h.html#a324f86ac1d053b37aaee45d2cfbda96da37a62c4c36dfb4d533338062a4040dee">EXIF_DATA_OPTION_IGNORE_UNKNOWN_TAGS</a>, <a class="el" href="struct__ExifData.html#a93efef6710d8b867b743ed0a152d5293">_ExifData::ifd</a>, and <a class="el" href="struct__ExifContent.html#aae965558ea5c98783c4c2418364aabea">_ExifContent::parent</a>.</p> </div> </div> <a class="anchor" id="a4b2240643a70ea66e4f24ac709086802"></a><!-- doxytag: member="exif-data.h::exif_data_option_get_description" ref="a4b2240643a70ea66e4f24ac709086802" args="(ExifDataOption o)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const char* exif_data_option_get_description </td> <td>(</td> <td class="paramtype"><a class="el" href="exif-data_8h.html#a324f86ac1d053b37aaee45d2cfbda96d">ExifDataOption</a> </td> <td class="paramname"><em>o</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Return a verbose textual description of the given <a class="el" href="exif-data_8h.html#a324f86ac1d053b37aaee45d2cfbda96d" title="Options to configure the behaviour of ExifData.">ExifDataOption</a>. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">o</td><td>option </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>verbose localized textual description of the option </dd></dl> </div> </div> <a class="anchor" id="a2d755968b904ced3c4ce541ed7b8d109"></a><!-- doxytag: member="exif-data.h::exif_data_option_get_name" ref="a2d755968b904ced3c4ce541ed7b8d109" args="(ExifDataOption o)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const char* exif_data_option_get_name </td> <td>(</td> <td class="paramtype"><a class="el" href="exif-data_8h.html#a324f86ac1d053b37aaee45d2cfbda96d">ExifDataOption</a> </td> <td class="paramname"><em>o</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Return a short textual description of the given <a class="el" href="exif-data_8h.html#a324f86ac1d053b37aaee45d2cfbda96d" title="Options to configure the behaviour of ExifData.">ExifDataOption</a>. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">o</td><td>option </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>localized textual description of the option </dd></dl> </div> </div> <a class="anchor" id="ac5700820c7d7e2a199a9170ed3833591"></a><!-- doxytag: member="exif-data.h::exif_data_save_data" ref="ac5700820c7d7e2a199a9170ed3833591" args="(ExifData *data, unsigned char **d, unsigned int *ds)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void exif_data_save_data </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ExifData.html">ExifData</a> * </td> <td class="paramname"><em>data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned char ** </td> <td class="paramname"><em>d</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int * </td> <td class="paramname"><em>ds</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Store raw EXIF data representing the <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a> structure into a memory buffer. </p> <p>The buffer is allocated by this function and must subsequently be freed by the caller using the matching free function as used by the <a class="el" href="exif-mem_8h.html#aab8aacbc0ed6f11a1f022b7b1bf4750e" title="ExifMem define a memory allocator.">ExifMem</a> in use by this <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a>.</p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>EXIF data </td></tr> <tr><td class="paramdir">[out]</td><td class="paramname">d</td><td>pointer to buffer pointer containing raw EXIF data on return </td></tr> <tr><td class="paramdir">[out]</td><td class="paramname">ds</td><td>pointer to variable to hold the number of bytes of data at d, or set to 0 on error </td></tr> </table> </dd> </dl> <p>References <a class="el" href="struct__ExifData.html#a93efef6710d8b867b743ed0a152d5293">_ExifData::ifd</a>.</p> </div> </div> <a class="anchor" id="a0cb36f43b46dabad15aca7378eefe75a"></a><!-- doxytag: member="exif-data.h::exif_data_set_byte_order" ref="a0cb36f43b46dabad15aca7378eefe75a" args="(ExifData *data, ExifByteOrder order)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void exif_data_set_byte_order </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ExifData.html">ExifData</a> * </td> <td class="paramname"><em>data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">ExifByteOrder </td> <td class="paramname"><em>order</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set the byte order to use for this EXIF data. </p> <p>If any tags already exist (including MakerNote tags) they are are converted to the specified byte order.</p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramdir">[in,out]</td><td class="paramname">data</td><td>EXIF data </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">order</td><td>byte order </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="abe6f9020e02df0d550545b50ddcafe24"></a><!-- doxytag: member="exif-data.h::exif_data_set_data_type" ref="abe6f9020e02df0d550545b50ddcafe24" args="(ExifData *d, ExifDataType dt)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void exif_data_set_data_type </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ExifData.html">ExifData</a> * </td> <td class="paramname"><em>d</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">ExifDataType </td> <td class="paramname"><em>dt</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set the data type for the given <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a>. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">d</td><td>EXIF data </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">dt</td><td>data type </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="af3fd819c29391da3b444cc347b86a3d4"></a><!-- doxytag: member="exif-data.h::exif_data_set_option" ref="af3fd819c29391da3b444cc347b86a3d4" args="(ExifData *d, ExifDataOption o)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void exif_data_set_option </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ExifData.html">ExifData</a> * </td> <td class="paramname"><em>d</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="exif-data_8h.html#a324f86ac1d053b37aaee45d2cfbda96d">ExifDataOption</a> </td> <td class="paramname"><em>o</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set the given option on the given <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a>. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">d</td><td>EXIF data </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">o</td><td>option </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="abe62de8c8f5a24f8847e65ca3a098da8"></a><!-- doxytag: member="exif-data.h::exif_data_unset_option" ref="abe62de8c8f5a24f8847e65ca3a098da8" args="(ExifData *d, ExifDataOption o)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void exif_data_unset_option </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ExifData.html">ExifData</a> * </td> <td class="paramname"><em>d</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="exif-data_8h.html#a324f86ac1d053b37aaee45d2cfbda96d">ExifDataOption</a> </td> <td class="paramname"><em>o</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Clear the given option on the given <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image.">ExifData</a>. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">d</td><td>EXIF data </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">o</td><td>option </td></tr> </table> </dd> </dl> </div> </div> </div> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="exif-data_8h.html">exif-data.h</a> </li> <li class="footer">Generated on Fri Mar 18 2011 for EXIF library (libexif) API by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li> </ul> </div> </body> </html>