Added type information to Exif tag tables. Updated comment example, documentation and tests. Implements feature #425

v0.27.3
Andreas Huggel 21 years ago
parent adb618fcf9
commit 1f82dffcfa

@ -86,7 +86,7 @@ own header and source files.</p>
<center> <center>
<h3><a class="anchor">Exiv2 Components Diagram</a></h3> <h3><a class="anchor">Exiv2 Components Diagram</a></h3>
<p><img src="exiv2.gif" width="475" height="447" alt="Exiv2 components diagram"></p> <p><img src="exiv2.gif" width="660" height="543" alt="Exiv2 components diagram"></p>
</center> </center>
<p>&nbsp;</p> <p>&nbsp;</p>

@ -20,6 +20,7 @@
<minbytes>2</minbytes> <minbytes>2</minbytes>
<maxbytes>2</maxbytes> <maxbytes>2</maxbytes>
<key>Iptc.Envelope.ModelVersion</key> <key>Iptc.Envelope.ModelVersion</key>
<type>Short</type>
<tagdesc>Version of IIM part 1</tagdesc> <tagdesc>Version of IIM part 1</tagdesc>
</ROW> </ROW>
<ROW num="2"> <ROW num="2">
@ -32,6 +33,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>1024</maxbytes> <maxbytes>1024</maxbytes>
<key>Iptc.Envelope.Destination</key> <key>Iptc.Envelope.Destination</key>
<type>String</type>
<tagdesc>Routing information</tagdesc> <tagdesc>Routing information</tagdesc>
</ROW> </ROW>
<ROW num="3"> <ROW num="3">
@ -44,6 +46,7 @@
<minbytes>2</minbytes> <minbytes>2</minbytes>
<maxbytes>2</maxbytes> <maxbytes>2</maxbytes>
<key>Iptc.Envelope.FileFormat</key> <key>Iptc.Envelope.FileFormat</key>
<type>Short</type>
<tagdesc>IIM appendix A file format</tagdesc> <tagdesc>IIM appendix A file format</tagdesc>
</ROW> </ROW>
<ROW num="4"> <ROW num="4">
@ -56,6 +59,7 @@
<minbytes>2</minbytes> <minbytes>2</minbytes>
<maxbytes>2</maxbytes> <maxbytes>2</maxbytes>
<key>Iptc.Envelope.FileVersion</key> <key>Iptc.Envelope.FileVersion</key>
<type>Short</type>
<tagdesc>File format version</tagdesc> <tagdesc>File format version</tagdesc>
</ROW> </ROW>
<ROW num="5"> <ROW num="5">
@ -68,6 +72,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>10</maxbytes> <maxbytes>10</maxbytes>
<key>Iptc.Envelope.ServiceId</key> <key>Iptc.Envelope.ServiceId</key>
<type>String</type>
<tagdesc>Identifies the provider and product</tagdesc> <tagdesc>Identifies the provider and product</tagdesc>
</ROW> </ROW>
<ROW num="6"> <ROW num="6">
@ -80,6 +85,7 @@
<minbytes>8</minbytes> <minbytes>8</minbytes>
<maxbytes>8</maxbytes> <maxbytes>8</maxbytes>
<key>Iptc.Envelope.EnvelopeNumber</key> <key>Iptc.Envelope.EnvelopeNumber</key>
<type>String</type>
<tagdesc>Combined unique identification</tagdesc> <tagdesc>Combined unique identification</tagdesc>
</ROW> </ROW>
<ROW num="7"> <ROW num="7">
@ -92,6 +98,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>32</maxbytes> <maxbytes>32</maxbytes>
<key>Iptc.Envelope.ProductId</key> <key>Iptc.Envelope.ProductId</key>
<type>String</type>
<tagdesc>Identifies service subset</tagdesc> <tagdesc>Identifies service subset</tagdesc>
</ROW> </ROW>
<ROW num="8"> <ROW num="8">
@ -104,6 +111,7 @@
<minbytes>1</minbytes> <minbytes>1</minbytes>
<maxbytes>1</maxbytes> <maxbytes>1</maxbytes>
<key>Iptc.Envelope.EnvelopePriority</key> <key>Iptc.Envelope.EnvelopePriority</key>
<type>String</type>
<tagdesc>Envelope handling priority</tagdesc> <tagdesc>Envelope handling priority</tagdesc>
</ROW> </ROW>
<ROW num="9"> <ROW num="9">
@ -116,6 +124,7 @@
<minbytes>8</minbytes> <minbytes>8</minbytes>
<maxbytes>8</maxbytes> <maxbytes>8</maxbytes>
<key>Iptc.Envelope.DateSent</key> <key>Iptc.Envelope.DateSent</key>
<type>Date</type>
<tagdesc>Date material was sent</tagdesc> <tagdesc>Date material was sent</tagdesc>
</ROW> </ROW>
<ROW num="10"> <ROW num="10">
@ -128,6 +137,7 @@
<minbytes>11</minbytes> <minbytes>11</minbytes>
<maxbytes>11</maxbytes> <maxbytes>11</maxbytes>
<key>Iptc.Envelope.TimeSent</key> <key>Iptc.Envelope.TimeSent</key>
<type>Time</type>
<tagdesc>Time material was sent</tagdesc> <tagdesc>Time material was sent</tagdesc>
</ROW> </ROW>
<ROW num="11"> <ROW num="11">
@ -140,6 +150,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>32</maxbytes> <maxbytes>32</maxbytes>
<key>Iptc.Envelope.CharacterSet</key> <key>Iptc.Envelope.CharacterSet</key>
<type>Undefined</type>
<tagdesc>Specifies character sets</tagdesc> <tagdesc>Specifies character sets</tagdesc>
</ROW> </ROW>
<ROW num="12"> <ROW num="12">
@ -152,6 +163,7 @@
<minbytes>14</minbytes> <minbytes>14</minbytes>
<maxbytes>80</maxbytes> <maxbytes>80</maxbytes>
<key>Iptc.Envelope.UNO</key> <key>Iptc.Envelope.UNO</key>
<type>String</type>
<tagdesc>Unique Name of Object</tagdesc> <tagdesc>Unique Name of Object</tagdesc>
</ROW> </ROW>
<ROW num="13"> <ROW num="13">
@ -164,6 +176,7 @@
<minbytes>2</minbytes> <minbytes>2</minbytes>
<maxbytes>2</maxbytes> <maxbytes>2</maxbytes>
<key>Iptc.Envelope.ARMId</key> <key>Iptc.Envelope.ARMId</key>
<type>Short</type>
<tagdesc>Abstract Relationship Method identifier</tagdesc> <tagdesc>Abstract Relationship Method identifier</tagdesc>
</ROW> </ROW>
<ROW num="14"> <ROW num="14">
@ -176,6 +189,7 @@
<minbytes>2</minbytes> <minbytes>2</minbytes>
<maxbytes>2</maxbytes> <maxbytes>2</maxbytes>
<key>Iptc.Envelope.ARMVersion</key> <key>Iptc.Envelope.ARMVersion</key>
<type>Short</type>
<tagdesc>Abstract Relationship Method version</tagdesc> <tagdesc>Abstract Relationship Method version</tagdesc>
</ROW> </ROW>
<ROW num="15"> <ROW num="15">
@ -188,6 +202,7 @@
<minbytes>2</minbytes> <minbytes>2</minbytes>
<maxbytes>2</maxbytes> <maxbytes>2</maxbytes>
<key>Iptc.Application2.RecordVersion</key> <key>Iptc.Application2.RecordVersion</key>
<type>Short</type>
<tagdesc>Version of IIM part 2</tagdesc> <tagdesc>Version of IIM part 2</tagdesc>
</ROW> </ROW>
<ROW num="16"> <ROW num="16">
@ -200,6 +215,7 @@
<minbytes>3</minbytes> <minbytes>3</minbytes>
<maxbytes>67</maxbytes> <maxbytes>67</maxbytes>
<key>Iptc.Application2.ObjectType</key> <key>Iptc.Application2.ObjectType</key>
<type>String</type>
<tagdesc>IIM appendix G object type</tagdesc> <tagdesc>IIM appendix G object type</tagdesc>
</ROW> </ROW>
<ROW num="17"> <ROW num="17">
@ -212,6 +228,7 @@
<minbytes>4</minbytes> <minbytes>4</minbytes>
<maxbytes>68</maxbytes> <maxbytes>68</maxbytes>
<key>Iptc.Application2.ObjectAttribute</key> <key>Iptc.Application2.ObjectAttribute</key>
<type>String</type>
<tagdesc>IIM appendix G object attribute</tagdesc> <tagdesc>IIM appendix G object attribute</tagdesc>
</ROW> </ROW>
<ROW num="18"> <ROW num="18">
@ -224,6 +241,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>64</maxbytes> <maxbytes>64</maxbytes>
<key>Iptc.Application2.ObjectName</key> <key>Iptc.Application2.ObjectName</key>
<type>String</type>
<tagdesc>Shorthand reference of content</tagdesc> <tagdesc>Shorthand reference of content</tagdesc>
</ROW> </ROW>
<ROW num="19"> <ROW num="19">
@ -236,6 +254,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>64</maxbytes> <maxbytes>64</maxbytes>
<key>Iptc.Application2.EditStatus</key> <key>Iptc.Application2.EditStatus</key>
<type>String</type>
<tagdesc>Content status</tagdesc> <tagdesc>Content status</tagdesc>
</ROW> </ROW>
<ROW num="20"> <ROW num="20">
@ -248,6 +267,7 @@
<minbytes>2</minbytes> <minbytes>2</minbytes>
<maxbytes>2</maxbytes> <maxbytes>2</maxbytes>
<key>Iptc.Application2.EditorialUpdate</key> <key>Iptc.Application2.EditorialUpdate</key>
<type>String</type>
<tagdesc>Indicates the type of update</tagdesc> <tagdesc>Indicates the type of update</tagdesc>
</ROW> </ROW>
<ROW num="21"> <ROW num="21">
@ -260,6 +280,7 @@
<minbytes>1</minbytes> <minbytes>1</minbytes>
<maxbytes>1</maxbytes> <maxbytes>1</maxbytes>
<key>Iptc.Application2.Urgency</key> <key>Iptc.Application2.Urgency</key>
<type>String</type>
<tagdesc>Editorial urgency of content</tagdesc> <tagdesc>Editorial urgency of content</tagdesc>
</ROW> </ROW>
<ROW num="22"> <ROW num="22">
@ -272,6 +293,7 @@
<minbytes>13</minbytes> <minbytes>13</minbytes>
<maxbytes>236</maxbytes> <maxbytes>236</maxbytes>
<key>Iptc.Application2.Subject</key> <key>Iptc.Application2.Subject</key>
<type>String</type>
<tagdesc>Structured definition of the subject</tagdesc> <tagdesc>Structured definition of the subject</tagdesc>
</ROW> </ROW>
<ROW num="23"> <ROW num="23">
@ -284,6 +306,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>3</maxbytes> <maxbytes>3</maxbytes>
<key>Iptc.Application2.Category</key> <key>Iptc.Application2.Category</key>
<type>String</type>
<tagdesc>Identifies the subject</tagdesc> <tagdesc>Identifies the subject</tagdesc>
</ROW> </ROW>
<ROW num="24"> <ROW num="24">
@ -296,6 +319,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>32</maxbytes> <maxbytes>32</maxbytes>
<key>Iptc.Application2.SuppCategory</key> <key>Iptc.Application2.SuppCategory</key>
<type>String</type>
<tagdesc>Refines the subject</tagdesc> <tagdesc>Refines the subject</tagdesc>
</ROW> </ROW>
<ROW num="25"> <ROW num="25">
@ -308,6 +332,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>32</maxbytes> <maxbytes>32</maxbytes>
<key>Iptc.Application2.FixtureId</key> <key>Iptc.Application2.FixtureId</key>
<type>String</type>
<tagdesc>Identifies content that recurs</tagdesc> <tagdesc>Identifies content that recurs</tagdesc>
</ROW> </ROW>
<ROW num="26"> <ROW num="26">
@ -320,6 +345,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>64</maxbytes> <maxbytes>64</maxbytes>
<key>Iptc.Application2.Keywords</key> <key>Iptc.Application2.Keywords</key>
<type>String</type>
<tagdesc>Information retrieval words</tagdesc> <tagdesc>Information retrieval words</tagdesc>
</ROW> </ROW>
<ROW num="27"> <ROW num="27">
@ -332,6 +358,7 @@
<minbytes>3</minbytes> <minbytes>3</minbytes>
<maxbytes>3</maxbytes> <maxbytes>3</maxbytes>
<key>Iptc.Application2.LocationCode</key> <key>Iptc.Application2.LocationCode</key>
<type>String</type>
<tagdesc>ISO country code for content</tagdesc> <tagdesc>ISO country code for content</tagdesc>
</ROW> </ROW>
<ROW num="28"> <ROW num="28">
@ -344,6 +371,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>64</maxbytes> <maxbytes>64</maxbytes>
<key>Iptc.Application2.LocationName</key> <key>Iptc.Application2.LocationName</key>
<type>String</type>
<tagdesc>Full country name for content</tagdesc> <tagdesc>Full country name for content</tagdesc>
</ROW> </ROW>
<ROW num="29"> <ROW num="29">
@ -356,6 +384,7 @@
<minbytes>8</minbytes> <minbytes>8</minbytes>
<maxbytes>8</maxbytes> <maxbytes>8</maxbytes>
<key>Iptc.Application2.ReleaseDate</key> <key>Iptc.Application2.ReleaseDate</key>
<type>Date</type>
<tagdesc>Earliest intended usable date</tagdesc> <tagdesc>Earliest intended usable date</tagdesc>
</ROW> </ROW>
<ROW num="30"> <ROW num="30">
@ -368,6 +397,7 @@
<minbytes>11</minbytes> <minbytes>11</minbytes>
<maxbytes>11</maxbytes> <maxbytes>11</maxbytes>
<key>Iptc.Application2.ReleaseTime</key> <key>Iptc.Application2.ReleaseTime</key>
<type>Time</type>
<tagdesc>Earliest intended usable time</tagdesc> <tagdesc>Earliest intended usable time</tagdesc>
</ROW> </ROW>
<ROW num="31"> <ROW num="31">
@ -380,6 +410,7 @@
<minbytes>8</minbytes> <minbytes>8</minbytes>
<maxbytes>8</maxbytes> <maxbytes>8</maxbytes>
<key>Iptc.Application2.ExpirationDate</key> <key>Iptc.Application2.ExpirationDate</key>
<type>Date</type>
<tagdesc>Latest intended usable date</tagdesc> <tagdesc>Latest intended usable date</tagdesc>
</ROW> </ROW>
<ROW num="32"> <ROW num="32">
@ -392,6 +423,7 @@
<minbytes>11</minbytes> <minbytes>11</minbytes>
<maxbytes>11</maxbytes> <maxbytes>11</maxbytes>
<key>Iptc.Application2.ExpirationTime</key> <key>Iptc.Application2.ExpirationTime</key>
<type>Time</type>
<tagdesc>Latest intended usable time</tagdesc> <tagdesc>Latest intended usable time</tagdesc>
</ROW> </ROW>
<ROW num="33"> <ROW num="33">
@ -404,6 +436,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>256</maxbytes> <maxbytes>256</maxbytes>
<key>Iptc.Application2.SpecialInstructions</key> <key>Iptc.Application2.SpecialInstructions</key>
<type>String</type>
<tagdesc>Editorial usage instructions</tagdesc> <tagdesc>Editorial usage instructions</tagdesc>
</ROW> </ROW>
<ROW num="34"> <ROW num="34">
@ -416,6 +449,7 @@
<minbytes>2</minbytes> <minbytes>2</minbytes>
<maxbytes>2</maxbytes> <maxbytes>2</maxbytes>
<key>Iptc.Application2.ActionAdvised</key> <key>Iptc.Application2.ActionAdvised</key>
<type>String</type>
<tagdesc>Action provided to previous data</tagdesc> <tagdesc>Action provided to previous data</tagdesc>
</ROW> </ROW>
<ROW num="35"> <ROW num="35">
@ -428,6 +462,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>10</maxbytes> <maxbytes>10</maxbytes>
<key>Iptc.Application2.ReferenceService</key> <key>Iptc.Application2.ReferenceService</key>
<type>String</type>
<tagdesc>Service Identifier of a prior envelope</tagdesc> <tagdesc>Service Identifier of a prior envelope</tagdesc>
</ROW> </ROW>
<ROW num="36"> <ROW num="36">
@ -440,6 +475,7 @@
<minbytes>8</minbytes> <minbytes>8</minbytes>
<maxbytes>8</maxbytes> <maxbytes>8</maxbytes>
<key>Iptc.Application2.ReferenceDate</key> <key>Iptc.Application2.ReferenceDate</key>
<type>Date</type>
<tagdesc>Date of a prior envelope</tagdesc> <tagdesc>Date of a prior envelope</tagdesc>
</ROW> </ROW>
<ROW num="37"> <ROW num="37">
@ -452,6 +488,7 @@
<minbytes>8</minbytes> <minbytes>8</minbytes>
<maxbytes>8</maxbytes> <maxbytes>8</maxbytes>
<key>Iptc.Application2.ReferenceNumber</key> <key>Iptc.Application2.ReferenceNumber</key>
<type>String</type>
<tagdesc>Envelope Number of a prior envelope</tagdesc> <tagdesc>Envelope Number of a prior envelope</tagdesc>
</ROW> </ROW>
<ROW num="38"> <ROW num="38">
@ -464,6 +501,7 @@
<minbytes>8</minbytes> <minbytes>8</minbytes>
<maxbytes>8</maxbytes> <maxbytes>8</maxbytes>
<key>Iptc.Application2.DateCreated</key> <key>Iptc.Application2.DateCreated</key>
<type>Date</type>
<tagdesc>Creation date of intellectual content</tagdesc> <tagdesc>Creation date of intellectual content</tagdesc>
</ROW> </ROW>
<ROW num="39"> <ROW num="39">
@ -476,6 +514,7 @@
<minbytes>11</minbytes> <minbytes>11</minbytes>
<maxbytes>11</maxbytes> <maxbytes>11</maxbytes>
<key>Iptc.Application2.TimeCreated</key> <key>Iptc.Application2.TimeCreated</key>
<type>Time</type>
<tagdesc>Creation time of intellectual content</tagdesc> <tagdesc>Creation time of intellectual content</tagdesc>
</ROW> </ROW>
<ROW num="40"> <ROW num="40">
@ -488,6 +527,7 @@
<minbytes>8</minbytes> <minbytes>8</minbytes>
<maxbytes>8</maxbytes> <maxbytes>8</maxbytes>
<key>Iptc.Application2.DigitizationDate</key> <key>Iptc.Application2.DigitizationDate</key>
<type>Date</type>
<tagdesc>Creation date of digital representation</tagdesc> <tagdesc>Creation date of digital representation</tagdesc>
</ROW> </ROW>
<ROW num="41"> <ROW num="41">
@ -500,6 +540,7 @@
<minbytes>11</minbytes> <minbytes>11</minbytes>
<maxbytes>11</maxbytes> <maxbytes>11</maxbytes>
<key>Iptc.Application2.DigitizationTime</key> <key>Iptc.Application2.DigitizationTime</key>
<type>Time</type>
<tagdesc>Creation time of digital representation</tagdesc> <tagdesc>Creation time of digital representation</tagdesc>
</ROW> </ROW>
<ROW num="42"> <ROW num="42">
@ -512,6 +553,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>32</maxbytes> <maxbytes>32</maxbytes>
<key>Iptc.Application2.Program</key> <key>Iptc.Application2.Program</key>
<type>String</type>
<tagdesc>Content creation program</tagdesc> <tagdesc>Content creation program</tagdesc>
</ROW> </ROW>
<ROW num="43"> <ROW num="43">
@ -524,6 +566,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>10</maxbytes> <maxbytes>10</maxbytes>
<key>Iptc.Application2.ProgramVersion</key> <key>Iptc.Application2.ProgramVersion</key>
<type>String</type>
<tagdesc>Content creation program version</tagdesc> <tagdesc>Content creation program version</tagdesc>
</ROW> </ROW>
<ROW num="44"> <ROW num="44">
@ -536,6 +579,7 @@
<minbytes>1</minbytes> <minbytes>1</minbytes>
<maxbytes>1</maxbytes> <maxbytes>1</maxbytes>
<key>Iptc.Application2.ObjectCycle</key> <key>Iptc.Application2.ObjectCycle</key>
<type>String</type>
<tagdesc>Morning</tagdesc> <tagdesc>Morning</tagdesc>
</ROW> </ROW>
<ROW num="45"> <ROW num="45">
@ -548,6 +592,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>32</maxbytes> <maxbytes>32</maxbytes>
<key>Iptc.Application2.Byline</key> <key>Iptc.Application2.Byline</key>
<type>String</type>
<tagdesc>Name of content creator</tagdesc> <tagdesc>Name of content creator</tagdesc>
</ROW> </ROW>
<ROW num="46"> <ROW num="46">
@ -560,6 +605,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>32</maxbytes> <maxbytes>32</maxbytes>
<key>Iptc.Application2.BylineTitle</key> <key>Iptc.Application2.BylineTitle</key>
<type>String</type>
<tagdesc>Title of content creator</tagdesc> <tagdesc>Title of content creator</tagdesc>
</ROW> </ROW>
<ROW num="47"> <ROW num="47">
@ -572,6 +618,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>32</maxbytes> <maxbytes>32</maxbytes>
<key>Iptc.Application2.City</key> <key>Iptc.Application2.City</key>
<type>String</type>
<tagdesc>City of content origin</tagdesc> <tagdesc>City of content origin</tagdesc>
</ROW> </ROW>
<ROW num="48"> <ROW num="48">
@ -584,6 +631,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>32</maxbytes> <maxbytes>32</maxbytes>
<key>Iptc.Application2.SubLocation</key> <key>Iptc.Application2.SubLocation</key>
<type>String</type>
<tagdesc>Location within city</tagdesc> <tagdesc>Location within city</tagdesc>
</ROW> </ROW>
<ROW num="49"> <ROW num="49">
@ -596,6 +644,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>32</maxbytes> <maxbytes>32</maxbytes>
<key>Iptc.Application2.ProvinceState</key> <key>Iptc.Application2.ProvinceState</key>
<type>String</type>
<tagdesc>Province/State of content origin</tagdesc> <tagdesc>Province/State of content origin</tagdesc>
</ROW> </ROW>
<ROW num="50"> <ROW num="50">
@ -608,6 +657,7 @@
<minbytes>3</minbytes> <minbytes>3</minbytes>
<maxbytes>3</maxbytes> <maxbytes>3</maxbytes>
<key>Iptc.Application2.CountryCode</key> <key>Iptc.Application2.CountryCode</key>
<type>String</type>
<tagdesc>ISO country code of content origin</tagdesc> <tagdesc>ISO country code of content origin</tagdesc>
</ROW> </ROW>
<ROW num="51"> <ROW num="51">
@ -620,6 +670,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>64</maxbytes> <maxbytes>64</maxbytes>
<key>Iptc.Application2.CountryName</key> <key>Iptc.Application2.CountryName</key>
<type>String</type>
<tagdesc>Full country name of content origin</tagdesc> <tagdesc>Full country name of content origin</tagdesc>
</ROW> </ROW>
<ROW num="52"> <ROW num="52">
@ -632,6 +683,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>32</maxbytes> <maxbytes>32</maxbytes>
<key>Iptc.Application2.TransmissionReference</key> <key>Iptc.Application2.TransmissionReference</key>
<type>String</type>
<tagdesc>Location of original transmission</tagdesc> <tagdesc>Location of original transmission</tagdesc>
</ROW> </ROW>
<ROW num="53"> <ROW num="53">
@ -644,6 +696,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>256</maxbytes> <maxbytes>256</maxbytes>
<key>Iptc.Application2.Headline</key> <key>Iptc.Application2.Headline</key>
<type>String</type>
<tagdesc>Content synopsis</tagdesc> <tagdesc>Content synopsis</tagdesc>
</ROW> </ROW>
<ROW num="54"> <ROW num="54">
@ -656,6 +709,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>32</maxbytes> <maxbytes>32</maxbytes>
<key>Iptc.Application2.Credit</key> <key>Iptc.Application2.Credit</key>
<type>String</type>
<tagdesc>Content provider</tagdesc> <tagdesc>Content provider</tagdesc>
</ROW> </ROW>
<ROW num="55"> <ROW num="55">
@ -668,6 +722,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>32</maxbytes> <maxbytes>32</maxbytes>
<key>Iptc.Application2.Source</key> <key>Iptc.Application2.Source</key>
<type>String</type>
<tagdesc>Original owner of content</tagdesc> <tagdesc>Original owner of content</tagdesc>
</ROW> </ROW>
<ROW num="56"> <ROW num="56">
@ -680,6 +735,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>128</maxbytes> <maxbytes>128</maxbytes>
<key>Iptc.Application2.Copyright</key> <key>Iptc.Application2.Copyright</key>
<type>String</type>
<tagdesc>Necessary copyright notice</tagdesc> <tagdesc>Necessary copyright notice</tagdesc>
</ROW> </ROW>
<ROW num="57"> <ROW num="57">
@ -692,6 +748,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>128</maxbytes> <maxbytes>128</maxbytes>
<key>Iptc.Application2.Contact</key> <key>Iptc.Application2.Contact</key>
<type>String</type>
<tagdesc>Person or organisation to contact</tagdesc> <tagdesc>Person or organisation to contact</tagdesc>
</ROW> </ROW>
<ROW num="58"> <ROW num="58">
@ -704,6 +761,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>2000</maxbytes> <maxbytes>2000</maxbytes>
<key>Iptc.Application2.Caption</key> <key>Iptc.Application2.Caption</key>
<type>String</type>
<tagdesc>Content description</tagdesc> <tagdesc>Content description</tagdesc>
</ROW> </ROW>
<ROW num="59"> <ROW num="59">
@ -716,6 +774,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>32</maxbytes> <maxbytes>32</maxbytes>
<key>Iptc.Application2.Writer</key> <key>Iptc.Application2.Writer</key>
<type>String</type>
<tagdesc>Person responsible for caption</tagdesc> <tagdesc>Person responsible for caption</tagdesc>
</ROW> </ROW>
<ROW num="60"> <ROW num="60">
@ -728,6 +787,7 @@
<minbytes>7360</minbytes> <minbytes>7360</minbytes>
<maxbytes>7360</maxbytes> <maxbytes>7360</maxbytes>
<key>Iptc.Application2.RasterizedCaption</key> <key>Iptc.Application2.RasterizedCaption</key>
<type>Undefined</type>
<tagdesc>Black and white caption image</tagdesc> <tagdesc>Black and white caption image</tagdesc>
</ROW> </ROW>
<ROW num="61"> <ROW num="61">
@ -740,6 +800,7 @@
<minbytes>2</minbytes> <minbytes>2</minbytes>
<maxbytes>2</maxbytes> <maxbytes>2</maxbytes>
<key>Iptc.Application2.ImageType</key> <key>Iptc.Application2.ImageType</key>
<type>String</type>
<tagdesc>Color components in an image</tagdesc> <tagdesc>Color components in an image</tagdesc>
</ROW> </ROW>
<ROW num="62"> <ROW num="62">
@ -752,6 +813,7 @@
<minbytes>1</minbytes> <minbytes>1</minbytes>
<maxbytes>1</maxbytes> <maxbytes>1</maxbytes>
<key>Iptc.Application2.ImageOrientation</key> <key>Iptc.Application2.ImageOrientation</key>
<type>String</type>
<tagdesc>Indicates the layout of an image</tagdesc> <tagdesc>Indicates the layout of an image</tagdesc>
</ROW> </ROW>
<ROW num="63"> <ROW num="63">
@ -764,6 +826,7 @@
<minbytes>2</minbytes> <minbytes>2</minbytes>
<maxbytes>3</maxbytes> <maxbytes>3</maxbytes>
<key>Iptc.Application2.Language</key> <key>Iptc.Application2.Language</key>
<type>String</type>
<tagdesc>ISO 639:1988 language code</tagdesc> <tagdesc>ISO 639:1988 language code</tagdesc>
</ROW> </ROW>
<ROW num="64"> <ROW num="64">
@ -776,6 +839,7 @@
<minbytes>2</minbytes> <minbytes>2</minbytes>
<maxbytes>2</maxbytes> <maxbytes>2</maxbytes>
<key>Iptc.Application2.AudioType</key> <key>Iptc.Application2.AudioType</key>
<type>String</type>
<tagdesc>Information about audio content</tagdesc> <tagdesc>Information about audio content</tagdesc>
</ROW> </ROW>
<ROW num="65"> <ROW num="65">
@ -788,6 +852,7 @@
<minbytes>6</minbytes> <minbytes>6</minbytes>
<maxbytes>6</maxbytes> <maxbytes>6</maxbytes>
<key>Iptc.Application2.AudioRate</key> <key>Iptc.Application2.AudioRate</key>
<type>String</type>
<tagdesc>Sampling rate of audio content</tagdesc> <tagdesc>Sampling rate of audio content</tagdesc>
</ROW> </ROW>
<ROW num="66"> <ROW num="66">
@ -800,6 +865,7 @@
<minbytes>2</minbytes> <minbytes>2</minbytes>
<maxbytes>2</maxbytes> <maxbytes>2</maxbytes>
<key>Iptc.Application2.AudioResolution</key> <key>Iptc.Application2.AudioResolution</key>
<type>String</type>
<tagdesc>Sampling resolution of audio content</tagdesc> <tagdesc>Sampling resolution of audio content</tagdesc>
</ROW> </ROW>
<ROW num="67"> <ROW num="67">
@ -812,6 +878,7 @@
<minbytes>6</minbytes> <minbytes>6</minbytes>
<maxbytes>6</maxbytes> <maxbytes>6</maxbytes>
<key>Iptc.Application2.AudioDuration</key> <key>Iptc.Application2.AudioDuration</key>
<type>String</type>
<tagdesc>Duration of audio content</tagdesc> <tagdesc>Duration of audio content</tagdesc>
</ROW> </ROW>
<ROW num="68"> <ROW num="68">
@ -824,6 +891,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>64</maxbytes> <maxbytes>64</maxbytes>
<key>Iptc.Application2.AudioOutcue</key> <key>Iptc.Application2.AudioOutcue</key>
<type>String</type>
<tagdesc>Final words or sounds of audio content</tagdesc> <tagdesc>Final words or sounds of audio content</tagdesc>
</ROW> </ROW>
<ROW num="69"> <ROW num="69">
@ -836,6 +904,7 @@
<minbytes>2</minbytes> <minbytes>2</minbytes>
<maxbytes>2</maxbytes> <maxbytes>2</maxbytes>
<key>Iptc.Application2.PreviewFormat</key> <key>Iptc.Application2.PreviewFormat</key>
<type>Short</type>
<tagdesc>IIM appendix A file format of preview</tagdesc> <tagdesc>IIM appendix A file format of preview</tagdesc>
</ROW> </ROW>
<ROW num="70"> <ROW num="70">
@ -848,6 +917,7 @@
<minbytes>2</minbytes> <minbytes>2</minbytes>
<maxbytes>2</maxbytes> <maxbytes>2</maxbytes>
<key>Iptc.Application2.PreviewVersion</key> <key>Iptc.Application2.PreviewVersion</key>
<type>Short</type>
<tagdesc>File format version of preview</tagdesc> <tagdesc>File format version of preview</tagdesc>
</ROW> </ROW>
<ROW num="71"> <ROW num="71">
@ -860,6 +930,7 @@
<minbytes>0</minbytes> <minbytes>0</minbytes>
<maxbytes>256000</maxbytes> <maxbytes>256000</maxbytes>
<key>Iptc.Application2.Preview</key> <key>Iptc.Application2.Preview</key>
<type>Undefined</type>
<tagdesc>Binary preview data</tagdesc> <tagdesc>Binary preview data</tagdesc>
</ROW> </ROW>
</ROWSET> </ROWSET>

@ -53,10 +53,11 @@ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" />
<!-- *********************************************************************** --> <!-- *********************************************************************** -->
<xsl:template name="column-group"> <xsl:template name="column-group">
<colgroup> <colgroup>
<col align="center" />
<col align="right" />
<col />
<col /> <col />
<col /> <col />
<col align="right" />
<col align="center" />
<col align="center" /> <col align="center" />
<col align="center" /> <col align="center" />
<col align="right" /> <col align="right" />
@ -68,15 +69,16 @@ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" />
<!-- *********************************************************************** --> <!-- *********************************************************************** -->
<xsl:template name="header-row"> <xsl:template name="header-row">
<tr> <tr>
<th>Tag name</th>
<th>Tag description</th>
<th>Tag (dec)</th>
<th>Tag (hex)</th> <th>Tag (hex)</th>
<th>Mandatory</th> <th>Tag (dec)</th>
<th>Repeatable</th> <th>Record</th>
<th>Key</th>
<th>Type</th>
<th><abbr title="Mandatory">M.</abbr></th>
<th><abbr title="Repeatable">R.</abbr></th>
<th>Min. bytes</th> <th>Min. bytes</th>
<th>Max. bytes</th> <th>Max. bytes</th>
<th>Key</th> <th>Tag description</th>
</tr> </tr>
</xsl:template> </xsl:template>
@ -98,10 +100,11 @@ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" />
<xsl:template name="data-row"> <xsl:template name="data-row">
<xsl:param name="rowClass" /> <xsl:param name="rowClass" />
<tr><xsl:attribute name="class"><xsl:value-of select="$rowClass" /></xsl:attribute> <tr><xsl:attribute name="class"><xsl:value-of select="$rowClass" /></xsl:attribute>
<td><xsl:value-of select="tagname" /></td>
<td><xsl:value-of select="tagdesc" /></td>
<td><xsl:value-of select="tagdec" /></td>
<td><xsl:value-of select="taghex" /></td> <td><xsl:value-of select="taghex" /></td>
<td><xsl:value-of select="tagdec" /></td>
<td><xsl:value-of select="recname" /></td>
<td><xsl:value-of select="key" /></td>
<td><xsl:value-of select="type" /></td>
<td> <td>
<xsl:choose> <xsl:choose>
<xsl:when test="mandatory = 'true'"> <xsl:when test="mandatory = 'true'">
@ -130,7 +133,7 @@ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" />
</td> </td>
<td><xsl:value-of select="minbytes" /></td> <td><xsl:value-of select="minbytes" /></td>
<td><xsl:value-of select="maxbytes" /></td> <td><xsl:value-of select="maxbytes" /></td>
<td><xsl:value-of select="key" /></td> <td><xsl:value-of select="tagdesc" /></td>
</tr> </tr>
</xsl:template> </xsl:template>
@ -140,7 +143,7 @@ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" />
//<![CDATA[ //<![CDATA[
var t1 = new SortableTable( var t1 = new SortableTable(
document.getElementById("report-1"), document.getElementById("report-1"),
["String", "String", "Number", "String", "String", "String", "Number", "Number", "String"] ["String", "Number", "String", "String", "String", "String", "String", "Number", "Number", "String"]
); );
t1.onsort = function () { t1.onsort = function () {
var rows = t1.tBody.rows; var rows = t1.tBody.rows;

@ -10,67 +10,111 @@
</HEADER> </HEADER>
<ROWSET> <ROWSET>
<ROW num="1"> <ROW num="1">
<tagname>0x0000</tagname>
<tagdec>0</tagdec>
<taghex>0x0000</taghex>
<ifd>Makernote</ifd>
<key>Exif.Canon.0x0000</key>
<type>Short</type>
<tagdesc>Unknown</tagdesc>
</ROW>
<ROW num="2">
<tagname>CameraSettings1</tagname> <tagname>CameraSettings1</tagname>
<tagdec>1</tagdec> <tagdec>1</tagdec>
<taghex>0x0001</taghex> <taghex>0x0001</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Canon.CameraSettings1</key> <key>Exif.Canon.CameraSettings1</key>
<type>Short</type>
<tagdesc>Various camera settings (1)</tagdesc> <tagdesc>Various camera settings (1)</tagdesc>
</ROW> </ROW>
<ROW num="2"> <ROW num="3">
<tagname>0x0002</tagname>
<tagdec>2</tagdec>
<taghex>0x0002</taghex>
<ifd>Makernote</ifd>
<key>Exif.Canon.0x0002</key>
<type>Short</type>
<tagdesc>Unknown</tagdesc>
</ROW>
<ROW num="4">
<tagname>0x0003</tagname>
<tagdec>3</tagdec>
<taghex>0x0003</taghex>
<ifd>Makernote</ifd>
<key>Exif.Canon.0x0003</key>
<type>Short</type>
<tagdesc>Unknown</tagdesc>
</ROW>
<ROW num="5">
<tagname>CameraSettings2</tagname> <tagname>CameraSettings2</tagname>
<tagdec>4</tagdec> <tagdec>4</tagdec>
<taghex>0x0004</taghex> <taghex>0x0004</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Canon.CameraSettings2</key> <key>Exif.Canon.CameraSettings2</key>
<type>Short</type>
<tagdesc>Various camera settings (2)</tagdesc> <tagdesc>Various camera settings (2)</tagdesc>
</ROW> </ROW>
<ROW num="3"> <ROW num="6">
<tagname>ImageType</tagname> <tagname>ImageType</tagname>
<tagdec>6</tagdec> <tagdec>6</tagdec>
<taghex>0x0006</taghex> <taghex>0x0006</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Canon.ImageType</key> <key>Exif.Canon.ImageType</key>
<type>Ascii</type>
<tagdesc>Image type</tagdesc> <tagdesc>Image type</tagdesc>
</ROW> </ROW>
<ROW num="4"> <ROW num="7">
<tagname>FirmwareVersion</tagname> <tagname>FirmwareVersion</tagname>
<tagdec>7</tagdec> <tagdec>7</tagdec>
<taghex>0x0007</taghex> <taghex>0x0007</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Canon.FirmwareVersion</key> <key>Exif.Canon.FirmwareVersion</key>
<type>Ascii</type>
<tagdesc>Firmware version</tagdesc> <tagdesc>Firmware version</tagdesc>
</ROW> </ROW>
<ROW num="5"> <ROW num="8">
<tagname>ImageNumber</tagname> <tagname>ImageNumber</tagname>
<tagdec>8</tagdec> <tagdec>8</tagdec>
<taghex>0x0008</taghex> <taghex>0x0008</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Canon.ImageNumber</key> <key>Exif.Canon.ImageNumber</key>
<type>Long</type>
<tagdesc>Image number</tagdesc> <tagdesc>Image number</tagdesc>
</ROW> </ROW>
<ROW num="6"> <ROW num="9">
<tagname>OwnerName</tagname> <tagname>OwnerName</tagname>
<tagdec>9</tagdec> <tagdec>9</tagdec>
<taghex>0x0009</taghex> <taghex>0x0009</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Canon.OwnerName</key> <key>Exif.Canon.OwnerName</key>
<type>Ascii</type>
<tagdesc>Owner Name</tagdesc> <tagdesc>Owner Name</tagdesc>
</ROW> </ROW>
<ROW num="7"> <ROW num="10">
<tagname>SerialNumber</tagname> <tagname>SerialNumber</tagname>
<tagdec>12</tagdec> <tagdec>12</tagdec>
<taghex>0x000c</taghex> <taghex>0x000c</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Canon.SerialNumber</key> <key>Exif.Canon.SerialNumber</key>
<type>Long</type>
<tagdesc>Camera serial number</tagdesc> <tagdesc>Camera serial number</tagdesc>
</ROW> </ROW>
<ROW num="8"> <ROW num="11">
<tagname>0x000d</tagname>
<tagdec>13</tagdec>
<taghex>0x000d</taghex>
<ifd>Makernote</ifd>
<key>Exif.Canon.0x000d</key>
<type>Short</type>
<tagdesc>Unknown</tagdesc>
</ROW>
<ROW num="12">
<tagname>EosD30Functions</tagname> <tagname>EosD30Functions</tagname>
<tagdec>15</tagdec> <tagdec>15</tagdec>
<taghex>0x000f</taghex> <taghex>0x000f</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Canon.EosD30Functions</key> <key>Exif.Canon.EosD30Functions</key>
<type>Short</type>
<tagdesc>EOS D30 Custom Functions</tagdesc> <tagdesc>EOS D30 Custom Functions</tagdesc>
</ROW> </ROW>
</ROWSET> </ROWSET>

@ -15,6 +15,7 @@
<taghex>0x0000</taghex> <taghex>0x0000</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Fujifilm.Version</key> <key>Exif.Fujifilm.Version</key>
<type>Undefined</type>
<tagdesc>Fujifilm Makernote version</tagdesc> <tagdesc>Fujifilm Makernote version</tagdesc>
</ROW> </ROW>
<ROW num="2"> <ROW num="2">
@ -23,6 +24,7 @@
<taghex>0x1000</taghex> <taghex>0x1000</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Fujifilm.Quality</key> <key>Exif.Fujifilm.Quality</key>
<type>Ascii</type>
<tagdesc>Image quality setting</tagdesc> <tagdesc>Image quality setting</tagdesc>
</ROW> </ROW>
<ROW num="3"> <ROW num="3">
@ -31,6 +33,7 @@
<taghex>0x1001</taghex> <taghex>0x1001</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Fujifilm.Sharpness</key> <key>Exif.Fujifilm.Sharpness</key>
<type>Short</type>
<tagdesc>Sharpness setting</tagdesc> <tagdesc>Sharpness setting</tagdesc>
</ROW> </ROW>
<ROW num="4"> <ROW num="4">
@ -39,6 +42,7 @@
<taghex>0x1002</taghex> <taghex>0x1002</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Fujifilm.WhiteBalance</key> <key>Exif.Fujifilm.WhiteBalance</key>
<type>Short</type>
<tagdesc>White balance setting</tagdesc> <tagdesc>White balance setting</tagdesc>
</ROW> </ROW>
<ROW num="5"> <ROW num="5">
@ -47,6 +51,7 @@
<taghex>0x1003</taghex> <taghex>0x1003</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Fujifilm.Color</key> <key>Exif.Fujifilm.Color</key>
<type>Short</type>
<tagdesc>Chroma saturation setting</tagdesc> <tagdesc>Chroma saturation setting</tagdesc>
</ROW> </ROW>
<ROW num="6"> <ROW num="6">
@ -55,6 +60,7 @@
<taghex>0x1004</taghex> <taghex>0x1004</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Fujifilm.Tone</key> <key>Exif.Fujifilm.Tone</key>
<type>Short</type>
<tagdesc>Contrast setting</tagdesc> <tagdesc>Contrast setting</tagdesc>
</ROW> </ROW>
<ROW num="7"> <ROW num="7">
@ -63,6 +69,7 @@
<taghex>0x1010</taghex> <taghex>0x1010</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Fujifilm.FlashMode</key> <key>Exif.Fujifilm.FlashMode</key>
<type>Short</type>
<tagdesc>Flash firing mode setting</tagdesc> <tagdesc>Flash firing mode setting</tagdesc>
</ROW> </ROW>
<ROW num="8"> <ROW num="8">
@ -71,6 +78,7 @@
<taghex>0x1011</taghex> <taghex>0x1011</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Fujifilm.FlashStrength</key> <key>Exif.Fujifilm.FlashStrength</key>
<type>SRational</type>
<tagdesc>Flash firing strength compensation setting</tagdesc> <tagdesc>Flash firing strength compensation setting</tagdesc>
</ROW> </ROW>
<ROW num="9"> <ROW num="9">
@ -79,6 +87,7 @@
<taghex>0x1020</taghex> <taghex>0x1020</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Fujifilm.Macro</key> <key>Exif.Fujifilm.Macro</key>
<type>Short</type>
<tagdesc>Macro mode setting</tagdesc> <tagdesc>Macro mode setting</tagdesc>
</ROW> </ROW>
<ROW num="10"> <ROW num="10">
@ -87,54 +96,97 @@
<taghex>0x1021</taghex> <taghex>0x1021</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Fujifilm.FocusMode</key> <key>Exif.Fujifilm.FocusMode</key>
<type>Short</type>
<tagdesc>Focusing mode setting</tagdesc> <tagdesc>Focusing mode setting</tagdesc>
</ROW> </ROW>
<ROW num="11"> <ROW num="11">
<tagname>0x1022</tagname>
<tagdec>4130</tagdec>
<taghex>0x1022</taghex>
<ifd>Makernote</ifd>
<key>Exif.Fujifilm.0x1022</key>
<type>Short</type>
<tagdesc>Unknown</tagdesc>
</ROW>
<ROW num="12">
<tagname>SlowSync</tagname> <tagname>SlowSync</tagname>
<tagdec>4144</tagdec> <tagdec>4144</tagdec>
<taghex>0x1030</taghex> <taghex>0x1030</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Fujifilm.SlowSync</key> <key>Exif.Fujifilm.SlowSync</key>
<type>Short</type>
<tagdesc>Slow synchro mode setting</tagdesc> <tagdesc>Slow synchro mode setting</tagdesc>
</ROW> </ROW>
<ROW num="12"> <ROW num="13">
<tagname>PictureMode</tagname> <tagname>PictureMode</tagname>
<tagdec>4145</tagdec> <tagdec>4145</tagdec>
<taghex>0x1031</taghex> <taghex>0x1031</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Fujifilm.PictureMode</key> <key>Exif.Fujifilm.PictureMode</key>
<type>Short</type>
<tagdesc>Picture mode setting</tagdesc> <tagdesc>Picture mode setting</tagdesc>
</ROW> </ROW>
<ROW num="13"> <ROW num="14">
<tagname>0x1032</tagname>
<tagdec>4146</tagdec>
<taghex>0x1032</taghex>
<ifd>Makernote</ifd>
<key>Exif.Fujifilm.0x1032</key>
<type>Short</type>
<tagdesc>Unknown</tagdesc>
</ROW>
<ROW num="15">
<tagname>Continuous</tagname> <tagname>Continuous</tagname>
<tagdec>4352</tagdec> <tagdec>4352</tagdec>
<taghex>0x1100</taghex> <taghex>0x1100</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Fujifilm.Continuous</key> <key>Exif.Fujifilm.Continuous</key>
<type>Short</type>
<tagdesc>Continuous shooting or auto bracketing setting</tagdesc> <tagdesc>Continuous shooting or auto bracketing setting</tagdesc>
</ROW> </ROW>
<ROW num="14"> <ROW num="16">
<tagname>0x1101</tagname>
<tagdec>4353</tagdec>
<taghex>0x1101</taghex>
<ifd>Makernote</ifd>
<key>Exif.Fujifilm.0x1101</key>
<type>Short</type>
<tagdesc>Unknown</tagdesc>
</ROW>
<ROW num="17">
<tagname>0x1200</tagname>
<tagdec>4608</tagdec>
<taghex>0x1200</taghex>
<ifd>Makernote</ifd>
<key>Exif.Fujifilm.0x1200</key>
<type>Short</type>
<tagdesc>Unknown</tagdesc>
</ROW>
<ROW num="18">
<tagname>BlurWarning</tagname> <tagname>BlurWarning</tagname>
<tagdec>4864</tagdec> <tagdec>4864</tagdec>
<taghex>0x1300</taghex> <taghex>0x1300</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Fujifilm.BlurWarning</key> <key>Exif.Fujifilm.BlurWarning</key>
<type>Short</type>
<tagdesc>Blur warning status</tagdesc> <tagdesc>Blur warning status</tagdesc>
</ROW> </ROW>
<ROW num="15"> <ROW num="19">
<tagname>FocusWarning</tagname> <tagname>FocusWarning</tagname>
<tagdec>4865</tagdec> <tagdec>4865</tagdec>
<taghex>0x1301</taghex> <taghex>0x1301</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Fujifilm.FocusWarning</key> <key>Exif.Fujifilm.FocusWarning</key>
<type>Short</type>
<tagdesc>Auto Focus warning status</tagdesc> <tagdesc>Auto Focus warning status</tagdesc>
</ROW> </ROW>
<ROW num="16"> <ROW num="20">
<tagname>AeWarning</tagname> <tagname>AeWarning</tagname>
<tagdec>4866</tagdec> <tagdec>4866</tagdec>
<taghex>0x1302</taghex> <taghex>0x1302</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Fujifilm.AeWarning</key> <key>Exif.Fujifilm.AeWarning</key>
<type>Short</type>
<tagdesc>Auto Exposure warning status</tagdesc> <tagdesc>Auto Exposure warning status</tagdesc>
</ROW> </ROW>
</ROWSET> </ROWSET>

@ -15,6 +15,7 @@
<taghex>0x0001</taghex> <taghex>0x0001</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon1.Version</key> <key>Exif.Nikon1.Version</key>
<type>Undefined</type>
<tagdesc>Nikon Makernote version</tagdesc> <tagdesc>Nikon Makernote version</tagdesc>
</ROW> </ROW>
<ROW num="2"> <ROW num="2">
@ -23,6 +24,7 @@
<taghex>0x0002</taghex> <taghex>0x0002</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon1.ISOSpeed</key> <key>Exif.Nikon1.ISOSpeed</key>
<type>Short</type>
<tagdesc>ISO speed setting</tagdesc> <tagdesc>ISO speed setting</tagdesc>
</ROW> </ROW>
<ROW num="3"> <ROW num="3">
@ -31,6 +33,7 @@
<taghex>0x0003</taghex> <taghex>0x0003</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon1.ColorMode</key> <key>Exif.Nikon1.ColorMode</key>
<type>Ascii</type>
<tagdesc>Color mode</tagdesc> <tagdesc>Color mode</tagdesc>
</ROW> </ROW>
<ROW num="4"> <ROW num="4">
@ -39,6 +42,7 @@
<taghex>0x0004</taghex> <taghex>0x0004</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon1.Quality</key> <key>Exif.Nikon1.Quality</key>
<type>Ascii</type>
<tagdesc>Image quality setting</tagdesc> <tagdesc>Image quality setting</tagdesc>
</ROW> </ROW>
<ROW num="5"> <ROW num="5">
@ -47,6 +51,7 @@
<taghex>0x0005</taghex> <taghex>0x0005</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon1.WhiteBalance</key> <key>Exif.Nikon1.WhiteBalance</key>
<type>Ascii</type>
<tagdesc>White balance</tagdesc> <tagdesc>White balance</tagdesc>
</ROW> </ROW>
<ROW num="6"> <ROW num="6">
@ -55,6 +60,7 @@
<taghex>0x0006</taghex> <taghex>0x0006</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon1.Sharpening</key> <key>Exif.Nikon1.Sharpening</key>
<type>Ascii</type>
<tagdesc>Image sharpening setting</tagdesc> <tagdesc>Image sharpening setting</tagdesc>
</ROW> </ROW>
<ROW num="7"> <ROW num="7">
@ -63,6 +69,7 @@
<taghex>0x0007</taghex> <taghex>0x0007</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon1.Focus</key> <key>Exif.Nikon1.Focus</key>
<type>Ascii</type>
<tagdesc>Focus mode</tagdesc> <tagdesc>Focus mode</tagdesc>
</ROW> </ROW>
<ROW num="8"> <ROW num="8">
@ -71,54 +78,79 @@
<taghex>0x0008</taghex> <taghex>0x0008</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon1.Flash</key> <key>Exif.Nikon1.Flash</key>
<type>Ascii</type>
<tagdesc>Flash mode</tagdesc> <tagdesc>Flash mode</tagdesc>
</ROW> </ROW>
<ROW num="9"> <ROW num="9">
<tagname>0x000a</tagname>
<tagdec>10</tagdec>
<taghex>0x000a</taghex>
<ifd>Makernote</ifd>
<key>Exif.Nikon1.0x000a</key>
<type>Rational</type>
<tagdesc>Unknown</tagdesc>
</ROW>
<ROW num="10">
<tagname>ISOSelection</tagname> <tagname>ISOSelection</tagname>
<tagdec>15</tagdec> <tagdec>15</tagdec>
<taghex>0x000f</taghex> <taghex>0x000f</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon1.ISOSelection</key> <key>Exif.Nikon1.ISOSelection</key>
<type>Ascii</type>
<tagdesc>ISO selection</tagdesc> <tagdesc>ISO selection</tagdesc>
</ROW> </ROW>
<ROW num="10"> <ROW num="11">
<tagname>DataDump</tagname>
<tagdec>16</tagdec>
<taghex>0x0010</taghex>
<ifd>Makernote</ifd>
<key>Exif.Nikon1.DataDump</key>
<type>Undefined</type>
<tagdesc>Data dump</tagdesc>
</ROW>
<ROW num="12">
<tagname>ImageAdjustment</tagname> <tagname>ImageAdjustment</tagname>
<tagdec>128</tagdec> <tagdec>128</tagdec>
<taghex>0x0080</taghex> <taghex>0x0080</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon1.ImageAdjustment</key> <key>Exif.Nikon1.ImageAdjustment</key>
<type>Ascii</type>
<tagdesc>Image adjustment setting</tagdesc> <tagdesc>Image adjustment setting</tagdesc>
</ROW> </ROW>
<ROW num="11"> <ROW num="13">
<tagname>Adapter</tagname> <tagname>Adapter</tagname>
<tagdec>130</tagdec> <tagdec>130</tagdec>
<taghex>0x0082</taghex> <taghex>0x0082</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon1.Adapter</key> <key>Exif.Nikon1.Adapter</key>
<type>Ascii</type>
<tagdesc>Adapter used</tagdesc> <tagdesc>Adapter used</tagdesc>
</ROW> </ROW>
<ROW num="12"> <ROW num="14">
<tagname>FocusDistance</tagname> <tagname>FocusDistance</tagname>
<tagdec>133</tagdec> <tagdec>133</tagdec>
<taghex>0x0085</taghex> <taghex>0x0085</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon1.FocusDistance</key> <key>Exif.Nikon1.FocusDistance</key>
<type>Rational</type>
<tagdesc>Manual focus distance</tagdesc> <tagdesc>Manual focus distance</tagdesc>
</ROW> </ROW>
<ROW num="13"> <ROW num="15">
<tagname>DigitalZoom</tagname> <tagname>DigitalZoom</tagname>
<tagdec>134</tagdec> <tagdec>134</tagdec>
<taghex>0x0086</taghex> <taghex>0x0086</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon1.DigitalZoom</key> <key>Exif.Nikon1.DigitalZoom</key>
<type>Rational</type>
<tagdesc>Digital zoom setting</tagdesc> <tagdesc>Digital zoom setting</tagdesc>
</ROW> </ROW>
<ROW num="14"> <ROW num="16">
<tagname>AFFocusPos</tagname> <tagname>AFFocusPos</tagname>
<tagdec>136</tagdec> <tagdec>136</tagdec>
<taghex>0x0088</taghex> <taghex>0x0088</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon1.AFFocusPos</key> <key>Exif.Nikon1.AFFocusPos</key>
<type>Undefined</type>
<tagdesc>AF focus position</tagdesc> <tagdesc>AF focus position</tagdesc>
</ROW> </ROW>
</ROWSET> </ROWSET>

@ -10,68 +10,103 @@
</HEADER> </HEADER>
<ROWSET> <ROWSET>
<ROW num="1"> <ROW num="1">
<tagname>0x0002</tagname>
<tagdec>2</tagdec>
<taghex>0x0002</taghex>
<ifd>Makernote</ifd>
<key>Exif.Nikon2.0x0002</key>
<type>Ascii</type>
<tagdesc>Unknown</tagdesc>
</ROW>
<ROW num="2">
<tagname>Quality</tagname> <tagname>Quality</tagname>
<tagdec>3</tagdec> <tagdec>3</tagdec>
<taghex>0x0003</taghex> <taghex>0x0003</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon2.Quality</key> <key>Exif.Nikon2.Quality</key>
<type>Short</type>
<tagdesc>Image quality setting</tagdesc> <tagdesc>Image quality setting</tagdesc>
</ROW> </ROW>
<ROW num="2"> <ROW num="3">
<tagname>ColorMode</tagname> <tagname>ColorMode</tagname>
<tagdec>4</tagdec> <tagdec>4</tagdec>
<taghex>0x0004</taghex> <taghex>0x0004</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon2.ColorMode</key> <key>Exif.Nikon2.ColorMode</key>
<type>Short</type>
<tagdesc>Color mode</tagdesc> <tagdesc>Color mode</tagdesc>
</ROW> </ROW>
<ROW num="3"> <ROW num="4">
<tagname>ImageAdjustment</tagname> <tagname>ImageAdjustment</tagname>
<tagdec>5</tagdec> <tagdec>5</tagdec>
<taghex>0x0005</taghex> <taghex>0x0005</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon2.ImageAdjustment</key> <key>Exif.Nikon2.ImageAdjustment</key>
<type>Short</type>
<tagdesc>Image adjustment setting</tagdesc> <tagdesc>Image adjustment setting</tagdesc>
</ROW> </ROW>
<ROW num="4"> <ROW num="5">
<tagname>ISOSpeed</tagname> <tagname>ISOSpeed</tagname>
<tagdec>6</tagdec> <tagdec>6</tagdec>
<taghex>0x0006</taghex> <taghex>0x0006</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon2.ISOSpeed</key> <key>Exif.Nikon2.ISOSpeed</key>
<type>Short</type>
<tagdesc>ISO speed setting</tagdesc> <tagdesc>ISO speed setting</tagdesc>
</ROW> </ROW>
<ROW num="5"> <ROW num="6">
<tagname>WhiteBalance</tagname> <tagname>WhiteBalance</tagname>
<tagdec>7</tagdec> <tagdec>7</tagdec>
<taghex>0x0007</taghex> <taghex>0x0007</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon2.WhiteBalance</key> <key>Exif.Nikon2.WhiteBalance</key>
<type>Short</type>
<tagdesc>White balance</tagdesc> <tagdesc>White balance</tagdesc>
</ROW> </ROW>
<ROW num="6"> <ROW num="7">
<tagname>Focus</tagname> <tagname>Focus</tagname>
<tagdec>8</tagdec> <tagdec>8</tagdec>
<taghex>0x0008</taghex> <taghex>0x0008</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon2.Focus</key> <key>Exif.Nikon2.Focus</key>
<type>Rational</type>
<tagdesc>Focus mode</tagdesc> <tagdesc>Focus mode</tagdesc>
</ROW> </ROW>
<ROW num="7"> <ROW num="8">
<tagname>0x0009</tagname>
<tagdec>9</tagdec>
<taghex>0x0009</taghex>
<ifd>Makernote</ifd>
<key>Exif.Nikon2.0x0009</key>
<type>Ascii</type>
<tagdesc>Unknown</tagdesc>
</ROW>
<ROW num="9">
<tagname>DigitalZoom</tagname> <tagname>DigitalZoom</tagname>
<tagdec>10</tagdec> <tagdec>10</tagdec>
<taghex>0x000a</taghex> <taghex>0x000a</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon2.DigitalZoom</key> <key>Exif.Nikon2.DigitalZoom</key>
<type>Rational</type>
<tagdesc>Digital zoom setting</tagdesc> <tagdesc>Digital zoom setting</tagdesc>
</ROW> </ROW>
<ROW num="8"> <ROW num="10">
<tagname>Adapter</tagname> <tagname>Adapter</tagname>
<tagdec>11</tagdec> <tagdec>11</tagdec>
<taghex>0x000b</taghex> <taghex>0x000b</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon2.Adapter</key> <key>Exif.Nikon2.Adapter</key>
<type>Short</type>
<tagdesc>Adapter used</tagdesc> <tagdesc>Adapter used</tagdesc>
</ROW> </ROW>
<ROW num="11">
<tagname>0x0f00</tagname>
<tagdec>3840</tagdec>
<taghex>0x0f00</taghex>
<ifd>Makernote</ifd>
<key>Exif.Nikon2.0x0f00</key>
<type>Long</type>
<tagdesc>Unknown</tagdesc>
</ROW>
</ROWSET> </ROWSET>
</TAGLIST> </TAGLIST>

@ -15,6 +15,7 @@
<taghex>0x0001</taghex> <taghex>0x0001</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.Version</key> <key>Exif.Nikon3.Version</key>
<type>Undefined</type>
<tagdesc>Nikon Makernote version</tagdesc> <tagdesc>Nikon Makernote version</tagdesc>
</ROW> </ROW>
<ROW num="2"> <ROW num="2">
@ -23,6 +24,7 @@
<taghex>0x0002</taghex> <taghex>0x0002</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.ISOSpeed</key> <key>Exif.Nikon3.ISOSpeed</key>
<type>Short</type>
<tagdesc>ISO speed used</tagdesc> <tagdesc>ISO speed used</tagdesc>
</ROW> </ROW>
<ROW num="3"> <ROW num="3">
@ -31,6 +33,7 @@
<taghex>0x0003</taghex> <taghex>0x0003</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.ColorMode</key> <key>Exif.Nikon3.ColorMode</key>
<type>Ascii</type>
<tagdesc>Color mode</tagdesc> <tagdesc>Color mode</tagdesc>
</ROW> </ROW>
<ROW num="4"> <ROW num="4">
@ -39,6 +42,7 @@
<taghex>0x0004</taghex> <taghex>0x0004</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.Quality</key> <key>Exif.Nikon3.Quality</key>
<type>Ascii</type>
<tagdesc>Image quality setting</tagdesc> <tagdesc>Image quality setting</tagdesc>
</ROW> </ROW>
<ROW num="5"> <ROW num="5">
@ -47,6 +51,7 @@
<taghex>0x0005</taghex> <taghex>0x0005</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.WhiteBalance</key> <key>Exif.Nikon3.WhiteBalance</key>
<type>Ascii</type>
<tagdesc>White balance</tagdesc> <tagdesc>White balance</tagdesc>
</ROW> </ROW>
<ROW num="6"> <ROW num="6">
@ -55,6 +60,7 @@
<taghex>0x0006</taghex> <taghex>0x0006</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.Sharpening</key> <key>Exif.Nikon3.Sharpening</key>
<type>Ascii</type>
<tagdesc>Image sharpening setting</tagdesc> <tagdesc>Image sharpening setting</tagdesc>
</ROW> </ROW>
<ROW num="7"> <ROW num="7">
@ -63,6 +69,7 @@
<taghex>0x0007</taghex> <taghex>0x0007</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.Focus</key> <key>Exif.Nikon3.Focus</key>
<type>Ascii</type>
<tagdesc>Focus mode</tagdesc> <tagdesc>Focus mode</tagdesc>
</ROW> </ROW>
<ROW num="8"> <ROW num="8">
@ -71,6 +78,7 @@
<taghex>0x0008</taghex> <taghex>0x0008</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.FlashSetting</key> <key>Exif.Nikon3.FlashSetting</key>
<type>Ascii</type>
<tagdesc>Flash setting</tagdesc> <tagdesc>Flash setting</tagdesc>
</ROW> </ROW>
<ROW num="9"> <ROW num="9">
@ -79,6 +87,7 @@
<taghex>0x0009</taghex> <taghex>0x0009</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.FlashMode</key> <key>Exif.Nikon3.FlashMode</key>
<type>Ascii</type>
<tagdesc>Flash mode</tagdesc> <tagdesc>Flash mode</tagdesc>
</ROW> </ROW>
<ROW num="10"> <ROW num="10">
@ -87,15 +96,17 @@
<taghex>0x000b</taghex> <taghex>0x000b</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.WhiteBalanceBias</key> <key>Exif.Nikon3.WhiteBalanceBias</key>
<type>SShort</type>
<tagdesc>White balance bias</tagdesc> <tagdesc>White balance bias</tagdesc>
</ROW> </ROW>
<ROW num="11"> <ROW num="11">
<tagname>ColorBalance1</tagname> <tagname>0x000d</tagname>
<tagdec>12</tagdec> <tagdec>13</tagdec>
<taghex>0x000c</taghex> <taghex>0x000d</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.ColorBalance1</key> <key>Exif.Nikon3.0x000d</key>
<tagdesc>Color balance 1</tagdesc> <type>Undefined</type>
<tagdesc>Unknown</tagdesc>
</ROW> </ROW>
<ROW num="12"> <ROW num="12">
<tagname>ExposureDiff</tagname> <tagname>ExposureDiff</tagname>
@ -103,6 +114,7 @@
<taghex>0x000e</taghex> <taghex>0x000e</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.ExposureDiff</key> <key>Exif.Nikon3.ExposureDiff</key>
<type>Undefined</type>
<tagdesc>Exposure difference</tagdesc> <tagdesc>Exposure difference</tagdesc>
</ROW> </ROW>
<ROW num="13"> <ROW num="13">
@ -111,15 +123,17 @@
<taghex>0x000f</taghex> <taghex>0x000f</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.ISOSelection</key> <key>Exif.Nikon3.ISOSelection</key>
<type>Ascii</type>
<tagdesc>ISO selection</tagdesc> <tagdesc>ISO selection</tagdesc>
</ROW> </ROW>
<ROW num="14"> <ROW num="14">
<tagname>WhiteBalanceBias</tagname> <tagname>DataDump</tagname>
<tagdec>11</tagdec> <tagdec>16</tagdec>
<taghex>0x000b</taghex> <taghex>0x0010</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.WhiteBalanceBias</key> <key>Exif.Nikon3.DataDump</key>
<tagdesc>White balance bias</tagdesc> <type>Undefined</type>
<tagdesc>Data dump</tagdesc>
</ROW> </ROW>
<ROW num="15"> <ROW num="15">
<tagname>ThumbOffset</tagname> <tagname>ThumbOffset</tagname>
@ -127,6 +141,7 @@
<taghex>0x0011</taghex> <taghex>0x0011</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.ThumbOffset</key> <key>Exif.Nikon3.ThumbOffset</key>
<type>Long</type>
<tagdesc>Thumbnail IFD offset</tagdesc> <tagdesc>Thumbnail IFD offset</tagdesc>
</ROW> </ROW>
<ROW num="16"> <ROW num="16">
@ -135,6 +150,7 @@
<taghex>0x0012</taghex> <taghex>0x0012</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.FlashComp</key> <key>Exif.Nikon3.FlashComp</key>
<type>Undefined</type>
<tagdesc>Flash compensation setting</tagdesc> <tagdesc>Flash compensation setting</tagdesc>
</ROW> </ROW>
<ROW num="17"> <ROW num="17">
@ -143,6 +159,7 @@
<taghex>0x0013</taghex> <taghex>0x0013</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.ISOSetting</key> <key>Exif.Nikon3.ISOSetting</key>
<type>Short</type>
<tagdesc>ISO speed setting</tagdesc> <tagdesc>ISO speed setting</tagdesc>
</ROW> </ROW>
<ROW num="18"> <ROW num="18">
@ -151,231 +168,350 @@
<taghex>0x0016</taghex> <taghex>0x0016</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.ImageBoundry</key> <key>Exif.Nikon3.ImageBoundry</key>
<type>Short</type>
<tagdesc>Image boundry</tagdesc> <tagdesc>Image boundry</tagdesc>
</ROW> </ROW>
<ROW num="19"> <ROW num="19">
<tagname>0x0017</tagname>
<tagdec>23</tagdec>
<taghex>0x0017</taghex>
<ifd>Makernote</ifd>
<key>Exif.Nikon3.0x0017</key>
<type>Undefined</type>
<tagdesc>Unknown</tagdesc>
</ROW>
<ROW num="20">
<tagname>FlashBracketComp</tagname> <tagname>FlashBracketComp</tagname>
<tagdec>24</tagdec> <tagdec>24</tagdec>
<taghex>0x0018</taghex> <taghex>0x0018</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.FlashBracketComp</key> <key>Exif.Nikon3.FlashBracketComp</key>
<type>Undefined</type>
<tagdesc>Flash bracket compensation applied</tagdesc> <tagdesc>Flash bracket compensation applied</tagdesc>
</ROW> </ROW>
<ROW num="20"> <ROW num="21">
<tagname>ExposureBracketComp</tagname> <tagname>ExposureBracketComp</tagname>
<tagdec>25</tagdec> <tagdec>25</tagdec>
<taghex>0x0019</taghex> <taghex>0x0019</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.ExposureBracketComp</key> <key>Exif.Nikon3.ExposureBracketComp</key>
<type>SRational</type>
<tagdesc>AE bracket compensation applied</tagdesc> <tagdesc>AE bracket compensation applied</tagdesc>
</ROW> </ROW>
<ROW num="21"> <ROW num="22">
<tagname>ImageAdjustment</tagname> <tagname>ImageAdjustment</tagname>
<tagdec>128</tagdec> <tagdec>128</tagdec>
<taghex>0x0080</taghex> <taghex>0x0080</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.ImageAdjustment</key> <key>Exif.Nikon3.ImageAdjustment</key>
<type>Ascii</type>
<tagdesc>Image adjustment setting</tagdesc> <tagdesc>Image adjustment setting</tagdesc>
</ROW> </ROW>
<ROW num="22"> <ROW num="23">
<tagname>ToneComp</tagname> <tagname>ToneComp</tagname>
<tagdec>129</tagdec> <tagdec>129</tagdec>
<taghex>0x0081</taghex> <taghex>0x0081</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.ToneComp</key> <key>Exif.Nikon3.ToneComp</key>
<type>Ascii</type>
<tagdesc>Tone compensation setting (contrast)</tagdesc> <tagdesc>Tone compensation setting (contrast)</tagdesc>
</ROW> </ROW>
<ROW num="23"> <ROW num="24">
<tagname>AuxiliaryLens</tagname> <tagname>AuxiliaryLens</tagname>
<tagdec>130</tagdec> <tagdec>130</tagdec>
<taghex>0x0082</taghex> <taghex>0x0082</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.AuxiliaryLens</key> <key>Exif.Nikon3.AuxiliaryLens</key>
<type>Ascii</type>
<tagdesc>Auxiliary lens (adapter)</tagdesc> <tagdesc>Auxiliary lens (adapter)</tagdesc>
</ROW> </ROW>
<ROW num="24"> <ROW num="25">
<tagname>LensType</tagname> <tagname>LensType</tagname>
<tagdec>131</tagdec> <tagdec>131</tagdec>
<taghex>0x0083</taghex> <taghex>0x0083</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.LensType</key> <key>Exif.Nikon3.LensType</key>
<type>Byte</type>
<tagdesc>Lens type</tagdesc> <tagdesc>Lens type</tagdesc>
</ROW> </ROW>
<ROW num="25"> <ROW num="26">
<tagname>Lens</tagname> <tagname>Lens</tagname>
<tagdec>132</tagdec> <tagdec>132</tagdec>
<taghex>0x0084</taghex> <taghex>0x0084</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.Lens</key> <key>Exif.Nikon3.Lens</key>
<type>Rational</type>
<tagdesc>Lens</tagdesc> <tagdesc>Lens</tagdesc>
</ROW> </ROW>
<ROW num="26"> <ROW num="27">
<tagname>FocusDistance</tagname> <tagname>FocusDistance</tagname>
<tagdec>133</tagdec> <tagdec>133</tagdec>
<taghex>0x0085</taghex> <taghex>0x0085</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.FocusDistance</key> <key>Exif.Nikon3.FocusDistance</key>
<type>Rational</type>
<tagdesc>Manual focus distance</tagdesc> <tagdesc>Manual focus distance</tagdesc>
</ROW> </ROW>
<ROW num="27"> <ROW num="28">
<tagname>DigitalZoom</tagname> <tagname>DigitalZoom</tagname>
<tagdec>134</tagdec> <tagdec>134</tagdec>
<taghex>0x0086</taghex> <taghex>0x0086</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.DigitalZoom</key> <key>Exif.Nikon3.DigitalZoom</key>
<type>Rational</type>
<tagdesc>Digital zoom setting</tagdesc> <tagdesc>Digital zoom setting</tagdesc>
</ROW> </ROW>
<ROW num="28"> <ROW num="29">
<tagname>FlashType</tagname> <tagname>FlashType</tagname>
<tagdec>135</tagdec> <tagdec>135</tagdec>
<taghex>0x0087</taghex> <taghex>0x0087</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.FlashType</key> <key>Exif.Nikon3.FlashType</key>
<type>Byte</type>
<tagdesc>Type of flash used</tagdesc> <tagdesc>Type of flash used</tagdesc>
</ROW> </ROW>
<ROW num="29"> <ROW num="30">
<tagname>AFFocusPos</tagname> <tagname>AFFocusPos</tagname>
<tagdec>136</tagdec> <tagdec>136</tagdec>
<taghex>0x0088</taghex> <taghex>0x0088</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.AFFocusPos</key> <key>Exif.Nikon3.AFFocusPos</key>
<type>Undefined</type>
<tagdesc>AF focus position</tagdesc> <tagdesc>AF focus position</tagdesc>
</ROW> </ROW>
<ROW num="30"> <ROW num="31">
<tagname>Bracketing</tagname> <tagname>Bracketing</tagname>
<tagdec>137</tagdec> <tagdec>137</tagdec>
<taghex>0x0089</taghex> <taghex>0x0089</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.Bracketing</key> <key>Exif.Nikon3.Bracketing</key>
<type>Short</type>
<tagdesc>Bracketing</tagdesc> <tagdesc>Bracketing</tagdesc>
</ROW> </ROW>
<ROW num="31"> <ROW num="32">
<tagname>NEFCurve1</tagname> <tagname>0x008a</tagname>
<tagdec>140</tagdec> <tagdec>138</tagdec>
<taghex>0x008c</taghex> <taghex>0x008a</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.NEFCurve1</key> <key>Exif.Nikon3.0x008a</key>
<tagdesc>NEF curve 1</tagdesc> <type>Short</type>
<tagdesc>Unknown</tagdesc>
</ROW> </ROW>
<ROW num="32"> <ROW num="33">
<tagname>0x008b</tagname>
<tagdec>139</tagdec>
<taghex>0x008b</taghex>
<ifd>Makernote</ifd>
<key>Exif.Nikon3.0x008b</key>
<type>Undefined</type>
<tagdesc>Unknown</tagdesc>
</ROW>
<ROW num="34">
<tagname>ColorMode</tagname> <tagname>ColorMode</tagname>
<tagdec>141</tagdec> <tagdec>141</tagdec>
<taghex>0x008d</taghex> <taghex>0x008d</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.ColorMode</key> <key>Exif.Nikon3.ColorMode</key>
<type>Ascii</type>
<tagdesc>Color mode</tagdesc> <tagdesc>Color mode</tagdesc>
</ROW> </ROW>
<ROW num="33"> <ROW num="35">
<tagname>SceneMode</tagname> <tagname>SceneMode</tagname>
<tagdec>143</tagdec> <tagdec>143</tagdec>
<taghex>0x008f</taghex> <taghex>0x008f</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.SceneMode</key> <key>Exif.Nikon3.SceneMode</key>
<type>Ascii</type>
<tagdesc>Scene mode</tagdesc> <tagdesc>Scene mode</tagdesc>
</ROW> </ROW>
<ROW num="34"> <ROW num="36">
<tagname>LightingType</tagname> <tagname>LightingType</tagname>
<tagdec>144</tagdec> <tagdec>144</tagdec>
<taghex>0x0090</taghex> <taghex>0x0090</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.LightingType</key> <key>Exif.Nikon3.LightingType</key>
<type>Ascii</type>
<tagdesc>Lighting type</tagdesc> <tagdesc>Lighting type</tagdesc>
</ROW> </ROW>
<ROW num="35"> <ROW num="37">
<tagname>0x0091</tagname>
<tagdec>145</tagdec>
<taghex>0x0091</taghex>
<ifd>Makernote</ifd>
<key>Exif.Nikon3.0x0091</key>
<type>Undefined</type>
<tagdesc>Unknown</tagdesc>
</ROW>
<ROW num="38">
<tagname>HueAdjustment</tagname> <tagname>HueAdjustment</tagname>
<tagdec>146</tagdec> <tagdec>146</tagdec>
<taghex>0x0092</taghex> <taghex>0x0092</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.HueAdjustment</key> <key>Exif.Nikon3.HueAdjustment</key>
<type>SShort</type>
<tagdesc>Hue adjustment</tagdesc> <tagdesc>Hue adjustment</tagdesc>
</ROW> </ROW>
<ROW num="36"> <ROW num="39">
<tagname>Saturation</tagname> <tagname>Saturation</tagname>
<tagdec>148</tagdec> <tagdec>148</tagdec>
<taghex>0x0094</taghex> <taghex>0x0094</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.Saturation</key> <key>Exif.Nikon3.Saturation</key>
<type>SShort</type>
<tagdesc>Saturation adjustment</tagdesc> <tagdesc>Saturation adjustment</tagdesc>
</ROW> </ROW>
<ROW num="37"> <ROW num="40">
<tagname>NoiseReduction</tagname> <tagname>NoiseReduction</tagname>
<tagdec>149</tagdec> <tagdec>149</tagdec>
<taghex>0x0095</taghex> <taghex>0x0095</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.NoiseReduction</key> <key>Exif.Nikon3.NoiseReduction</key>
<type>Ascii</type>
<tagdesc>Noise reduction</tagdesc> <tagdesc>Noise reduction</tagdesc>
</ROW> </ROW>
<ROW num="38"> <ROW num="41">
<tagname>NEFCurve2</tagname>
<tagdec>150</tagdec>
<taghex>0x0096</taghex>
<ifd>Makernote</ifd>
<key>Exif.Nikon3.NEFCurve2</key>
<tagdesc>NEF curve 2</tagdesc>
</ROW>
<ROW num="39">
<tagname>ColorBalance2</tagname> <tagname>ColorBalance2</tagname>
<tagdec>151</tagdec> <tagdec>151</tagdec>
<taghex>0x0097</taghex> <taghex>0x0097</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.ColorBalance2</key> <key>Exif.Nikon3.ColorBalance2</key>
<type>Undefined</type>
<tagdesc>Color balance 2</tagdesc> <tagdesc>Color balance 2</tagdesc>
</ROW> </ROW>
<ROW num="40"> <ROW num="42">
<tagname>0x0098</tagname>
<tagdec>152</tagdec>
<taghex>0x0098</taghex>
<ifd>Makernote</ifd>
<key>Exif.Nikon3.0x0098</key>
<type>Undefined</type>
<tagdesc>Unknown</tagdesc>
</ROW>
<ROW num="43">
<tagname>NEFThumbnailSize</tagname> <tagname>NEFThumbnailSize</tagname>
<tagdec>153</tagdec> <tagdec>153</tagdec>
<taghex>0x0099</taghex> <taghex>0x0099</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.NEFThumbnailSize</key> <key>Exif.Nikon3.NEFThumbnailSize</key>
<type>Short</type>
<tagdesc>NEF thumbnail size</tagdesc> <tagdesc>NEF thumbnail size</tagdesc>
</ROW> </ROW>
<ROW num="41"> <ROW num="44">
<tagname>0x009a</tagname>
<tagdec>154</tagdec>
<taghex>0x009a</taghex>
<ifd>Makernote</ifd>
<key>Exif.Nikon3.0x009a</key>
<type>Rational</type>
<tagdesc>Unknown</tagdesc>
</ROW>
<ROW num="45">
<tagname>0x009b</tagname>
<tagdec>155</tagdec>
<taghex>0x009b</taghex>
<ifd>Makernote</ifd>
<key>Exif.Nikon3.0x009b</key>
<type>Short</type>
<tagdesc>Unknown</tagdesc>
</ROW>
<ROW num="46">
<tagname>0x009f</tagname>
<tagdec>159</tagdec>
<taghex>0x009f</taghex>
<ifd>Makernote</ifd>
<key>Exif.Nikon3.0x009f</key>
<type>SShort</type>
<tagdesc>Unknown</tagdesc>
</ROW>
<ROW num="47">
<tagname>SerialNumber</tagname> <tagname>SerialNumber</tagname>
<tagdec>160</tagdec> <tagdec>160</tagdec>
<taghex>0x00a0</taghex> <taghex>0x00a0</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.SerialNumber</key> <key>Exif.Nikon3.SerialNumber</key>
<type>Ascii</type>
<tagdesc>Camera serial number</tagdesc> <tagdesc>Camera serial number</tagdesc>
</ROW> </ROW>
<ROW num="42"> <ROW num="48">
<tagname>0x00a2</tagname>
<tagdec>162</tagdec>
<taghex>0x00a2</taghex>
<ifd>Makernote</ifd>
<key>Exif.Nikon3.0x00a2</key>
<type>Long</type>
<tagdesc>Unknown</tagdesc>
</ROW>
<ROW num="49">
<tagname>0x00a3</tagname>
<tagdec>163</tagdec>
<taghex>0x00a3</taghex>
<ifd>Makernote</ifd>
<key>Exif.Nikon3.0x00a3</key>
<type>Byte</type>
<tagdesc>Unknown</tagdesc>
</ROW>
<ROW num="50">
<tagname>0x00a5</tagname>
<tagdec>165</tagdec>
<taghex>0x00a5</taghex>
<ifd>Makernote</ifd>
<key>Exif.Nikon3.0x00a5</key>
<type>Long</type>
<tagdesc>Unknown</tagdesc>
</ROW>
<ROW num="51">
<tagname>0x00a6</tagname>
<tagdec>166</tagdec>
<taghex>0x00a6</taghex>
<ifd>Makernote</ifd>
<key>Exif.Nikon3.0x00a6</key>
<type>Long</type>
<tagdesc>Unknown</tagdesc>
</ROW>
<ROW num="52">
<tagname>ShutterCount</tagname> <tagname>ShutterCount</tagname>
<tagdec>167</tagdec> <tagdec>167</tagdec>
<taghex>0x00a7</taghex> <taghex>0x00a7</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.ShutterCount</key> <key>Exif.Nikon3.ShutterCount</key>
<type>Long</type>
<tagdesc>Number of shots taken by camera</tagdesc> <tagdesc>Number of shots taken by camera</tagdesc>
</ROW> </ROW>
<ROW num="43"> <ROW num="53">
<tagname>0x00a8</tagname>
<tagdec>168</tagdec>
<taghex>0x00a8</taghex>
<ifd>Makernote</ifd>
<key>Exif.Nikon3.0x00a8</key>
<type>Undefined</type>
<tagdesc>Unknown</tagdesc>
</ROW>
<ROW num="54">
<tagname>ImageOptimization</tagname> <tagname>ImageOptimization</tagname>
<tagdec>169</tagdec> <tagdec>169</tagdec>
<taghex>0x00a9</taghex> <taghex>0x00a9</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.ImageOptimization</key> <key>Exif.Nikon3.ImageOptimization</key>
<type>Ascii</type>
<tagdesc>Image optimization</tagdesc> <tagdesc>Image optimization</tagdesc>
</ROW> </ROW>
<ROW num="44"> <ROW num="55">
<tagname>Saturation</tagname> <tagname>Saturation</tagname>
<tagdec>170</tagdec> <tagdec>170</tagdec>
<taghex>0x00aa</taghex> <taghex>0x00aa</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.Saturation</key> <key>Exif.Nikon3.Saturation</key>
<type>Ascii</type>
<tagdesc>Saturation</tagdesc> <tagdesc>Saturation</tagdesc>
</ROW> </ROW>
<ROW num="45"> <ROW num="56">
<tagname>VariProgram</tagname> <tagname>VariProgram</tagname>
<tagdec>171</tagdec> <tagdec>171</tagdec>
<taghex>0x00ab</taghex> <taghex>0x00ab</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Nikon3.VariProgram</key> <key>Exif.Nikon3.VariProgram</key>
<type>Ascii</type>
<tagdesc>Vari program</tagdesc> <tagdesc>Vari program</tagdesc>
</ROW> </ROW>
<ROW num="46">
<tagname>PrintIM</tagname>
<tagdec>3584</tagdec>
<taghex>0x0e00</taghex>
<ifd>Makernote</ifd>
<key>Exif.Nikon3.PrintIM</key>
<tagdesc>Print image matching</tagdesc>
</ROW>
</ROWSET> </ROWSET>
</TAGLIST> </TAGLIST>

@ -15,6 +15,7 @@
<taghex>0x0002</taghex> <taghex>0x0002</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Sigma.SerialNumber</key> <key>Exif.Sigma.SerialNumber</key>
<type>Ascii</type>
<tagdesc>Camera serial number</tagdesc> <tagdesc>Camera serial number</tagdesc>
</ROW> </ROW>
<ROW num="2"> <ROW num="2">
@ -23,6 +24,7 @@
<taghex>0x0003</taghex> <taghex>0x0003</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Sigma.DriveMode</key> <key>Exif.Sigma.DriveMode</key>
<type>Ascii</type>
<tagdesc>Drive Mode</tagdesc> <tagdesc>Drive Mode</tagdesc>
</ROW> </ROW>
<ROW num="3"> <ROW num="3">
@ -31,6 +33,7 @@
<taghex>0x0004</taghex> <taghex>0x0004</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Sigma.ResolutionMode</key> <key>Exif.Sigma.ResolutionMode</key>
<type>Ascii</type>
<tagdesc>Resolution Mode</tagdesc> <tagdesc>Resolution Mode</tagdesc>
</ROW> </ROW>
<ROW num="4"> <ROW num="4">
@ -39,6 +42,7 @@
<taghex>0x0005</taghex> <taghex>0x0005</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Sigma.AutofocusMode</key> <key>Exif.Sigma.AutofocusMode</key>
<type>Ascii</type>
<tagdesc>Autofocus mode</tagdesc> <tagdesc>Autofocus mode</tagdesc>
</ROW> </ROW>
<ROW num="5"> <ROW num="5">
@ -47,6 +51,7 @@
<taghex>0x0006</taghex> <taghex>0x0006</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Sigma.FocusSetting</key> <key>Exif.Sigma.FocusSetting</key>
<type>Ascii</type>
<tagdesc>Focus setting</tagdesc> <tagdesc>Focus setting</tagdesc>
</ROW> </ROW>
<ROW num="6"> <ROW num="6">
@ -55,6 +60,7 @@
<taghex>0x0007</taghex> <taghex>0x0007</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Sigma.WhiteBalance</key> <key>Exif.Sigma.WhiteBalance</key>
<type>Ascii</type>
<tagdesc>White balance</tagdesc> <tagdesc>White balance</tagdesc>
</ROW> </ROW>
<ROW num="7"> <ROW num="7">
@ -63,6 +69,7 @@
<taghex>0x0008</taghex> <taghex>0x0008</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Sigma.ExposureMode</key> <key>Exif.Sigma.ExposureMode</key>
<type>Ascii</type>
<tagdesc>Exposure mode</tagdesc> <tagdesc>Exposure mode</tagdesc>
</ROW> </ROW>
<ROW num="8"> <ROW num="8">
@ -71,6 +78,7 @@
<taghex>0x0009</taghex> <taghex>0x0009</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Sigma.MeteringMode</key> <key>Exif.Sigma.MeteringMode</key>
<type>Ascii</type>
<tagdesc>Metering mode</tagdesc> <tagdesc>Metering mode</tagdesc>
</ROW> </ROW>
<ROW num="9"> <ROW num="9">
@ -79,6 +87,7 @@
<taghex>0x000a</taghex> <taghex>0x000a</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Sigma.LensRange</key> <key>Exif.Sigma.LensRange</key>
<type>Ascii</type>
<tagdesc>Lens focal length range</tagdesc> <tagdesc>Lens focal length range</tagdesc>
</ROW> </ROW>
<ROW num="10"> <ROW num="10">
@ -87,6 +96,7 @@
<taghex>0x000b</taghex> <taghex>0x000b</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Sigma.ColorSpace</key> <key>Exif.Sigma.ColorSpace</key>
<type>Ascii</type>
<tagdesc>Color space</tagdesc> <tagdesc>Color space</tagdesc>
</ROW> </ROW>
<ROW num="11"> <ROW num="11">
@ -95,6 +105,7 @@
<taghex>0x000c</taghex> <taghex>0x000c</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Sigma.Exposure</key> <key>Exif.Sigma.Exposure</key>
<type>Ascii</type>
<tagdesc>Exposure</tagdesc> <tagdesc>Exposure</tagdesc>
</ROW> </ROW>
<ROW num="12"> <ROW num="12">
@ -103,6 +114,7 @@
<taghex>0x000d</taghex> <taghex>0x000d</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Sigma.Contrast</key> <key>Exif.Sigma.Contrast</key>
<type>Ascii</type>
<tagdesc>Contrast</tagdesc> <tagdesc>Contrast</tagdesc>
</ROW> </ROW>
<ROW num="13"> <ROW num="13">
@ -111,6 +123,7 @@
<taghex>0x000e</taghex> <taghex>0x000e</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Sigma.Shadow</key> <key>Exif.Sigma.Shadow</key>
<type>Ascii</type>
<tagdesc>Shadow</tagdesc> <tagdesc>Shadow</tagdesc>
</ROW> </ROW>
<ROW num="14"> <ROW num="14">
@ -119,6 +132,7 @@
<taghex>0x000f</taghex> <taghex>0x000f</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Sigma.Highlight</key> <key>Exif.Sigma.Highlight</key>
<type>Ascii</type>
<tagdesc>Highlight</tagdesc> <tagdesc>Highlight</tagdesc>
</ROW> </ROW>
<ROW num="15"> <ROW num="15">
@ -127,6 +141,7 @@
<taghex>0x0010</taghex> <taghex>0x0010</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Sigma.Saturation</key> <key>Exif.Sigma.Saturation</key>
<type>Ascii</type>
<tagdesc>Saturation</tagdesc> <tagdesc>Saturation</tagdesc>
</ROW> </ROW>
<ROW num="16"> <ROW num="16">
@ -135,6 +150,7 @@
<taghex>0x0011</taghex> <taghex>0x0011</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Sigma.Sharpness</key> <key>Exif.Sigma.Sharpness</key>
<type>Ascii</type>
<tagdesc>Sharpness</tagdesc> <tagdesc>Sharpness</tagdesc>
</ROW> </ROW>
<ROW num="17"> <ROW num="17">
@ -143,6 +159,7 @@
<taghex>0x0012</taghex> <taghex>0x0012</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Sigma.FillLight</key> <key>Exif.Sigma.FillLight</key>
<type>Ascii</type>
<tagdesc>X3 Fill light</tagdesc> <tagdesc>X3 Fill light</tagdesc>
</ROW> </ROW>
<ROW num="18"> <ROW num="18">
@ -151,6 +168,7 @@
<taghex>0x0014</taghex> <taghex>0x0014</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Sigma.ColorAdjustment</key> <key>Exif.Sigma.ColorAdjustment</key>
<type>Ascii</type>
<tagdesc>Color adjustment</tagdesc> <tagdesc>Color adjustment</tagdesc>
</ROW> </ROW>
<ROW num="19"> <ROW num="19">
@ -159,6 +177,7 @@
<taghex>0x0015</taghex> <taghex>0x0015</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Sigma.AdjustmentMode</key> <key>Exif.Sigma.AdjustmentMode</key>
<type>Ascii</type>
<tagdesc>Adjustment mode</tagdesc> <tagdesc>Adjustment mode</tagdesc>
</ROW> </ROW>
<ROW num="20"> <ROW num="20">
@ -167,6 +186,7 @@
<taghex>0x0016</taghex> <taghex>0x0016</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Sigma.Quality</key> <key>Exif.Sigma.Quality</key>
<type>Ascii</type>
<tagdesc>Quality</tagdesc> <tagdesc>Quality</tagdesc>
</ROW> </ROW>
<ROW num="21"> <ROW num="21">
@ -175,6 +195,7 @@
<taghex>0x0017</taghex> <taghex>0x0017</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Sigma.Firmware</key> <key>Exif.Sigma.Firmware</key>
<type>Ascii</type>
<tagdesc>Firmware</tagdesc> <tagdesc>Firmware</tagdesc>
</ROW> </ROW>
<ROW num="22"> <ROW num="22">
@ -183,6 +204,7 @@
<taghex>0x0018</taghex> <taghex>0x0018</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Sigma.Software</key> <key>Exif.Sigma.Software</key>
<type>Ascii</type>
<tagdesc>Software</tagdesc> <tagdesc>Software</tagdesc>
</ROW> </ROW>
<ROW num="23"> <ROW num="23">
@ -191,6 +213,7 @@
<taghex>0x0019</taghex> <taghex>0x0019</taghex>
<ifd>Makernote</ifd> <ifd>Makernote</ifd>
<key>Exif.Sigma.AutoBracket</key> <key>Exif.Sigma.AutoBracket</key>
<type>Ascii</type>
<tagdesc>Auto bracket</tagdesc> <tagdesc>Auto bracket</tagdesc>
</ROW> </ROW>
</ROWSET> </ROWSET>

@ -18,6 +18,7 @@
<taghex>0x0100</taghex> <taghex>0x0100</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.ImageWidth</key> <key>Exif.Image.ImageWidth</key>
<type>Long</type>
<tagdesc>Image width</tagdesc> <tagdesc>Image width</tagdesc>
</ROW> </ROW>
<ROW num="2"> <ROW num="2">
@ -26,6 +27,7 @@
<taghex>0x0101</taghex> <taghex>0x0101</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.ImageLength</key> <key>Exif.Image.ImageLength</key>
<type>Long</type>
<tagdesc>Image height</tagdesc> <tagdesc>Image height</tagdesc>
</ROW> </ROW>
<ROW num="3"> <ROW num="3">
@ -34,6 +36,7 @@
<taghex>0x0102</taghex> <taghex>0x0102</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.BitsPerSample</key> <key>Exif.Image.BitsPerSample</key>
<type>Short</type>
<tagdesc>Number of bits per component</tagdesc> <tagdesc>Number of bits per component</tagdesc>
</ROW> </ROW>
<ROW num="4"> <ROW num="4">
@ -42,6 +45,7 @@
<taghex>0x0103</taghex> <taghex>0x0103</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.Compression</key> <key>Exif.Image.Compression</key>
<type>Short</type>
<tagdesc>Compression scheme</tagdesc> <tagdesc>Compression scheme</tagdesc>
</ROW> </ROW>
<ROW num="5"> <ROW num="5">
@ -50,6 +54,7 @@
<taghex>0x0106</taghex> <taghex>0x0106</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.PhotometricInterpretation</key> <key>Exif.Image.PhotometricInterpretation</key>
<type>Short</type>
<tagdesc>Pixel composition</tagdesc> <tagdesc>Pixel composition</tagdesc>
</ROW> </ROW>
<ROW num="6"> <ROW num="6">
@ -58,6 +63,7 @@
<taghex>0x010e</taghex> <taghex>0x010e</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.ImageDescription</key> <key>Exif.Image.ImageDescription</key>
<type>Ascii</type>
<tagdesc>Image title</tagdesc> <tagdesc>Image title</tagdesc>
</ROW> </ROW>
<ROW num="7"> <ROW num="7">
@ -66,6 +72,7 @@
<taghex>0x010f</taghex> <taghex>0x010f</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.Make</key> <key>Exif.Image.Make</key>
<type>Ascii</type>
<tagdesc>Manufacturer of image input equipment</tagdesc> <tagdesc>Manufacturer of image input equipment</tagdesc>
</ROW> </ROW>
<ROW num="8"> <ROW num="8">
@ -74,6 +81,7 @@
<taghex>0x0110</taghex> <taghex>0x0110</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.Model</key> <key>Exif.Image.Model</key>
<type>Ascii</type>
<tagdesc>Model of image input equipment</tagdesc> <tagdesc>Model of image input equipment</tagdesc>
</ROW> </ROW>
<ROW num="9"> <ROW num="9">
@ -82,6 +90,7 @@
<taghex>0x0111</taghex> <taghex>0x0111</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.StripOffsets</key> <key>Exif.Image.StripOffsets</key>
<type>Long</type>
<tagdesc>Image data location</tagdesc> <tagdesc>Image data location</tagdesc>
</ROW> </ROW>
<ROW num="10"> <ROW num="10">
@ -90,6 +99,7 @@
<taghex>0x0112</taghex> <taghex>0x0112</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.Orientation</key> <key>Exif.Image.Orientation</key>
<type>Short</type>
<tagdesc>Orientation of image</tagdesc> <tagdesc>Orientation of image</tagdesc>
</ROW> </ROW>
<ROW num="11"> <ROW num="11">
@ -98,6 +108,7 @@
<taghex>0x0115</taghex> <taghex>0x0115</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.SamplesPerPixel</key> <key>Exif.Image.SamplesPerPixel</key>
<type>Short</type>
<tagdesc>Number of components</tagdesc> <tagdesc>Number of components</tagdesc>
</ROW> </ROW>
<ROW num="12"> <ROW num="12">
@ -106,6 +117,7 @@
<taghex>0x0116</taghex> <taghex>0x0116</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.RowsPerStrip</key> <key>Exif.Image.RowsPerStrip</key>
<type>Long</type>
<tagdesc>Number of rows per strip</tagdesc> <tagdesc>Number of rows per strip</tagdesc>
</ROW> </ROW>
<ROW num="13"> <ROW num="13">
@ -114,6 +126,7 @@
<taghex>0x0117</taghex> <taghex>0x0117</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.StripByteCounts</key> <key>Exif.Image.StripByteCounts</key>
<type>Long</type>
<tagdesc>Bytes per compressed strip</tagdesc> <tagdesc>Bytes per compressed strip</tagdesc>
</ROW> </ROW>
<ROW num="14"> <ROW num="14">
@ -122,6 +135,7 @@
<taghex>0x011a</taghex> <taghex>0x011a</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.XResolution</key> <key>Exif.Image.XResolution</key>
<type>Rational</type>
<tagdesc>Image resolution in width direction</tagdesc> <tagdesc>Image resolution in width direction</tagdesc>
</ROW> </ROW>
<ROW num="15"> <ROW num="15">
@ -130,6 +144,7 @@
<taghex>0x011b</taghex> <taghex>0x011b</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.YResolution</key> <key>Exif.Image.YResolution</key>
<type>Rational</type>
<tagdesc>Image resolution in height direction</tagdesc> <tagdesc>Image resolution in height direction</tagdesc>
</ROW> </ROW>
<ROW num="16"> <ROW num="16">
@ -138,6 +153,7 @@
<taghex>0x011c</taghex> <taghex>0x011c</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.PlanarConfiguration</key> <key>Exif.Image.PlanarConfiguration</key>
<type>Short</type>
<tagdesc>Image data arrangement</tagdesc> <tagdesc>Image data arrangement</tagdesc>
</ROW> </ROW>
<ROW num="17"> <ROW num="17">
@ -146,6 +162,7 @@
<taghex>0x0128</taghex> <taghex>0x0128</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.ResolutionUnit</key> <key>Exif.Image.ResolutionUnit</key>
<type>Short</type>
<tagdesc>Unit of X and Y resolution</tagdesc> <tagdesc>Unit of X and Y resolution</tagdesc>
</ROW> </ROW>
<ROW num="18"> <ROW num="18">
@ -154,6 +171,7 @@
<taghex>0x012d</taghex> <taghex>0x012d</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.TransferFunction</key> <key>Exif.Image.TransferFunction</key>
<type>Short</type>
<tagdesc>Transfer function</tagdesc> <tagdesc>Transfer function</tagdesc>
</ROW> </ROW>
<ROW num="19"> <ROW num="19">
@ -162,6 +180,7 @@
<taghex>0x0131</taghex> <taghex>0x0131</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.Software</key> <key>Exif.Image.Software</key>
<type>Ascii</type>
<tagdesc>Software used</tagdesc> <tagdesc>Software used</tagdesc>
</ROW> </ROW>
<ROW num="20"> <ROW num="20">
@ -170,6 +189,7 @@
<taghex>0x0132</taghex> <taghex>0x0132</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.DateTime</key> <key>Exif.Image.DateTime</key>
<type>Ascii</type>
<tagdesc>File change date and time</tagdesc> <tagdesc>File change date and time</tagdesc>
</ROW> </ROW>
<ROW num="21"> <ROW num="21">
@ -178,6 +198,7 @@
<taghex>0x013b</taghex> <taghex>0x013b</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.Artist</key> <key>Exif.Image.Artist</key>
<type>Ascii</type>
<tagdesc>Person who created the image</tagdesc> <tagdesc>Person who created the image</tagdesc>
</ROW> </ROW>
<ROW num="22"> <ROW num="22">
@ -186,6 +207,7 @@
<taghex>0x013e</taghex> <taghex>0x013e</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.WhitePoint</key> <key>Exif.Image.WhitePoint</key>
<type>Rational</type>
<tagdesc>White point chromaticity</tagdesc> <tagdesc>White point chromaticity</tagdesc>
</ROW> </ROW>
<ROW num="23"> <ROW num="23">
@ -194,6 +216,7 @@
<taghex>0x013f</taghex> <taghex>0x013f</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.PrimaryChromaticities</key> <key>Exif.Image.PrimaryChromaticities</key>
<type>Rational</type>
<tagdesc>Chromaticities of primaries</tagdesc> <tagdesc>Chromaticities of primaries</tagdesc>
</ROW> </ROW>
<ROW num="24"> <ROW num="24">
@ -202,6 +225,7 @@
<taghex>0x0201</taghex> <taghex>0x0201</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.JPEGInterchangeFormat</key> <key>Exif.Image.JPEGInterchangeFormat</key>
<type>Long</type>
<tagdesc>Offset to JPEG SOI</tagdesc> <tagdesc>Offset to JPEG SOI</tagdesc>
</ROW> </ROW>
<ROW num="25"> <ROW num="25">
@ -210,6 +234,7 @@
<taghex>0x0202</taghex> <taghex>0x0202</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.JPEGInterchangeFormatLength</key> <key>Exif.Image.JPEGInterchangeFormatLength</key>
<type>Long</type>
<tagdesc>Bytes of JPEG data</tagdesc> <tagdesc>Bytes of JPEG data</tagdesc>
</ROW> </ROW>
<ROW num="26"> <ROW num="26">
@ -218,6 +243,7 @@
<taghex>0x0211</taghex> <taghex>0x0211</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.YCbCrCoefficients</key> <key>Exif.Image.YCbCrCoefficients</key>
<type>Rational</type>
<tagdesc>Color space transformation matrix coefficients</tagdesc> <tagdesc>Color space transformation matrix coefficients</tagdesc>
</ROW> </ROW>
<ROW num="27"> <ROW num="27">
@ -226,6 +252,7 @@
<taghex>0x0212</taghex> <taghex>0x0212</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.YCbCrSubSampling</key> <key>Exif.Image.YCbCrSubSampling</key>
<type>Short</type>
<tagdesc>Subsampling ratio of Y to C</tagdesc> <tagdesc>Subsampling ratio of Y to C</tagdesc>
</ROW> </ROW>
<ROW num="28"> <ROW num="28">
@ -234,6 +261,7 @@
<taghex>0x0213</taghex> <taghex>0x0213</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.YCbCrPositioning</key> <key>Exif.Image.YCbCrPositioning</key>
<type>Short</type>
<tagdesc>Y and C positioning</tagdesc> <tagdesc>Y and C positioning</tagdesc>
</ROW> </ROW>
<ROW num="29"> <ROW num="29">
@ -242,6 +270,7 @@
<taghex>0x0214</taghex> <taghex>0x0214</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.ReferenceBlackWhite</key> <key>Exif.Image.ReferenceBlackWhite</key>
<type>Rational</type>
<tagdesc>Pair of black and white reference values</tagdesc> <tagdesc>Pair of black and white reference values</tagdesc>
</ROW> </ROW>
<ROW num="30"> <ROW num="30">
@ -250,6 +279,7 @@
<taghex>0x8298</taghex> <taghex>0x8298</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.Copyright</key> <key>Exif.Image.Copyright</key>
<type>Ascii</type>
<tagdesc>Copyright holder</tagdesc> <tagdesc>Copyright holder</tagdesc>
</ROW> </ROW>
<ROW num="31"> <ROW num="31">
@ -258,6 +288,7 @@
<taghex>0x8769</taghex> <taghex>0x8769</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.ExifTag</key> <key>Exif.Image.ExifTag</key>
<type>Long</type>
<tagdesc>Exif IFD Pointer</tagdesc> <tagdesc>Exif IFD Pointer</tagdesc>
</ROW> </ROW>
<ROW num="32"> <ROW num="32">
@ -266,6 +297,7 @@
<taghex>0x8825</taghex> <taghex>0x8825</taghex>
<ifd>IFD0</ifd> <ifd>IFD0</ifd>
<key>Exif.Image.GPSTag</key> <key>Exif.Image.GPSTag</key>
<type>Long</type>
<tagdesc>GPSInfo IFD Pointer</tagdesc> <tagdesc>GPSInfo IFD Pointer</tagdesc>
</ROW> </ROW>
<ROW num="33"> <ROW num="33">
@ -274,6 +306,7 @@
<taghex>0x829a</taghex> <taghex>0x829a</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.ExposureTime</key> <key>Exif.Photo.ExposureTime</key>
<type>Rational</type>
<tagdesc>Exposure time</tagdesc> <tagdesc>Exposure time</tagdesc>
</ROW> </ROW>
<ROW num="34"> <ROW num="34">
@ -282,6 +315,7 @@
<taghex>0x829d</taghex> <taghex>0x829d</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.FNumber</key> <key>Exif.Photo.FNumber</key>
<type>Rational</type>
<tagdesc>F number</tagdesc> <tagdesc>F number</tagdesc>
</ROW> </ROW>
<ROW num="35"> <ROW num="35">
@ -290,6 +324,7 @@
<taghex>0x8822</taghex> <taghex>0x8822</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.ExposureProgram</key> <key>Exif.Photo.ExposureProgram</key>
<type>Short</type>
<tagdesc>Exposure program</tagdesc> <tagdesc>Exposure program</tagdesc>
</ROW> </ROW>
<ROW num="36"> <ROW num="36">
@ -298,6 +333,7 @@
<taghex>0x8824</taghex> <taghex>0x8824</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.SpectralSensitivity</key> <key>Exif.Photo.SpectralSensitivity</key>
<type>Ascii</type>
<tagdesc>Spectral sensitivity</tagdesc> <tagdesc>Spectral sensitivity</tagdesc>
</ROW> </ROW>
<ROW num="37"> <ROW num="37">
@ -306,6 +342,7 @@
<taghex>0x8827</taghex> <taghex>0x8827</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.ISOSpeedRatings</key> <key>Exif.Photo.ISOSpeedRatings</key>
<type>Short</type>
<tagdesc>ISO speed ratings</tagdesc> <tagdesc>ISO speed ratings</tagdesc>
</ROW> </ROW>
<ROW num="38"> <ROW num="38">
@ -314,6 +351,7 @@
<taghex>0x8828</taghex> <taghex>0x8828</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.OECF</key> <key>Exif.Photo.OECF</key>
<type>Undefined</type>
<tagdesc>Optoelectric coefficient</tagdesc> <tagdesc>Optoelectric coefficient</tagdesc>
</ROW> </ROW>
<ROW num="39"> <ROW num="39">
@ -322,6 +360,7 @@
<taghex>0x9000</taghex> <taghex>0x9000</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.ExifVersion</key> <key>Exif.Photo.ExifVersion</key>
<type>Undefined</type>
<tagdesc>Exif Version</tagdesc> <tagdesc>Exif Version</tagdesc>
</ROW> </ROW>
<ROW num="40"> <ROW num="40">
@ -330,6 +369,7 @@
<taghex>0x9003</taghex> <taghex>0x9003</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.DateTimeOriginal</key> <key>Exif.Photo.DateTimeOriginal</key>
<type>Ascii</type>
<tagdesc>Date and time original image was generated</tagdesc> <tagdesc>Date and time original image was generated</tagdesc>
</ROW> </ROW>
<ROW num="41"> <ROW num="41">
@ -338,6 +378,7 @@
<taghex>0x9004</taghex> <taghex>0x9004</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.DateTimeDigitized</key> <key>Exif.Photo.DateTimeDigitized</key>
<type>Ascii</type>
<tagdesc>Date and time image was made digital data</tagdesc> <tagdesc>Date and time image was made digital data</tagdesc>
</ROW> </ROW>
<ROW num="42"> <ROW num="42">
@ -346,6 +387,7 @@
<taghex>0x9101</taghex> <taghex>0x9101</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.ComponentsConfiguration</key> <key>Exif.Photo.ComponentsConfiguration</key>
<type>Undefined</type>
<tagdesc>Meaning of each component</tagdesc> <tagdesc>Meaning of each component</tagdesc>
</ROW> </ROW>
<ROW num="43"> <ROW num="43">
@ -354,6 +396,7 @@
<taghex>0x9102</taghex> <taghex>0x9102</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.CompressedBitsPerPixel</key> <key>Exif.Photo.CompressedBitsPerPixel</key>
<type>Rational</type>
<tagdesc>Image compression mode</tagdesc> <tagdesc>Image compression mode</tagdesc>
</ROW> </ROW>
<ROW num="44"> <ROW num="44">
@ -362,6 +405,7 @@
<taghex>0x9201</taghex> <taghex>0x9201</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.ShutterSpeedValue</key> <key>Exif.Photo.ShutterSpeedValue</key>
<type>SRational</type>
<tagdesc>Shutter speed</tagdesc> <tagdesc>Shutter speed</tagdesc>
</ROW> </ROW>
<ROW num="45"> <ROW num="45">
@ -370,6 +414,7 @@
<taghex>0x9202</taghex> <taghex>0x9202</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.ApertureValue</key> <key>Exif.Photo.ApertureValue</key>
<type>Rational</type>
<tagdesc>Aperture</tagdesc> <tagdesc>Aperture</tagdesc>
</ROW> </ROW>
<ROW num="46"> <ROW num="46">
@ -378,6 +423,7 @@
<taghex>0x9203</taghex> <taghex>0x9203</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.BrightnessValue</key> <key>Exif.Photo.BrightnessValue</key>
<type>SRational</type>
<tagdesc>Brightness</tagdesc> <tagdesc>Brightness</tagdesc>
</ROW> </ROW>
<ROW num="47"> <ROW num="47">
@ -386,6 +432,7 @@
<taghex>0x9204</taghex> <taghex>0x9204</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.ExposureBiasValue</key> <key>Exif.Photo.ExposureBiasValue</key>
<type>SRational</type>
<tagdesc>Exposure bias</tagdesc> <tagdesc>Exposure bias</tagdesc>
</ROW> </ROW>
<ROW num="48"> <ROW num="48">
@ -394,6 +441,7 @@
<taghex>0x9205</taghex> <taghex>0x9205</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.MaxApertureValue</key> <key>Exif.Photo.MaxApertureValue</key>
<type>Rational</type>
<tagdesc>Maximum lens aperture</tagdesc> <tagdesc>Maximum lens aperture</tagdesc>
</ROW> </ROW>
<ROW num="49"> <ROW num="49">
@ -402,6 +450,7 @@
<taghex>0x9206</taghex> <taghex>0x9206</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.SubjectDistance</key> <key>Exif.Photo.SubjectDistance</key>
<type>Rational</type>
<tagdesc>Subject distance</tagdesc> <tagdesc>Subject distance</tagdesc>
</ROW> </ROW>
<ROW num="50"> <ROW num="50">
@ -410,6 +459,7 @@
<taghex>0x9207</taghex> <taghex>0x9207</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.MeteringMode</key> <key>Exif.Photo.MeteringMode</key>
<type>Short</type>
<tagdesc>Metering mode</tagdesc> <tagdesc>Metering mode</tagdesc>
</ROW> </ROW>
<ROW num="51"> <ROW num="51">
@ -418,6 +468,7 @@
<taghex>0x9208</taghex> <taghex>0x9208</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.LightSource</key> <key>Exif.Photo.LightSource</key>
<type>Short</type>
<tagdesc>Light source</tagdesc> <tagdesc>Light source</tagdesc>
</ROW> </ROW>
<ROW num="52"> <ROW num="52">
@ -426,6 +477,7 @@
<taghex>0x9209</taghex> <taghex>0x9209</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.Flash</key> <key>Exif.Photo.Flash</key>
<type>Short</type>
<tagdesc>Flash</tagdesc> <tagdesc>Flash</tagdesc>
</ROW> </ROW>
<ROW num="53"> <ROW num="53">
@ -434,6 +486,7 @@
<taghex>0x920a</taghex> <taghex>0x920a</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.FocalLength</key> <key>Exif.Photo.FocalLength</key>
<type>Rational</type>
<tagdesc>Lens focal length</tagdesc> <tagdesc>Lens focal length</tagdesc>
</ROW> </ROW>
<ROW num="54"> <ROW num="54">
@ -442,6 +495,7 @@
<taghex>0x9214</taghex> <taghex>0x9214</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.SubjectArea</key> <key>Exif.Photo.SubjectArea</key>
<type>Short</type>
<tagdesc>Subject area</tagdesc> <tagdesc>Subject area</tagdesc>
</ROW> </ROW>
<ROW num="55"> <ROW num="55">
@ -450,6 +504,7 @@
<taghex>0x927c</taghex> <taghex>0x927c</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.MakerNote</key> <key>Exif.Photo.MakerNote</key>
<type>Undefined</type>
<tagdesc>Manufacturer notes</tagdesc> <tagdesc>Manufacturer notes</tagdesc>
</ROW> </ROW>
<ROW num="56"> <ROW num="56">
@ -458,6 +513,7 @@
<taghex>0x9286</taghex> <taghex>0x9286</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.UserComment</key> <key>Exif.Photo.UserComment</key>
<type>Comment</type>
<tagdesc>User comments</tagdesc> <tagdesc>User comments</tagdesc>
</ROW> </ROW>
<ROW num="57"> <ROW num="57">
@ -466,6 +522,7 @@
<taghex>0x9290</taghex> <taghex>0x9290</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.SubSecTime</key> <key>Exif.Photo.SubSecTime</key>
<type>Ascii</type>
<tagdesc>DateTime subseconds</tagdesc> <tagdesc>DateTime subseconds</tagdesc>
</ROW> </ROW>
<ROW num="58"> <ROW num="58">
@ -474,6 +531,7 @@
<taghex>0x9291</taghex> <taghex>0x9291</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.SubSecTimeOriginal</key> <key>Exif.Photo.SubSecTimeOriginal</key>
<type>Ascii</type>
<tagdesc>DateTimeOriginal subseconds</tagdesc> <tagdesc>DateTimeOriginal subseconds</tagdesc>
</ROW> </ROW>
<ROW num="59"> <ROW num="59">
@ -482,6 +540,7 @@
<taghex>0x9292</taghex> <taghex>0x9292</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.SubSecTimeDigitized</key> <key>Exif.Photo.SubSecTimeDigitized</key>
<type>Ascii</type>
<tagdesc>DateTimeDigitized subseconds</tagdesc> <tagdesc>DateTimeDigitized subseconds</tagdesc>
</ROW> </ROW>
<ROW num="60"> <ROW num="60">
@ -490,6 +549,7 @@
<taghex>0xa000</taghex> <taghex>0xa000</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.FlashpixVersion</key> <key>Exif.Photo.FlashpixVersion</key>
<type>Undefined</type>
<tagdesc>Supported Flashpix version</tagdesc> <tagdesc>Supported Flashpix version</tagdesc>
</ROW> </ROW>
<ROW num="61"> <ROW num="61">
@ -498,6 +558,7 @@
<taghex>0xa001</taghex> <taghex>0xa001</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.ColorSpace</key> <key>Exif.Photo.ColorSpace</key>
<type>Short</type>
<tagdesc>Color space information</tagdesc> <tagdesc>Color space information</tagdesc>
</ROW> </ROW>
<ROW num="62"> <ROW num="62">
@ -506,6 +567,7 @@
<taghex>0xa002</taghex> <taghex>0xa002</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.PixelXDimension</key> <key>Exif.Photo.PixelXDimension</key>
<type>Long</type>
<tagdesc>Valid image width</tagdesc> <tagdesc>Valid image width</tagdesc>
</ROW> </ROW>
<ROW num="63"> <ROW num="63">
@ -514,6 +576,7 @@
<taghex>0xa003</taghex> <taghex>0xa003</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.PixelYDimension</key> <key>Exif.Photo.PixelYDimension</key>
<type>Long</type>
<tagdesc>Valid image height</tagdesc> <tagdesc>Valid image height</tagdesc>
</ROW> </ROW>
<ROW num="64"> <ROW num="64">
@ -522,6 +585,7 @@
<taghex>0xa004</taghex> <taghex>0xa004</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.RelatedSoundFile</key> <key>Exif.Photo.RelatedSoundFile</key>
<type>Ascii</type>
<tagdesc>Related audio file</tagdesc> <tagdesc>Related audio file</tagdesc>
</ROW> </ROW>
<ROW num="65"> <ROW num="65">
@ -530,6 +594,7 @@
<taghex>0xa005</taghex> <taghex>0xa005</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.InteroperabilityTag</key> <key>Exif.Photo.InteroperabilityTag</key>
<type>Long</type>
<tagdesc>Interoperability IFD Pointer</tagdesc> <tagdesc>Interoperability IFD Pointer</tagdesc>
</ROW> </ROW>
<ROW num="66"> <ROW num="66">
@ -538,6 +603,7 @@
<taghex>0xa20b</taghex> <taghex>0xa20b</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.FlashEnergy</key> <key>Exif.Photo.FlashEnergy</key>
<type>Rational</type>
<tagdesc>Flash energy</tagdesc> <tagdesc>Flash energy</tagdesc>
</ROW> </ROW>
<ROW num="67"> <ROW num="67">
@ -546,6 +612,7 @@
<taghex>0xa20c</taghex> <taghex>0xa20c</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.SpatialFrequencyResponse</key> <key>Exif.Photo.SpatialFrequencyResponse</key>
<type>Undefined</type>
<tagdesc>Spatial frequency response</tagdesc> <tagdesc>Spatial frequency response</tagdesc>
</ROW> </ROW>
<ROW num="68"> <ROW num="68">
@ -554,6 +621,7 @@
<taghex>0xa20e</taghex> <taghex>0xa20e</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.FocalPlaneXResolution</key> <key>Exif.Photo.FocalPlaneXResolution</key>
<type>Rational</type>
<tagdesc>Focal plane X resolution</tagdesc> <tagdesc>Focal plane X resolution</tagdesc>
</ROW> </ROW>
<ROW num="69"> <ROW num="69">
@ -562,6 +630,7 @@
<taghex>0xa20f</taghex> <taghex>0xa20f</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.FocalPlaneYResolution</key> <key>Exif.Photo.FocalPlaneYResolution</key>
<type>Rational</type>
<tagdesc>Focal plane Y resolution</tagdesc> <tagdesc>Focal plane Y resolution</tagdesc>
</ROW> </ROW>
<ROW num="70"> <ROW num="70">
@ -570,6 +639,7 @@
<taghex>0xa210</taghex> <taghex>0xa210</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.FocalPlaneResolutionUnit</key> <key>Exif.Photo.FocalPlaneResolutionUnit</key>
<type>Short</type>
<tagdesc>Focal plane resolution unit</tagdesc> <tagdesc>Focal plane resolution unit</tagdesc>
</ROW> </ROW>
<ROW num="71"> <ROW num="71">
@ -578,6 +648,7 @@
<taghex>0xa214</taghex> <taghex>0xa214</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.SubjectLocation</key> <key>Exif.Photo.SubjectLocation</key>
<type>Short</type>
<tagdesc>Subject location</tagdesc> <tagdesc>Subject location</tagdesc>
</ROW> </ROW>
<ROW num="72"> <ROW num="72">
@ -586,6 +657,7 @@
<taghex>0xa215</taghex> <taghex>0xa215</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.ExposureIndex</key> <key>Exif.Photo.ExposureIndex</key>
<type>Rational</type>
<tagdesc>Exposure index</tagdesc> <tagdesc>Exposure index</tagdesc>
</ROW> </ROW>
<ROW num="73"> <ROW num="73">
@ -594,6 +666,7 @@
<taghex>0xa217</taghex> <taghex>0xa217</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.SensingMethod</key> <key>Exif.Photo.SensingMethod</key>
<type>Short</type>
<tagdesc>Sensing method</tagdesc> <tagdesc>Sensing method</tagdesc>
</ROW> </ROW>
<ROW num="74"> <ROW num="74">
@ -602,6 +675,7 @@
<taghex>0xa300</taghex> <taghex>0xa300</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.FileSource</key> <key>Exif.Photo.FileSource</key>
<type>Undefined</type>
<tagdesc>File source</tagdesc> <tagdesc>File source</tagdesc>
</ROW> </ROW>
<ROW num="75"> <ROW num="75">
@ -610,6 +684,7 @@
<taghex>0xa301</taghex> <taghex>0xa301</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.SceneType</key> <key>Exif.Photo.SceneType</key>
<type>Undefined</type>
<tagdesc>Scene type</tagdesc> <tagdesc>Scene type</tagdesc>
</ROW> </ROW>
<ROW num="76"> <ROW num="76">
@ -618,6 +693,7 @@
<taghex>0xa302</taghex> <taghex>0xa302</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.CFAPattern</key> <key>Exif.Photo.CFAPattern</key>
<type>Undefined</type>
<tagdesc>CFA pattern</tagdesc> <tagdesc>CFA pattern</tagdesc>
</ROW> </ROW>
<ROW num="77"> <ROW num="77">
@ -626,6 +702,7 @@
<taghex>0xa401</taghex> <taghex>0xa401</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.CustomRendered</key> <key>Exif.Photo.CustomRendered</key>
<type>Short</type>
<tagdesc>Custom image processing</tagdesc> <tagdesc>Custom image processing</tagdesc>
</ROW> </ROW>
<ROW num="78"> <ROW num="78">
@ -634,6 +711,7 @@
<taghex>0xa402</taghex> <taghex>0xa402</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.ExposureMode</key> <key>Exif.Photo.ExposureMode</key>
<type>Short</type>
<tagdesc>Exposure mode</tagdesc> <tagdesc>Exposure mode</tagdesc>
</ROW> </ROW>
<ROW num="79"> <ROW num="79">
@ -642,6 +720,7 @@
<taghex>0xa403</taghex> <taghex>0xa403</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.WhiteBalance</key> <key>Exif.Photo.WhiteBalance</key>
<type>Short</type>
<tagdesc>White balance</tagdesc> <tagdesc>White balance</tagdesc>
</ROW> </ROW>
<ROW num="80"> <ROW num="80">
@ -650,6 +729,7 @@
<taghex>0xa404</taghex> <taghex>0xa404</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.DigitalZoomRatio</key> <key>Exif.Photo.DigitalZoomRatio</key>
<type>Rational</type>
<tagdesc>Digital zoom ratio</tagdesc> <tagdesc>Digital zoom ratio</tagdesc>
</ROW> </ROW>
<ROW num="81"> <ROW num="81">
@ -658,6 +738,7 @@
<taghex>0xa405</taghex> <taghex>0xa405</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.FocalLengthIn35mmFilm</key> <key>Exif.Photo.FocalLengthIn35mmFilm</key>
<type>Short</type>
<tagdesc>Focal length in 35 mm film</tagdesc> <tagdesc>Focal length in 35 mm film</tagdesc>
</ROW> </ROW>
<ROW num="82"> <ROW num="82">
@ -666,6 +747,7 @@
<taghex>0xa406</taghex> <taghex>0xa406</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.SceneCaptureType</key> <key>Exif.Photo.SceneCaptureType</key>
<type>Short</type>
<tagdesc>Scene capture type</tagdesc> <tagdesc>Scene capture type</tagdesc>
</ROW> </ROW>
<ROW num="83"> <ROW num="83">
@ -674,6 +756,7 @@
<taghex>0xa407</taghex> <taghex>0xa407</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.GainControl</key> <key>Exif.Photo.GainControl</key>
<type>Rational</type>
<tagdesc>Gain control</tagdesc> <tagdesc>Gain control</tagdesc>
</ROW> </ROW>
<ROW num="84"> <ROW num="84">
@ -682,6 +765,7 @@
<taghex>0xa408</taghex> <taghex>0xa408</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.Contrast</key> <key>Exif.Photo.Contrast</key>
<type>Short</type>
<tagdesc>Contrast</tagdesc> <tagdesc>Contrast</tagdesc>
</ROW> </ROW>
<ROW num="85"> <ROW num="85">
@ -690,6 +774,7 @@
<taghex>0xa409</taghex> <taghex>0xa409</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.Saturation</key> <key>Exif.Photo.Saturation</key>
<type>Short</type>
<tagdesc>Saturation</tagdesc> <tagdesc>Saturation</tagdesc>
</ROW> </ROW>
<ROW num="86"> <ROW num="86">
@ -698,6 +783,7 @@
<taghex>0xa40a</taghex> <taghex>0xa40a</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.Sharpness</key> <key>Exif.Photo.Sharpness</key>
<type>Short</type>
<tagdesc>Sharpness</tagdesc> <tagdesc>Sharpness</tagdesc>
</ROW> </ROW>
<ROW num="87"> <ROW num="87">
@ -706,6 +792,7 @@
<taghex>0xa40b</taghex> <taghex>0xa40b</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.DeviceSettingDescription</key> <key>Exif.Photo.DeviceSettingDescription</key>
<type>Undefined</type>
<tagdesc>Device settings description</tagdesc> <tagdesc>Device settings description</tagdesc>
</ROW> </ROW>
<ROW num="88"> <ROW num="88">
@ -714,6 +801,7 @@
<taghex>0xa40c</taghex> <taghex>0xa40c</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.SubjectDistanceRange</key> <key>Exif.Photo.SubjectDistanceRange</key>
<type>Short</type>
<tagdesc>Subject distance range</tagdesc> <tagdesc>Subject distance range</tagdesc>
</ROW> </ROW>
<ROW num="89"> <ROW num="89">
@ -722,6 +810,7 @@
<taghex>0xa420</taghex> <taghex>0xa420</taghex>
<ifd>Exif</ifd> <ifd>Exif</ifd>
<key>Exif.Photo.ImageUniqueID</key> <key>Exif.Photo.ImageUniqueID</key>
<type>Ascii</type>
<tagdesc>Unique image ID</tagdesc> <tagdesc>Unique image ID</tagdesc>
</ROW> </ROW>
<ROW num="90"> <ROW num="90">
@ -730,6 +819,7 @@
<taghex>0x0001</taghex> <taghex>0x0001</taghex>
<ifd>Iop</ifd> <ifd>Iop</ifd>
<key>Exif.Iop.InteroperabilityIndex</key> <key>Exif.Iop.InteroperabilityIndex</key>
<type>Ascii</type>
<tagdesc>Interoperability Identification</tagdesc> <tagdesc>Interoperability Identification</tagdesc>
</ROW> </ROW>
<ROW num="91"> <ROW num="91">
@ -738,6 +828,7 @@
<taghex>0x0002</taghex> <taghex>0x0002</taghex>
<ifd>Iop</ifd> <ifd>Iop</ifd>
<key>Exif.Iop.InteroperabilityVersion</key> <key>Exif.Iop.InteroperabilityVersion</key>
<type>Undefined</type>
<tagdesc>Interoperability version</tagdesc> <tagdesc>Interoperability version</tagdesc>
</ROW> </ROW>
<ROW num="92"> <ROW num="92">
@ -746,6 +837,7 @@
<taghex>0x1000</taghex> <taghex>0x1000</taghex>
<ifd>Iop</ifd> <ifd>Iop</ifd>
<key>Exif.Iop.RelatedImageFileFormat</key> <key>Exif.Iop.RelatedImageFileFormat</key>
<type>Ascii</type>
<tagdesc>File format of image file</tagdesc> <tagdesc>File format of image file</tagdesc>
</ROW> </ROW>
<ROW num="93"> <ROW num="93">
@ -754,6 +846,7 @@
<taghex>0x1001</taghex> <taghex>0x1001</taghex>
<ifd>Iop</ifd> <ifd>Iop</ifd>
<key>Exif.Iop.RelatedImageWidth</key> <key>Exif.Iop.RelatedImageWidth</key>
<type>Long</type>
<tagdesc>Image width</tagdesc> <tagdesc>Image width</tagdesc>
</ROW> </ROW>
<ROW num="94"> <ROW num="94">
@ -762,6 +855,7 @@
<taghex>0x1002</taghex> <taghex>0x1002</taghex>
<ifd>Iop</ifd> <ifd>Iop</ifd>
<key>Exif.Iop.RelatedImageLength</key> <key>Exif.Iop.RelatedImageLength</key>
<type>Long</type>
<tagdesc>Image height</tagdesc> <tagdesc>Image height</tagdesc>
</ROW> </ROW>
<ROW num="95"> <ROW num="95">
@ -770,6 +864,7 @@
<taghex>0x0000</taghex> <taghex>0x0000</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSVersionID</key> <key>Exif.GPSInfo.GPSVersionID</key>
<type>Byte</type>
<tagdesc>GPS tag version</tagdesc> <tagdesc>GPS tag version</tagdesc>
</ROW> </ROW>
<ROW num="96"> <ROW num="96">
@ -778,6 +873,7 @@
<taghex>0x0001</taghex> <taghex>0x0001</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSLatitudeRef</key> <key>Exif.GPSInfo.GPSLatitudeRef</key>
<type>Ascii</type>
<tagdesc>North or South Latitude</tagdesc> <tagdesc>North or South Latitude</tagdesc>
</ROW> </ROW>
<ROW num="97"> <ROW num="97">
@ -786,6 +882,7 @@
<taghex>0x0002</taghex> <taghex>0x0002</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSLatitude</key> <key>Exif.GPSInfo.GPSLatitude</key>
<type>Rational</type>
<tagdesc>Latitude</tagdesc> <tagdesc>Latitude</tagdesc>
</ROW> </ROW>
<ROW num="98"> <ROW num="98">
@ -794,6 +891,7 @@
<taghex>0x0003</taghex> <taghex>0x0003</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSLongitudeRef</key> <key>Exif.GPSInfo.GPSLongitudeRef</key>
<type>Ascii</type>
<tagdesc>East or West Longitude</tagdesc> <tagdesc>East or West Longitude</tagdesc>
</ROW> </ROW>
<ROW num="99"> <ROW num="99">
@ -802,6 +900,7 @@
<taghex>0x0004</taghex> <taghex>0x0004</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSLongitude</key> <key>Exif.GPSInfo.GPSLongitude</key>
<type>Rational</type>
<tagdesc>Longitude</tagdesc> <tagdesc>Longitude</tagdesc>
</ROW> </ROW>
<ROW num="100"> <ROW num="100">
@ -810,6 +909,7 @@
<taghex>0x0005</taghex> <taghex>0x0005</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSAltitudeRef</key> <key>Exif.GPSInfo.GPSAltitudeRef</key>
<type>Byte</type>
<tagdesc>Altitude reference</tagdesc> <tagdesc>Altitude reference</tagdesc>
</ROW> </ROW>
<ROW num="101"> <ROW num="101">
@ -818,6 +918,7 @@
<taghex>0x0006</taghex> <taghex>0x0006</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSAltitude</key> <key>Exif.GPSInfo.GPSAltitude</key>
<type>Rational</type>
<tagdesc>Altitude</tagdesc> <tagdesc>Altitude</tagdesc>
</ROW> </ROW>
<ROW num="102"> <ROW num="102">
@ -826,6 +927,7 @@
<taghex>0x0007</taghex> <taghex>0x0007</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSTimeStamp</key> <key>Exif.GPSInfo.GPSTimeStamp</key>
<type>Rational</type>
<tagdesc>GPS time (atomic clock)</tagdesc> <tagdesc>GPS time (atomic clock)</tagdesc>
</ROW> </ROW>
<ROW num="103"> <ROW num="103">
@ -834,6 +936,7 @@
<taghex>0x0008</taghex> <taghex>0x0008</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSSatellites</key> <key>Exif.GPSInfo.GPSSatellites</key>
<type>Ascii</type>
<tagdesc>GPS satellites used for measurement</tagdesc> <tagdesc>GPS satellites used for measurement</tagdesc>
</ROW> </ROW>
<ROW num="104"> <ROW num="104">
@ -842,6 +945,7 @@
<taghex>0x0009</taghex> <taghex>0x0009</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSStatus</key> <key>Exif.GPSInfo.GPSStatus</key>
<type>Ascii</type>
<tagdesc>GPS receiver status</tagdesc> <tagdesc>GPS receiver status</tagdesc>
</ROW> </ROW>
<ROW num="105"> <ROW num="105">
@ -850,6 +954,7 @@
<taghex>0x000a</taghex> <taghex>0x000a</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSMeasureMode</key> <key>Exif.GPSInfo.GPSMeasureMode</key>
<type>Ascii</type>
<tagdesc>GPS measurement mode</tagdesc> <tagdesc>GPS measurement mode</tagdesc>
</ROW> </ROW>
<ROW num="106"> <ROW num="106">
@ -858,6 +963,7 @@
<taghex>0x000b</taghex> <taghex>0x000b</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSDOP</key> <key>Exif.GPSInfo.GPSDOP</key>
<type>Rational</type>
<tagdesc>Measurement precision</tagdesc> <tagdesc>Measurement precision</tagdesc>
</ROW> </ROW>
<ROW num="107"> <ROW num="107">
@ -866,6 +972,7 @@
<taghex>0x000c</taghex> <taghex>0x000c</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSSpeedRef</key> <key>Exif.GPSInfo.GPSSpeedRef</key>
<type>Ascii</type>
<tagdesc>Speed unit</tagdesc> <tagdesc>Speed unit</tagdesc>
</ROW> </ROW>
<ROW num="108"> <ROW num="108">
@ -874,6 +981,7 @@
<taghex>0x000d</taghex> <taghex>0x000d</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSSpeed</key> <key>Exif.GPSInfo.GPSSpeed</key>
<type>Rational</type>
<tagdesc>Speed of GPS receiver</tagdesc> <tagdesc>Speed of GPS receiver</tagdesc>
</ROW> </ROW>
<ROW num="109"> <ROW num="109">
@ -882,6 +990,7 @@
<taghex>0x000e</taghex> <taghex>0x000e</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSTrackRef</key> <key>Exif.GPSInfo.GPSTrackRef</key>
<type>Ascii</type>
<tagdesc>Reference for direction of movement</tagdesc> <tagdesc>Reference for direction of movement</tagdesc>
</ROW> </ROW>
<ROW num="110"> <ROW num="110">
@ -890,6 +999,7 @@
<taghex>0x000f</taghex> <taghex>0x000f</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSTrack</key> <key>Exif.GPSInfo.GPSTrack</key>
<type>Rational</type>
<tagdesc>Direction of movement</tagdesc> <tagdesc>Direction of movement</tagdesc>
</ROW> </ROW>
<ROW num="111"> <ROW num="111">
@ -898,6 +1008,7 @@
<taghex>0x0010</taghex> <taghex>0x0010</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSImgDirectionRef</key> <key>Exif.GPSInfo.GPSImgDirectionRef</key>
<type>Ascii</type>
<tagdesc>Reference for direction of image</tagdesc> <tagdesc>Reference for direction of image</tagdesc>
</ROW> </ROW>
<ROW num="112"> <ROW num="112">
@ -906,6 +1017,7 @@
<taghex>0x0011</taghex> <taghex>0x0011</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSImgDirection</key> <key>Exif.GPSInfo.GPSImgDirection</key>
<type>Rational</type>
<tagdesc>Direction of image</tagdesc> <tagdesc>Direction of image</tagdesc>
</ROW> </ROW>
<ROW num="113"> <ROW num="113">
@ -914,6 +1026,7 @@
<taghex>0x0012</taghex> <taghex>0x0012</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSMapDatum</key> <key>Exif.GPSInfo.GPSMapDatum</key>
<type>Ascii</type>
<tagdesc>Geodetic survey data used</tagdesc> <tagdesc>Geodetic survey data used</tagdesc>
</ROW> </ROW>
<ROW num="114"> <ROW num="114">
@ -922,6 +1035,7 @@
<taghex>0x0013</taghex> <taghex>0x0013</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSDestLatitudeRef</key> <key>Exif.GPSInfo.GPSDestLatitudeRef</key>
<type>Ascii</type>
<tagdesc>Reference for latitude of destination</tagdesc> <tagdesc>Reference for latitude of destination</tagdesc>
</ROW> </ROW>
<ROW num="115"> <ROW num="115">
@ -930,6 +1044,7 @@
<taghex>0x0014</taghex> <taghex>0x0014</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSDestLatitude</key> <key>Exif.GPSInfo.GPSDestLatitude</key>
<type>Rational</type>
<tagdesc>Latitude of destination</tagdesc> <tagdesc>Latitude of destination</tagdesc>
</ROW> </ROW>
<ROW num="116"> <ROW num="116">
@ -938,6 +1053,7 @@
<taghex>0x0015</taghex> <taghex>0x0015</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSDestLongitudeRef</key> <key>Exif.GPSInfo.GPSDestLongitudeRef</key>
<type>Ascii</type>
<tagdesc>Reference for longitude of destination</tagdesc> <tagdesc>Reference for longitude of destination</tagdesc>
</ROW> </ROW>
<ROW num="117"> <ROW num="117">
@ -946,6 +1062,7 @@
<taghex>0x0016</taghex> <taghex>0x0016</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSDestLongitude</key> <key>Exif.GPSInfo.GPSDestLongitude</key>
<type>Rational</type>
<tagdesc>Longitude of destination</tagdesc> <tagdesc>Longitude of destination</tagdesc>
</ROW> </ROW>
<ROW num="118"> <ROW num="118">
@ -954,6 +1071,7 @@
<taghex>0x0017</taghex> <taghex>0x0017</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSDestBearingRef</key> <key>Exif.GPSInfo.GPSDestBearingRef</key>
<type>Ascii</type>
<tagdesc>Reference for bearing of destination</tagdesc> <tagdesc>Reference for bearing of destination</tagdesc>
</ROW> </ROW>
<ROW num="119"> <ROW num="119">
@ -962,6 +1080,7 @@
<taghex>0x0018</taghex> <taghex>0x0018</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSDestBearing</key> <key>Exif.GPSInfo.GPSDestBearing</key>
<type>Rational</type>
<tagdesc>Bearing of destination</tagdesc> <tagdesc>Bearing of destination</tagdesc>
</ROW> </ROW>
<ROW num="120"> <ROW num="120">
@ -970,6 +1089,7 @@
<taghex>0x0019</taghex> <taghex>0x0019</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSDestDistanceRef</key> <key>Exif.GPSInfo.GPSDestDistanceRef</key>
<type>Ascii</type>
<tagdesc>Reference for distance to destination</tagdesc> <tagdesc>Reference for distance to destination</tagdesc>
</ROW> </ROW>
<ROW num="121"> <ROW num="121">
@ -978,6 +1098,7 @@
<taghex>0x001a</taghex> <taghex>0x001a</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSDestDistance</key> <key>Exif.GPSInfo.GPSDestDistance</key>
<type>Rational</type>
<tagdesc>Distance to destination</tagdesc> <tagdesc>Distance to destination</tagdesc>
</ROW> </ROW>
<ROW num="122"> <ROW num="122">
@ -986,6 +1107,7 @@
<taghex>0x001b</taghex> <taghex>0x001b</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSProcessingMethod</key> <key>Exif.GPSInfo.GPSProcessingMethod</key>
<type>Undefined</type>
<tagdesc>Name of GPS processing method</tagdesc> <tagdesc>Name of GPS processing method</tagdesc>
</ROW> </ROW>
<ROW num="123"> <ROW num="123">
@ -994,6 +1116,7 @@
<taghex>0x001c</taghex> <taghex>0x001c</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSAreaInformation</key> <key>Exif.GPSInfo.GPSAreaInformation</key>
<type>Undefined</type>
<tagdesc>Name of GPS area</tagdesc> <tagdesc>Name of GPS area</tagdesc>
</ROW> </ROW>
<ROW num="124"> <ROW num="124">
@ -1002,6 +1125,7 @@
<taghex>0x001d</taghex> <taghex>0x001d</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSDateStamp</key> <key>Exif.GPSInfo.GPSDateStamp</key>
<type>Ascii</type>
<tagdesc>GPS date</tagdesc> <tagdesc>GPS date</tagdesc>
</ROW> </ROW>
<ROW num="125"> <ROW num="125">
@ -1010,6 +1134,7 @@
<taghex>0x001e</taghex> <taghex>0x001e</taghex>
<ifd>GPSInfo</ifd> <ifd>GPSInfo</ifd>
<key>Exif.GPSInfo.GPSDifferential</key> <key>Exif.GPSInfo.GPSDifferential</key>
<type>Short</type>
<tagdesc>GPS differential correction</tagdesc> <tagdesc>GPS differential correction</tagdesc>
</ROW> </ROW>
</ROWSET> </ROWSET>

@ -53,10 +53,10 @@ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" />
<!-- *********************************************************************** --> <!-- *********************************************************************** -->
<xsl:template name="column-group"> <xsl:template name="column-group">
<colgroup> <colgroup>
<col align="center" />
<col align="right" />
<col /> <col />
<col /> <col />
<col align="right" />
<col align="center" />
<col /> <col />
<col /> <col />
</colgroup> </colgroup>
@ -65,12 +65,12 @@ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" />
<!-- *********************************************************************** --> <!-- *********************************************************************** -->
<xsl:template name="header-row"> <xsl:template name="header-row">
<tr> <tr>
<th>Tag name</th>
<th>Tag description</th>
<th>Tag (dec)</th>
<th>Tag (hex)</th> <th>Tag (hex)</th>
<th>Tag (dec)</th>
<th>IFD</th> <th>IFD</th>
<th>Key</th> <th>Key</th>
<th>Type</th>
<th>Tag description</th>
</tr> </tr>
</xsl:template> </xsl:template>
@ -92,12 +92,12 @@ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" />
<xsl:template name="data-row"> <xsl:template name="data-row">
<xsl:param name="rowClass" /> <xsl:param name="rowClass" />
<tr><xsl:attribute name="class"><xsl:value-of select="$rowClass" /></xsl:attribute> <tr><xsl:attribute name="class"><xsl:value-of select="$rowClass" /></xsl:attribute>
<td><xsl:value-of select="tagname" /></td>
<td><xsl:value-of select="tagdesc" /></td>
<td><xsl:value-of select="tagdec" /></td>
<td><xsl:value-of select="taghex" /></td> <td><xsl:value-of select="taghex" /></td>
<td><xsl:value-of select="tagdec" /></td>
<td><xsl:value-of select="ifd" /></td> <td><xsl:value-of select="ifd" /></td>
<td><xsl:value-of select="key" /></td> <td><xsl:value-of select="key" /></td>
<td><xsl:value-of select="type" /></td>
<td><xsl:value-of select="tagdesc" /></td>
</tr> </tr>
</xsl:template> </xsl:template>
@ -107,7 +107,7 @@ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" />
//<![CDATA[ //<![CDATA[
var t1 = new SortableTable( var t1 = new SortableTable(
document.getElementById("report-1"), document.getElementById("report-1"),
["String", "String", "Number", "String", "String", "String"] ["String", "Number", "String", "String", "String", "String"]
); );
t1.onsort = function () { t1.onsort = function () {
var rows = t1.tBody.rows; var rows = t1.tBody.rows;

@ -55,16 +55,20 @@ namespace Exiv2 {
// Canon MakerNote Tag Info // Canon MakerNote Tag Info
const TagInfo CanonMakerNote::tagInfo_[] = { const TagInfo CanonMakerNote::tagInfo_[] = {
TagInfo(0x0001, "CameraSettings1", "Various camera settings (1)", canonIfdId, makerTags, print0x0001), TagInfo(0x0000, "0x0000", "Unknown", canonIfdId, makerTags, unsignedShort, printValue),
TagInfo(0x0004, "CameraSettings2", "Various camera settings (2)", canonIfdId, makerTags, print0x0004), TagInfo(0x0001, "CameraSettings1", "Various camera settings (1)", canonIfdId, makerTags, unsignedShort, print0x0001),
TagInfo(0x0006, "ImageType", "Image type", canonIfdId, makerTags, printValue), TagInfo(0x0002, "0x0002", "Unknown", canonIfdId, makerTags, unsignedShort, printValue),
TagInfo(0x0007, "FirmwareVersion", "Firmware version", canonIfdId, makerTags, printValue), TagInfo(0x0003, "0x0003", "Unknown", canonIfdId, makerTags, unsignedShort, printValue),
TagInfo(0x0008, "ImageNumber", "Image number", canonIfdId, makerTags, print0x0008), TagInfo(0x0004, "CameraSettings2", "Various camera settings (2)", canonIfdId, makerTags, unsignedShort, print0x0004),
TagInfo(0x0009, "OwnerName", "Owner Name", canonIfdId, makerTags, printValue), TagInfo(0x0006, "ImageType", "Image type", canonIfdId, makerTags, asciiString, printValue),
TagInfo(0x000c, "SerialNumber", "Camera serial number", canonIfdId, makerTags, print0x000c), TagInfo(0x0007, "FirmwareVersion", "Firmware version", canonIfdId, makerTags, asciiString, printValue),
TagInfo(0x000f, "EosD30Functions", "EOS D30 Custom Functions", canonIfdId, makerTags, print0x000f), TagInfo(0x0008, "ImageNumber", "Image number", canonIfdId, makerTags, unsignedLong, print0x0008),
TagInfo(0x0009, "OwnerName", "Owner Name", canonIfdId, makerTags, asciiString, printValue),
TagInfo(0x000c, "SerialNumber", "Camera serial number", canonIfdId, makerTags, unsignedLong, print0x000c),
TagInfo(0x000d, "0x000d", "Unknown", canonIfdId, makerTags, unsignedShort, printValue),
TagInfo(0x000f, "EosD30Functions", "EOS D30 Custom Functions", canonIfdId, makerTags, unsignedShort, print0x000f),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownCanonMakerNoteTag)", "Unknown CanonMakerNote tag", canonIfdId, makerTags, printValue) TagInfo(0xffff, "(UnknownCanonMakerNoteTag)", "Unknown CanonMakerNote tag", canonIfdId, makerTags, invalidTypeId, printValue)
}; };
CanonMakerNote::CanonMakerNote(bool alloc) CanonMakerNote::CanonMakerNote(bool alloc)

@ -28,8 +28,8 @@
# for Iptc Time values it is HH:MM:SS±HH:MM where HH:MM:SS refers to local # for Iptc Time values it is HH:MM:SS±HH:MM where HH:MM:SS refers to local
# hour, minute and seconds and ±HH:MM refers to hours and minutes ahead or # hour, minute and seconds and ±HH:MM refers to hours and minutes ahead or
# behind Universal Coordinated Time. # behind Universal Coordinated Time.
# A default type is used if none is explicitely given. The default for Exif # A default type is used if none is explicitely given. The default type is
# keys is Ascii, that for Iptc keys is determined based on the key itself. # determined based on the key.
# value # value
# The remaining text on the line is the value. It can optionally be enclosed # The remaining text on the line is the value. It can optionally be enclosed
# in double quotes ("value") # in double quotes ("value")

@ -383,6 +383,9 @@ namespace Exiv2 {
<< std::dec << dataSet.minbytes_ << ", " << std::dec << dataSet.minbytes_ << ", "
<< dataSet.maxbytes_ << ", " << dataSet.maxbytes_ << ", "
<< iptcKey.key() << ", " << iptcKey.key() << ", "
<< TypeInfo::typeName(
IptcDataSets::dataSetType(dataSet.number_,
dataSet.recordId_)) << ", "
<< dataSet.desc_; << dataSet.desc_;
} }

@ -177,7 +177,10 @@ namespace Exiv2 {
void Exifdatum::setValue(const std::string& value) void Exifdatum::setValue(const std::string& value)
{ {
if (value_.get() == 0) value_ = Value::create(asciiString); if (value_.get() == 0) {
TypeId type = ExifTags::tagType(tag(), ifdId());
value_ = Value::create(type);
}
value_->read(value); value_->read(value);
} }

@ -141,9 +141,10 @@ namespace Exiv2 {
*/ */
void setValue(const Value* pValue); void setValue(const Value* pValue);
/*! /*!
@brief Set the value to the string \em value. @brief Set the value to the string \em value. Uses Value::read(const
Uses Value::read(const std::string&). If the %Exifdatum std::string&). If the %Exifdatum does not have a Value yet,
does not have a value yet, then an AsciiValue is created. then a %Value of the correct type for this %Exifdatum is
created. An AsciiValue is created for unknown tags.
*/ */
void setValue(const std::string& value); void setValue(const std::string& value);
/*! /*!

@ -44,23 +44,25 @@ try {
Exiv2::ExifData &exifData = image->exifData(); Exiv2::ExifData &exifData = image->exifData();
/* /*
Use Exiv2::CommentValue for Exif user comments. The format of the comment Exiv2 uses a CommentValue for Exif user comments. The format of the
string includes an optional charset specification at the beginning: comment string includes an optional charset specification at the beginning:
[charset=["]Ascii|Jis|Unicode|Undefined["] ]comment [charset=["]Ascii|Jis|Unicode|Undefined["] ]comment
Undefined is used as a default if the comment doesn't start with a charset Undefined is used as a default if the comment doesn't start with a charset
definition. definition.
Following are a few examples of valid comments. Only the last one is Following are a few examples of valid comments. The last one is written to
written to the file. the file.
*/ */
Exiv2::CommentValue value("charset=Ascii An ASCII Exif comment added with Exiv2"); exifData["Exif.Photo.UserComment"]
value.read("charset=\"Unicode\" An Unicode Exif comment added with Exiv2"); = "charset=\"Unicode\" An Unicode Exif comment added with Exiv2";
value.read("charset=\"Undefined\" An undefined Exif comment added with Exiv2"); exifData["Exif.Photo.UserComment"]
value.read("Another undefined Exif comment added with Exiv2"); = "charset=\"Undefined\" An undefined Exif comment added with Exiv2";
exifData["Exif.Photo.UserComment"]
exifData["Exif.Photo.UserComment"] = value; = "Another undefined Exif comment added with Exiv2";
exifData["Exif.Photo.UserComment"]
= "charset=Ascii An ASCII Exif comment added with Exiv2";
std::cout << "Writing user comment '" std::cout << "Writing user comment '"
<< exifData["Exif.Photo.UserComment"] << exifData["Exif.Photo.UserComment"]

@ -726,7 +726,8 @@ namespace {
try { try {
Exiv2::ExifKey exifKey(key); Exiv2::ExifKey exifKey(key);
metadataId = exif; metadataId = exif;
defaultType = Exiv2::asciiString; defaultType = Exiv2::ExifTags::tagType(exifKey.tag(),
exifKey.ifdId());
} }
catch (const Exiv2::Error&) {} catch (const Exiv2::Error&) {}
} }

@ -57,24 +57,28 @@ namespace Exiv2 {
// Fujifilm MakerNote Tag Info // Fujifilm MakerNote Tag Info
const TagInfo FujiMakerNote::tagInfo_[] = { const TagInfo FujiMakerNote::tagInfo_[] = {
TagInfo(0x0000, "Version", "Fujifilm Makernote version", fujiIfdId, makerTags, printValue), TagInfo(0x0000, "Version", "Fujifilm Makernote version", fujiIfdId, makerTags, undefined, printValue),
TagInfo(0x1000, "Quality", "Image quality setting", fujiIfdId, makerTags, printValue), TagInfo(0x1000, "Quality", "Image quality setting", fujiIfdId, makerTags, asciiString, printValue),
TagInfo(0x1001, "Sharpness", "Sharpness setting", fujiIfdId, makerTags, print0x1001), TagInfo(0x1001, "Sharpness", "Sharpness setting", fujiIfdId, makerTags, unsignedShort, print0x1001),
TagInfo(0x1002, "WhiteBalance", "White balance setting", fujiIfdId, makerTags, print0x1002), TagInfo(0x1002, "WhiteBalance", "White balance setting", fujiIfdId, makerTags, unsignedShort, print0x1002),
TagInfo(0x1003, "Color", "Chroma saturation setting", fujiIfdId, makerTags, print0x1003), TagInfo(0x1003, "Color", "Chroma saturation setting", fujiIfdId, makerTags, unsignedShort, print0x1003),
TagInfo(0x1004, "Tone", "Contrast setting", fujiIfdId, makerTags, print0x1004), TagInfo(0x1004, "Tone", "Contrast setting", fujiIfdId, makerTags, unsignedShort, print0x1004),
TagInfo(0x1010, "FlashMode", "Flash firing mode setting", fujiIfdId, makerTags, print0x1010), TagInfo(0x1010, "FlashMode", "Flash firing mode setting", fujiIfdId, makerTags, unsignedShort, print0x1010),
TagInfo(0x1011, "FlashStrength", "Flash firing strength compensation setting", fujiIfdId, makerTags, printValue), TagInfo(0x1011, "FlashStrength", "Flash firing strength compensation setting", fujiIfdId, makerTags, signedRational, printValue),
TagInfo(0x1020, "Macro", "Macro mode setting", fujiIfdId, makerTags, printOffOn), TagInfo(0x1020, "Macro", "Macro mode setting", fujiIfdId, makerTags, unsignedShort, printOffOn),
TagInfo(0x1021, "FocusMode", "Focusing mode setting", fujiIfdId, makerTags, print0x1021), TagInfo(0x1021, "FocusMode", "Focusing mode setting", fujiIfdId, makerTags, unsignedShort, print0x1021),
TagInfo(0x1030, "SlowSync", "Slow synchro mode setting", fujiIfdId, makerTags, printOffOn), TagInfo(0x1022, "0x1022", "Unknown", fujiIfdId, makerTags, unsignedShort, printValue),
TagInfo(0x1031, "PictureMode", "Picture mode setting", fujiIfdId, makerTags, print0x1031), TagInfo(0x1030, "SlowSync", "Slow synchro mode setting", fujiIfdId, makerTags, unsignedShort, printOffOn),
TagInfo(0x1100, "Continuous", "Continuous shooting or auto bracketing setting", fujiIfdId, makerTags, printOffOn), TagInfo(0x1031, "PictureMode", "Picture mode setting", fujiIfdId, makerTags, unsignedShort, print0x1031),
TagInfo(0x1300, "BlurWarning", "Blur warning status", fujiIfdId, makerTags, printOffOn), TagInfo(0x1032, "0x1032", "Unknown", fujiIfdId, makerTags, unsignedShort, printValue),
TagInfo(0x1301, "FocusWarning", "Auto Focus warning status", fujiIfdId, makerTags, printOffOn), TagInfo(0x1100, "Continuous", "Continuous shooting or auto bracketing setting", fujiIfdId, makerTags, unsignedShort, printOffOn),
TagInfo(0x1302, "AeWarning", "Auto Exposure warning status", fujiIfdId, makerTags, printOffOn), TagInfo(0x1101, "0x1101", "Unknown", fujiIfdId, makerTags, unsignedShort, printValue),
TagInfo(0x1200, "0x1200", "Unknown", fujiIfdId, makerTags, unsignedShort, printValue),
TagInfo(0x1300, "BlurWarning", "Blur warning status", fujiIfdId, makerTags, unsignedShort, printOffOn),
TagInfo(0x1301, "FocusWarning", "Auto Focus warning status", fujiIfdId, makerTags, unsignedShort, printOffOn),
TagInfo(0x1302, "AeWarning", "Auto Exposure warning status", fujiIfdId, makerTags, unsignedShort, printOffOn),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownFujiMakerNoteTag)", "Unknown FujiMakerNote tag", fujiIfdId, makerTags, printValue) TagInfo(0xffff, "(UnknownFujiMakerNoteTag)", "Unknown FujiMakerNote tag", fujiIfdId, makerTags, invalidTypeId, printValue)
}; };
FujiMakerNote::FujiMakerNote(bool alloc) FujiMakerNote::FujiMakerNote(bool alloc)

@ -56,22 +56,24 @@ namespace Exiv2 {
// Nikon1 MakerNote Tag Info // Nikon1 MakerNote Tag Info
const TagInfo Nikon1MakerNote::tagInfo_[] = { const TagInfo Nikon1MakerNote::tagInfo_[] = {
TagInfo(0x0001, "Version", "Nikon Makernote version", nikon1IfdId, makerTags, printValue), TagInfo(0x0001, "Version", "Nikon Makernote version", nikon1IfdId, makerTags, undefined, printValue),
TagInfo(0x0002, "ISOSpeed", "ISO speed setting", nikon1IfdId, makerTags, print0x0002), TagInfo(0x0002, "ISOSpeed", "ISO speed setting", nikon1IfdId, makerTags, unsignedShort, print0x0002),
TagInfo(0x0003, "ColorMode", "Color mode", nikon1IfdId, makerTags, printValue), TagInfo(0x0003, "ColorMode", "Color mode", nikon1IfdId, makerTags, asciiString, printValue),
TagInfo(0x0004, "Quality", "Image quality setting", nikon1IfdId, makerTags, printValue), TagInfo(0x0004, "Quality", "Image quality setting", nikon1IfdId, makerTags, asciiString, printValue),
TagInfo(0x0005, "WhiteBalance", "White balance", nikon1IfdId, makerTags, printValue), TagInfo(0x0005, "WhiteBalance", "White balance", nikon1IfdId, makerTags, asciiString, printValue),
TagInfo(0x0006, "Sharpening", "Image sharpening setting", nikon1IfdId, makerTags, printValue), TagInfo(0x0006, "Sharpening", "Image sharpening setting", nikon1IfdId, makerTags, asciiString, printValue),
TagInfo(0x0007, "Focus", "Focus mode", nikon1IfdId, makerTags, print0x0007), TagInfo(0x0007, "Focus", "Focus mode", nikon1IfdId, makerTags, asciiString, print0x0007),
TagInfo(0x0008, "Flash", "Flash mode", nikon1IfdId, makerTags, printValue), TagInfo(0x0008, "Flash", "Flash mode", nikon1IfdId, makerTags, asciiString, printValue),
TagInfo(0x000f, "ISOSelection", "ISO selection", nikon1IfdId, makerTags, printValue), TagInfo(0x000a, "0x000a", "Unknown", nikon1IfdId, makerTags, unsignedRational, printValue),
TagInfo(0x0080, "ImageAdjustment", "Image adjustment setting", nikon1IfdId, makerTags, printValue), TagInfo(0x000f, "ISOSelection", "ISO selection", nikon1IfdId, makerTags, asciiString, printValue),
TagInfo(0x0082, "Adapter", "Adapter used", nikon1IfdId, makerTags, printValue), TagInfo(0x0010, "DataDump", "Data dump", nikon1IfdId, makerTags, undefined, printValue),
TagInfo(0x0085, "FocusDistance", "Manual focus distance", nikon1IfdId, makerTags, print0x0085), TagInfo(0x0080, "ImageAdjustment", "Image adjustment setting", nikon1IfdId, makerTags, asciiString, printValue),
TagInfo(0x0086, "DigitalZoom", "Digital zoom setting", nikon1IfdId, makerTags, print0x0086), TagInfo(0x0082, "Adapter", "Adapter used", nikon1IfdId, makerTags, asciiString, printValue),
TagInfo(0x0088, "AFFocusPos", "AF focus position", nikon1IfdId, makerTags, print0x0088), TagInfo(0x0085, "FocusDistance", "Manual focus distance", nikon1IfdId, makerTags, unsignedRational, print0x0085),
TagInfo(0x0086, "DigitalZoom", "Digital zoom setting", nikon1IfdId, makerTags, unsignedRational, print0x0086),
TagInfo(0x0088, "AFFocusPos", "AF focus position", nikon1IfdId, makerTags, undefined, print0x0088),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikon1MnTag)", "Unknown Nikon1MakerNote tag", nikon1IfdId, makerTags, printValue) TagInfo(0xffff, "(UnknownNikon1MnTag)", "Unknown Nikon1MakerNote tag", nikon1IfdId, makerTags, invalidTypeId, printValue)
}; };
Nikon1MakerNote::Nikon1MakerNote(bool alloc) Nikon1MakerNote::Nikon1MakerNote(bool alloc)
@ -191,16 +193,19 @@ namespace Exiv2 {
// Nikon2 MakerNote Tag Info // Nikon2 MakerNote Tag Info
const TagInfo Nikon2MakerNote::tagInfo_[] = { const TagInfo Nikon2MakerNote::tagInfo_[] = {
TagInfo(0x0003, "Quality", "Image quality setting", nikon2IfdId, makerTags, print0x0003), TagInfo(0x0002, "0x0002", "Unknown", nikon2IfdId, makerTags, asciiString, printValue),
TagInfo(0x0004, "ColorMode", "Color mode", nikon2IfdId, makerTags, print0x0004), TagInfo(0x0003, "Quality", "Image quality setting", nikon2IfdId, makerTags, unsignedShort, print0x0003),
TagInfo(0x0005, "ImageAdjustment", "Image adjustment setting", nikon2IfdId, makerTags, print0x0005), TagInfo(0x0004, "ColorMode", "Color mode", nikon2IfdId, makerTags, unsignedShort, print0x0004),
TagInfo(0x0006, "ISOSpeed", "ISO speed setting", nikon2IfdId, makerTags, print0x0006), TagInfo(0x0005, "ImageAdjustment", "Image adjustment setting", nikon2IfdId, makerTags, unsignedShort, print0x0005),
TagInfo(0x0007, "WhiteBalance", "White balance", nikon2IfdId, makerTags, print0x0007), TagInfo(0x0006, "ISOSpeed", "ISO speed setting", nikon2IfdId, makerTags, unsignedShort, print0x0006),
TagInfo(0x0008, "Focus", "Focus mode", nikon2IfdId, makerTags, printValue), TagInfo(0x0007, "WhiteBalance", "White balance", nikon2IfdId, makerTags, unsignedShort, print0x0007),
TagInfo(0x000a, "DigitalZoom", "Digital zoom setting", nikon2IfdId, makerTags, print0x000a), TagInfo(0x0008, "Focus", "Focus mode", nikon2IfdId, makerTags, unsignedRational, printValue),
TagInfo(0x000b, "Adapter", "Adapter used", nikon2IfdId, makerTags, printValue), TagInfo(0x0009, "0x0009", "Unknown", nikon2IfdId, makerTags, asciiString, printValue),
TagInfo(0x000a, "DigitalZoom", "Digital zoom setting", nikon2IfdId, makerTags, unsignedRational, print0x000a),
TagInfo(0x000b, "Adapter", "Adapter used", nikon2IfdId, makerTags, unsignedShort, printValue),
TagInfo(0x0f00, "0x0f00", "Unknown", nikon2IfdId, makerTags, unsignedLong, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikon2MnTag)", "Unknown Nikon2MakerNote tag", nikon2IfdId, makerTags, printValue) TagInfo(0xffff, "(UnknownNikon2MnTag)", "Unknown Nikon2MakerNote tag", nikon2IfdId, makerTags, invalidTypeId, printValue)
}; };
Nikon2MakerNote::Nikon2MakerNote(bool alloc) Nikon2MakerNote::Nikon2MakerNote(bool alloc)
@ -363,54 +368,68 @@ namespace Exiv2 {
// Nikon3 MakerNote Tag Info // Nikon3 MakerNote Tag Info
const TagInfo Nikon3MakerNote::tagInfo_[] = { const TagInfo Nikon3MakerNote::tagInfo_[] = {
TagInfo(0x0001, "Version", "Nikon Makernote version", nikon3IfdId, makerTags, printValue), TagInfo(0x0001, "Version", "Nikon Makernote version", nikon3IfdId, makerTags, undefined, printValue),
TagInfo(0x0002, "ISOSpeed", "ISO speed used", nikon3IfdId, makerTags, print0x0002), TagInfo(0x0002, "ISOSpeed", "ISO speed used", nikon3IfdId, makerTags, unsignedShort, print0x0002),
TagInfo(0x0003, "ColorMode", "Color mode", nikon3IfdId, makerTags, printValue), TagInfo(0x0003, "ColorMode", "Color mode", nikon3IfdId, makerTags, asciiString, printValue),
TagInfo(0x0004, "Quality", "Image quality setting", nikon3IfdId, makerTags, printValue), TagInfo(0x0004, "Quality", "Image quality setting", nikon3IfdId, makerTags, asciiString, printValue),
TagInfo(0x0005, "WhiteBalance", "White balance", nikon3IfdId, makerTags, printValue), TagInfo(0x0005, "WhiteBalance", "White balance", nikon3IfdId, makerTags, asciiString, printValue),
TagInfo(0x0006, "Sharpening", "Image sharpening setting", nikon3IfdId, makerTags, printValue), TagInfo(0x0006, "Sharpening", "Image sharpening setting", nikon3IfdId, makerTags, asciiString, printValue),
TagInfo(0x0007, "Focus", "Focus mode", nikon3IfdId, makerTags, printValue), TagInfo(0x0007, "Focus", "Focus mode", nikon3IfdId, makerTags, asciiString, printValue),
TagInfo(0x0008, "FlashSetting", "Flash setting", nikon3IfdId, makerTags, printValue), TagInfo(0x0008, "FlashSetting", "Flash setting", nikon3IfdId, makerTags, asciiString, printValue),
TagInfo(0x0009, "FlashMode", "Flash mode", nikon3IfdId, makerTags, printValue), TagInfo(0x0009, "FlashMode", "Flash mode", nikon3IfdId, makerTags, asciiString, printValue),
TagInfo(0x000b, "WhiteBalanceBias", "White balance bias", nikon3IfdId, makerTags, printValue), TagInfo(0x000b, "WhiteBalanceBias", "White balance bias", nikon3IfdId, makerTags, signedShort, printValue),
TagInfo(0x000c, "ColorBalance1", "Color balance 1", nikon3IfdId, makerTags, printValue), // TagInfo(0x000c, "ColorBalance1", "Color balance 1", nikon3IfdId, makerTags, xxx, printValue),
TagInfo(0x000e, "ExposureDiff", "Exposure difference", nikon3IfdId, makerTags, printValue), TagInfo(0x000d, "0x000d", "Unknown", nikon3IfdId, makerTags, undefined, printValue),
TagInfo(0x000f, "ISOSelection", "ISO selection", nikon3IfdId, makerTags, printValue), TagInfo(0x000e, "ExposureDiff", "Exposure difference", nikon3IfdId, makerTags, undefined, printValue),
TagInfo(0x000b, "DataDump", "Data dump", nikon3IfdId, makerTags, printValue), TagInfo(0x000f, "ISOSelection", "ISO selection", nikon3IfdId, makerTags, asciiString, printValue),
TagInfo(0x0011, "ThumbOffset", "Thumbnail IFD offset", nikon3IfdId, makerTags, printValue), TagInfo(0x0010, "DataDump", "Data dump", nikon3IfdId, makerTags, undefined, printValue),
TagInfo(0x0012, "FlashComp", "Flash compensation setting", nikon3IfdId, makerTags, print0x0012), TagInfo(0x0011, "ThumbOffset", "Thumbnail IFD offset", nikon3IfdId, makerTags, unsignedLong, printValue),
TagInfo(0x0013, "ISOSetting", "ISO speed setting", nikon3IfdId, makerTags, print0x0002), // use 0x0002 print fct TagInfo(0x0012, "FlashComp", "Flash compensation setting", nikon3IfdId, makerTags, undefined, print0x0012),
TagInfo(0x0016, "ImageBoundry", "Image boundry", nikon3IfdId, makerTags, printValue), TagInfo(0x0013, "ISOSetting", "ISO speed setting", nikon3IfdId, makerTags, unsignedShort, print0x0002), // use 0x0002 print fct
TagInfo(0x0018, "FlashBracketComp", "Flash bracket compensation applied", nikon3IfdId, makerTags, print0x0012), // use 0x0012 print fct TagInfo(0x0016, "ImageBoundry", "Image boundry", nikon3IfdId, makerTags, unsignedShort, printValue),
TagInfo(0x0019, "ExposureBracketComp", "AE bracket compensation applied", nikon3IfdId, makerTags, printValue), TagInfo(0x0017, "0x0017", "Unknown", nikon3IfdId, makerTags, undefined, printValue),
TagInfo(0x0080, "ImageAdjustment", "Image adjustment setting", nikon3IfdId, makerTags, printValue), TagInfo(0x0018, "FlashBracketComp", "Flash bracket compensation applied", nikon3IfdId, makerTags, undefined, print0x0012), // use 0x0012 print fct
TagInfo(0x0081, "ToneComp", "Tone compensation setting (contrast)", nikon3IfdId, makerTags, printValue), TagInfo(0x0019, "ExposureBracketComp", "AE bracket compensation applied", nikon3IfdId, makerTags, signedRational, printValue),
TagInfo(0x0082, "AuxiliaryLens", "Auxiliary lens (adapter)", nikon3IfdId, makerTags, printValue), TagInfo(0x0080, "ImageAdjustment", "Image adjustment setting", nikon3IfdId, makerTags, asciiString, printValue),
TagInfo(0x0083, "LensType", "Lens type", nikon3IfdId, makerTags, printValue), TagInfo(0x0081, "ToneComp", "Tone compensation setting (contrast)", nikon3IfdId, makerTags, asciiString, printValue),
TagInfo(0x0084, "Lens", "Lens", nikon3IfdId, makerTags, print0x0084), TagInfo(0x0082, "AuxiliaryLens", "Auxiliary lens (adapter)", nikon3IfdId, makerTags, asciiString, printValue),
TagInfo(0x0085, "FocusDistance", "Manual focus distance", nikon3IfdId, makerTags, printValue), TagInfo(0x0083, "LensType", "Lens type", nikon3IfdId, makerTags, unsignedByte, printValue),
TagInfo(0x0086, "DigitalZoom", "Digital zoom setting", nikon3IfdId, makerTags, printValue), TagInfo(0x0084, "Lens", "Lens", nikon3IfdId, makerTags, unsignedRational, print0x0084),
TagInfo(0x0087, "FlashType", "Type of flash used", nikon3IfdId, makerTags, print0x0087), TagInfo(0x0085, "FocusDistance", "Manual focus distance", nikon3IfdId, makerTags, unsignedRational, printValue),
TagInfo(0x0088, "AFFocusPos", "AF focus position", nikon3IfdId, makerTags, print0x0088), TagInfo(0x0086, "DigitalZoom", "Digital zoom setting", nikon3IfdId, makerTags, unsignedRational, printValue),
TagInfo(0x0089, "Bracketing", "Bracketing", nikon3IfdId, makerTags, print0x0089), TagInfo(0x0087, "FlashType", "Type of flash used", nikon3IfdId, makerTags, unsignedByte, print0x0087),
TagInfo(0x008c, "NEFCurve1", "NEF curve 1", nikon3IfdId, makerTags, printValue), TagInfo(0x0088, "AFFocusPos", "AF focus position", nikon3IfdId, makerTags, undefined, print0x0088),
TagInfo(0x008d, "ColorMode", "Color mode", nikon3IfdId, makerTags, printValue), TagInfo(0x0089, "Bracketing", "Bracketing", nikon3IfdId, makerTags, unsignedShort, print0x0089),
TagInfo(0x008f, "SceneMode", "Scene mode", nikon3IfdId, makerTags, printValue), TagInfo(0x008a, "0x008a", "Unknown", nikon3IfdId, makerTags, unsignedShort, printValue),
TagInfo(0x0090, "LightingType", "Lighting type", nikon3IfdId, makerTags, printValue), TagInfo(0x008b, "0x008b", "Unknown", nikon3IfdId, makerTags, undefined, printValue),
TagInfo(0x0092, "HueAdjustment", "Hue adjustment", nikon3IfdId, makerTags, printValue), // TagInfo(0x008c, "NEFCurve1", "NEF curve 1", nikon3IfdId, makerTags, xxx, printValue),
TagInfo(0x0094, "Saturation", "Saturation adjustment", nikon3IfdId, makerTags, printValue), TagInfo(0x008d, "ColorMode", "Color mode", nikon3IfdId, makerTags, asciiString, printValue),
TagInfo(0x0095, "NoiseReduction", "Noise reduction", nikon3IfdId, makerTags, printValue), TagInfo(0x008f, "SceneMode", "Scene mode", nikon3IfdId, makerTags, asciiString, printValue),
TagInfo(0x0096, "NEFCurve2", "NEF curve 2", nikon3IfdId, makerTags, printValue), TagInfo(0x0090, "LightingType", "Lighting type", nikon3IfdId, makerTags, asciiString, printValue),
TagInfo(0x0097, "ColorBalance2", "Color balance 2", nikon3IfdId, makerTags, printValue), TagInfo(0x0091, "0x0091", "Unknown", nikon3IfdId, makerTags, undefined, printValue),
TagInfo(0x0099, "NEFThumbnailSize", "NEF thumbnail size", nikon3IfdId, makerTags, printValue), TagInfo(0x0092, "HueAdjustment", "Hue adjustment", nikon3IfdId, makerTags, signedShort, printValue),
TagInfo(0x00a0, "SerialNumber", "Camera serial number", nikon3IfdId, makerTags, printValue), TagInfo(0x0094, "Saturation", "Saturation adjustment", nikon3IfdId, makerTags, signedShort, printValue),
TagInfo(0x00a7, "ShutterCount", "Number of shots taken by camera", nikon3IfdId, makerTags, printValue), TagInfo(0x0095, "NoiseReduction", "Noise reduction", nikon3IfdId, makerTags, asciiString, printValue),
TagInfo(0x00a9, "ImageOptimization", "Image optimization", nikon3IfdId, makerTags, printValue), // TagInfo(0x0096, "NEFCurve2", "NEF curve 2", nikon3IfdId, makerTags, xxx, printValue),
TagInfo(0x00aa, "Saturation", "Saturation", nikon3IfdId, makerTags, printValue), TagInfo(0x0097, "ColorBalance2", "Color balance 2", nikon3IfdId, makerTags, undefined, printValue),
TagInfo(0x00ab, "VariProgram", "Vari program", nikon3IfdId, makerTags, printValue), TagInfo(0x0098, "0x0098", "Unknown", nikon3IfdId, makerTags, undefined, printValue),
TagInfo(0x0e00, "PrintIM", "Print image matching", nikon3IfdId, makerTags, printValue), TagInfo(0x0099, "NEFThumbnailSize", "NEF thumbnail size", nikon3IfdId, makerTags, unsignedShort, printValue),
TagInfo(0x009a, "0x009a", "Unknown", nikon3IfdId, makerTags, unsignedRational, printValue),
TagInfo(0x009b, "0x009b", "Unknown", nikon3IfdId, makerTags, unsignedShort, printValue),
TagInfo(0x009f, "0x009f", "Unknown", nikon3IfdId, makerTags, signedShort, printValue),
TagInfo(0x00a0, "SerialNumber", "Camera serial number", nikon3IfdId, makerTags, asciiString, printValue),
TagInfo(0x00a2, "0x00a2", "Unknown", nikon3IfdId, makerTags, unsignedLong, printValue),
TagInfo(0x00a3, "0x00a3", "Unknown", nikon3IfdId, makerTags, unsignedByte, printValue),
TagInfo(0x00a5, "0x00a5", "Unknown", nikon3IfdId, makerTags, unsignedLong, printValue),
TagInfo(0x00a6, "0x00a6", "Unknown", nikon3IfdId, makerTags, unsignedLong, printValue),
TagInfo(0x00a7, "ShutterCount", "Number of shots taken by camera", nikon3IfdId, makerTags, unsignedLong, printValue),
TagInfo(0x00a8, "0x00a8", "Unknown", nikon3IfdId, makerTags, undefined, printValue),
TagInfo(0x00a9, "ImageOptimization", "Image optimization", nikon3IfdId, makerTags, asciiString, printValue),
TagInfo(0x00aa, "Saturation", "Saturation", nikon3IfdId, makerTags, asciiString, printValue),
TagInfo(0x00ab, "VariProgram", "Vari program", nikon3IfdId, makerTags, asciiString, printValue),
// TagInfo(0x0e00, "PrintIM", "Print image matching", nikon3IfdId, makerTags, xxx, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownNikon3MnTag)", "Unknown Nikon3MakerNote tag", nikon3IfdId, makerTags, printValue) TagInfo(0xffff, "(UnknownNikon3MnTag)", "Unknown Nikon3MakerNote tag", nikon3IfdId, makerTags, invalidTypeId, printValue)
}; };
Nikon3MakerNote::Nikon3MakerNote(bool alloc) Nikon3MakerNote::Nikon3MakerNote(bool alloc)

@ -55,31 +55,31 @@ namespace Exiv2 {
// Sigma (Foveon) MakerNote Tag Info // Sigma (Foveon) MakerNote Tag Info
const TagInfo SigmaMakerNote::tagInfo_[] = { const TagInfo SigmaMakerNote::tagInfo_[] = {
TagInfo(0x0002, "SerialNumber", "Camera serial number", sigmaIfdId, makerTags, printValue), TagInfo(0x0002, "SerialNumber", "Camera serial number", sigmaIfdId, makerTags, asciiString, printValue),
TagInfo(0x0003, "DriveMode", "Drive Mode", sigmaIfdId, makerTags, printValue), TagInfo(0x0003, "DriveMode", "Drive Mode", sigmaIfdId, makerTags, asciiString, printValue),
TagInfo(0x0004, "ResolutionMode", "Resolution Mode", sigmaIfdId, makerTags, printValue), TagInfo(0x0004, "ResolutionMode", "Resolution Mode", sigmaIfdId, makerTags, asciiString, printValue),
TagInfo(0x0005, "AutofocusMode", "Autofocus mode", sigmaIfdId, makerTags, printValue), TagInfo(0x0005, "AutofocusMode", "Autofocus mode", sigmaIfdId, makerTags, asciiString, printValue),
TagInfo(0x0006, "FocusSetting", "Focus setting", sigmaIfdId, makerTags, printValue), TagInfo(0x0006, "FocusSetting", "Focus setting", sigmaIfdId, makerTags, asciiString, printValue),
TagInfo(0x0007, "WhiteBalance", "White balance", sigmaIfdId, makerTags, printValue), TagInfo(0x0007, "WhiteBalance", "White balance", sigmaIfdId, makerTags, asciiString, printValue),
TagInfo(0x0008, "ExposureMode", "Exposure mode", sigmaIfdId, makerTags, print0x0008), TagInfo(0x0008, "ExposureMode", "Exposure mode", sigmaIfdId, makerTags, asciiString, print0x0008),
TagInfo(0x0009, "MeteringMode", "Metering mode", sigmaIfdId, makerTags, print0x0009), TagInfo(0x0009, "MeteringMode", "Metering mode", sigmaIfdId, makerTags, asciiString, print0x0009),
TagInfo(0x000a, "LensRange", "Lens focal length range", sigmaIfdId, makerTags, printValue), TagInfo(0x000a, "LensRange", "Lens focal length range", sigmaIfdId, makerTags, asciiString, printValue),
TagInfo(0x000b, "ColorSpace", "Color space", sigmaIfdId, makerTags, printValue), TagInfo(0x000b, "ColorSpace", "Color space", sigmaIfdId, makerTags, asciiString, printValue),
TagInfo(0x000c, "Exposure", "Exposure", sigmaIfdId, makerTags, printStripLabel), TagInfo(0x000c, "Exposure", "Exposure", sigmaIfdId, makerTags, asciiString, printStripLabel),
TagInfo(0x000d, "Contrast", "Contrast", sigmaIfdId, makerTags, printStripLabel), TagInfo(0x000d, "Contrast", "Contrast", sigmaIfdId, makerTags, asciiString, printStripLabel),
TagInfo(0x000e, "Shadow", "Shadow", sigmaIfdId, makerTags, printStripLabel), TagInfo(0x000e, "Shadow", "Shadow", sigmaIfdId, makerTags, asciiString, printStripLabel),
TagInfo(0x000f, "Highlight", "Highlight", sigmaIfdId, makerTags, printStripLabel), TagInfo(0x000f, "Highlight", "Highlight", sigmaIfdId, makerTags, asciiString, printStripLabel),
TagInfo(0x0010, "Saturation", "Saturation", sigmaIfdId, makerTags, printStripLabel), TagInfo(0x0010, "Saturation", "Saturation", sigmaIfdId, makerTags, asciiString, printStripLabel),
TagInfo(0x0011, "Sharpness", "Sharpness", sigmaIfdId, makerTags, printStripLabel), TagInfo(0x0011, "Sharpness", "Sharpness", sigmaIfdId, makerTags, asciiString, printStripLabel),
TagInfo(0x0012, "FillLight", "X3 Fill light", sigmaIfdId, makerTags, printStripLabel), TagInfo(0x0012, "FillLight", "X3 Fill light", sigmaIfdId, makerTags, asciiString, printStripLabel),
TagInfo(0x0014, "ColorAdjustment", "Color adjustment", sigmaIfdId, makerTags, printStripLabel), TagInfo(0x0014, "ColorAdjustment", "Color adjustment", sigmaIfdId, makerTags, asciiString, printStripLabel),
TagInfo(0x0015, "AdjustmentMode", "Adjustment mode", sigmaIfdId, makerTags, printValue), TagInfo(0x0015, "AdjustmentMode", "Adjustment mode", sigmaIfdId, makerTags, asciiString, printValue),
TagInfo(0x0016, "Quality", "Quality", sigmaIfdId, makerTags, printStripLabel), TagInfo(0x0016, "Quality", "Quality", sigmaIfdId, makerTags, asciiString, printStripLabel),
TagInfo(0x0017, "Firmware", "Firmware", sigmaIfdId, makerTags, printValue), TagInfo(0x0017, "Firmware", "Firmware", sigmaIfdId, makerTags, asciiString, printValue),
TagInfo(0x0018, "Software", "Software", sigmaIfdId, makerTags, printValue), TagInfo(0x0018, "Software", "Software", sigmaIfdId, makerTags, asciiString, printValue),
TagInfo(0x0019, "AutoBracket", "Auto bracket", sigmaIfdId, makerTags, printValue), TagInfo(0x0019, "AutoBracket", "Auto bracket", sigmaIfdId, makerTags, asciiString, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownSigmaMakerNoteTag)", "Unknown SigmaMakerNote tag", sigmaIfdId, makerTags, printValue) TagInfo(0xffff, "(UnknownSigmaMakerNoteTag)", "Unknown SigmaMakerNote tag", sigmaIfdId, makerTags, invalidTypeId, printValue)
}; };
SigmaMakerNote::SigmaMakerNote(bool alloc) SigmaMakerNote::SigmaMakerNote(bool alloc)

@ -106,164 +106,165 @@ namespace Exiv2 {
const char* desc, const char* desc,
IfdId ifdId, IfdId ifdId,
SectionId sectionId, SectionId sectionId,
TypeId typeId,
PrintFct printFct PrintFct printFct
) )
: tag_(tag), name_(name), desc_(desc), ifdId_(ifdId), : tag_(tag), name_(name), desc_(desc), ifdId_(ifdId),
sectionId_(sectionId), printFct_(printFct) sectionId_(sectionId), typeId_(typeId), printFct_(printFct)
{ {
} }
// Base IFD Tags (IFD0 and IFD1) // Base IFD Tags (IFD0 and IFD1)
static const TagInfo ifdTagInfo[] = { static const TagInfo ifdTagInfo[] = {
TagInfo(0x0100, "ImageWidth", "Image width", ifd0Id, imgStruct, printValue), TagInfo(0x0100, "ImageWidth", "Image width", ifd0Id, imgStruct, unsignedLong, printValue),
TagInfo(0x0101, "ImageLength", "Image height", ifd0Id, imgStruct, printValue), TagInfo(0x0101, "ImageLength", "Image height", ifd0Id, imgStruct, unsignedLong, printValue),
TagInfo(0x0102, "BitsPerSample", "Number of bits per component", ifd0Id, imgStruct, printValue), TagInfo(0x0102, "BitsPerSample", "Number of bits per component", ifd0Id, imgStruct, unsignedShort, printValue),
TagInfo(0x0103, "Compression", "Compression scheme", ifd0Id, imgStruct, print0x0103), TagInfo(0x0103, "Compression", "Compression scheme", ifd0Id, imgStruct, unsignedShort, print0x0103),
TagInfo(0x0106, "PhotometricInterpretation", "Pixel composition", ifd0Id, imgStruct, print0x0106), TagInfo(0x0106, "PhotometricInterpretation", "Pixel composition", ifd0Id, imgStruct, unsignedShort, print0x0106),
TagInfo(0x010e, "ImageDescription", "Image title", ifd0Id, otherTags, printValue), TagInfo(0x010e, "ImageDescription", "Image title", ifd0Id, otherTags, asciiString, printValue),
TagInfo(0x010f, "Make", "Manufacturer of image input equipment", ifd0Id, otherTags, printValue), TagInfo(0x010f, "Make", "Manufacturer of image input equipment", ifd0Id, otherTags, asciiString, printValue),
TagInfo(0x0110, "Model", "Model of image input equipment", ifd0Id, otherTags, printValue), TagInfo(0x0110, "Model", "Model of image input equipment", ifd0Id, otherTags, asciiString, printValue),
TagInfo(0x0111, "StripOffsets", "Image data location", ifd0Id, recOffset, printValue), TagInfo(0x0111, "StripOffsets", "Image data location", ifd0Id, recOffset, unsignedLong, printValue),
TagInfo(0x0112, "Orientation", "Orientation of image", ifd0Id, imgStruct, print0x0112), TagInfo(0x0112, "Orientation", "Orientation of image", ifd0Id, imgStruct, unsignedShort, print0x0112),
TagInfo(0x0115, "SamplesPerPixel", "Number of components", ifd0Id, imgStruct, printValue), TagInfo(0x0115, "SamplesPerPixel", "Number of components", ifd0Id, imgStruct, unsignedShort, printValue),
TagInfo(0x0116, "RowsPerStrip", "Number of rows per strip", ifd0Id, recOffset, printValue), TagInfo(0x0116, "RowsPerStrip", "Number of rows per strip", ifd0Id, recOffset, unsignedLong, printValue),
TagInfo(0x0117, "StripByteCounts", "Bytes per compressed strip", ifd0Id, recOffset, printValue), TagInfo(0x0117, "StripByteCounts", "Bytes per compressed strip", ifd0Id, recOffset, unsignedLong, printValue),
TagInfo(0x011a, "XResolution", "Image resolution in width direction", ifd0Id, imgStruct, printLong), TagInfo(0x011a, "XResolution", "Image resolution in width direction", ifd0Id, imgStruct, unsignedRational, printLong),
TagInfo(0x011b, "YResolution", "Image resolution in height direction", ifd0Id, imgStruct, printLong), TagInfo(0x011b, "YResolution", "Image resolution in height direction", ifd0Id, imgStruct, unsignedRational, printLong),
TagInfo(0x011c, "PlanarConfiguration", "Image data arrangement", ifd0Id, imgStruct, printValue), TagInfo(0x011c, "PlanarConfiguration", "Image data arrangement", ifd0Id, imgStruct, unsignedShort, printValue),
TagInfo(0x0128, "ResolutionUnit", "Unit of X and Y resolution", ifd0Id, imgStruct, printUnit), TagInfo(0x0128, "ResolutionUnit", "Unit of X and Y resolution", ifd0Id, imgStruct, unsignedShort, printUnit),
TagInfo(0x012d, "TransferFunction", "Transfer function", ifd0Id, imgCharacter, printValue), TagInfo(0x012d, "TransferFunction", "Transfer function", ifd0Id, imgCharacter, unsignedShort, printValue),
TagInfo(0x0131, "Software", "Software used", ifd0Id, otherTags, printValue), TagInfo(0x0131, "Software", "Software used", ifd0Id, otherTags, asciiString, printValue),
TagInfo(0x0132, "DateTime", "File change date and time", ifd0Id, otherTags, printValue), TagInfo(0x0132, "DateTime", "File change date and time", ifd0Id, otherTags, asciiString, printValue),
TagInfo(0x013b, "Artist", "Person who created the image", ifd0Id, otherTags, printValue), TagInfo(0x013b, "Artist", "Person who created the image", ifd0Id, otherTags, asciiString, printValue),
TagInfo(0x013e, "WhitePoint", "White point chromaticity", ifd0Id, imgCharacter, printValue), TagInfo(0x013e, "WhitePoint", "White point chromaticity", ifd0Id, imgCharacter, unsignedRational, printValue),
TagInfo(0x013f, "PrimaryChromaticities", "Chromaticities of primaries", ifd0Id, imgCharacter, printValue), TagInfo(0x013f, "PrimaryChromaticities", "Chromaticities of primaries", ifd0Id, imgCharacter, unsignedRational, printValue),
TagInfo(0x0201, "JPEGInterchangeFormat", "Offset to JPEG SOI", ifd0Id, recOffset, printValue), TagInfo(0x0201, "JPEGInterchangeFormat", "Offset to JPEG SOI", ifd0Id, recOffset, unsignedLong, printValue),
TagInfo(0x0202, "JPEGInterchangeFormatLength", "Bytes of JPEG data", ifd0Id, recOffset, printValue), TagInfo(0x0202, "JPEGInterchangeFormatLength", "Bytes of JPEG data", ifd0Id, recOffset, unsignedLong, printValue),
TagInfo(0x0211, "YCbCrCoefficients", "Color space transformation matrix coefficients", ifd0Id, imgCharacter, printValue), TagInfo(0x0211, "YCbCrCoefficients", "Color space transformation matrix coefficients", ifd0Id, imgCharacter, unsignedRational, printValue),
TagInfo(0x0212, "YCbCrSubSampling", "Subsampling ratio of Y to C", ifd0Id, imgStruct, printValue), TagInfo(0x0212, "YCbCrSubSampling", "Subsampling ratio of Y to C", ifd0Id, imgStruct, unsignedShort, printValue),
TagInfo(0x0213, "YCbCrPositioning", "Y and C positioning", ifd0Id, imgStruct, print0x0213), TagInfo(0x0213, "YCbCrPositioning", "Y and C positioning", ifd0Id, imgStruct, unsignedShort, print0x0213),
TagInfo(0x0214, "ReferenceBlackWhite", "Pair of black and white reference values", ifd0Id, imgCharacter, printValue), TagInfo(0x0214, "ReferenceBlackWhite", "Pair of black and white reference values", ifd0Id, imgCharacter, unsignedRational, printValue),
TagInfo(0x8298, "Copyright", "Copyright holder", ifd0Id, otherTags, print0x8298), TagInfo(0x8298, "Copyright", "Copyright holder", ifd0Id, otherTags, asciiString, print0x8298),
TagInfo(0x8769, "ExifTag", "Exif IFD Pointer", ifd0Id, exifFormat, printValue), TagInfo(0x8769, "ExifTag", "Exif IFD Pointer", ifd0Id, exifFormat, unsignedLong, printValue),
TagInfo(0x8825, "GPSTag", "GPSInfo IFD Pointer", ifd0Id, exifFormat, printValue), TagInfo(0x8825, "GPSTag", "GPSInfo IFD Pointer", ifd0Id, exifFormat, unsignedLong, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownIfdTag)", "Unknown IFD tag", ifdIdNotSet, sectionIdNotSet, printValue) TagInfo(0xffff, "(UnknownIfdTag)", "Unknown IFD tag", ifdIdNotSet, sectionIdNotSet, invalidTypeId, printValue)
}; };
// Exif IFD Tags // Exif IFD Tags
static const TagInfo exifTagInfo[] = { static const TagInfo exifTagInfo[] = {
TagInfo(0x829a, "ExposureTime", "Exposure time", exifIfdId, captureCond, print0x829a), TagInfo(0x829a, "ExposureTime", "Exposure time", exifIfdId, captureCond, unsignedRational, print0x829a),
TagInfo(0x829d, "FNumber", "F number", exifIfdId, captureCond, print0x829d), TagInfo(0x829d, "FNumber", "F number", exifIfdId, captureCond, unsignedRational, print0x829d),
TagInfo(0x8822, "ExposureProgram", "Exposure program", exifIfdId, captureCond, print0x8822), TagInfo(0x8822, "ExposureProgram", "Exposure program", exifIfdId, captureCond, unsignedShort, print0x8822),
TagInfo(0x8824, "SpectralSensitivity", "Spectral sensitivity", exifIfdId, captureCond, printValue), TagInfo(0x8824, "SpectralSensitivity", "Spectral sensitivity", exifIfdId, captureCond, asciiString, printValue),
TagInfo(0x8827, "ISOSpeedRatings", "ISO speed ratings", exifIfdId, captureCond, print0x8827), TagInfo(0x8827, "ISOSpeedRatings", "ISO speed ratings", exifIfdId, captureCond, unsignedShort, print0x8827),
TagInfo(0x8828, "OECF", "Optoelectric coefficient", exifIfdId, captureCond, printValue), TagInfo(0x8828, "OECF", "Optoelectric coefficient", exifIfdId, captureCond, undefined, printValue),
TagInfo(0x9000, "ExifVersion", "Exif Version", exifIfdId, exifVersion, printValue), TagInfo(0x9000, "ExifVersion", "Exif Version", exifIfdId, exifVersion, undefined, printValue),
TagInfo(0x9003, "DateTimeOriginal", "Date and time original image was generated", exifIfdId, dateTime, printValue), TagInfo(0x9003, "DateTimeOriginal", "Date and time original image was generated", exifIfdId, dateTime, asciiString, printValue),
TagInfo(0x9004, "DateTimeDigitized", "Date and time image was made digital data", exifIfdId, dateTime, printValue), TagInfo(0x9004, "DateTimeDigitized", "Date and time image was made digital data", exifIfdId, dateTime, asciiString, printValue),
TagInfo(0x9101, "ComponentsConfiguration", "Meaning of each component", exifIfdId, imgConfig, print0x9101), TagInfo(0x9101, "ComponentsConfiguration", "Meaning of each component", exifIfdId, imgConfig, undefined, print0x9101),
TagInfo(0x9102, "CompressedBitsPerPixel", "Image compression mode", exifIfdId, imgConfig, printFloat), TagInfo(0x9102, "CompressedBitsPerPixel", "Image compression mode", exifIfdId, imgConfig, unsignedRational, printFloat),
TagInfo(0x9201, "ShutterSpeedValue", "Shutter speed", exifIfdId, captureCond, printFloat), TagInfo(0x9201, "ShutterSpeedValue", "Shutter speed", exifIfdId, captureCond, signedRational, printFloat),
TagInfo(0x9202, "ApertureValue", "Aperture", exifIfdId, captureCond, printFloat), TagInfo(0x9202, "ApertureValue", "Aperture", exifIfdId, captureCond, unsignedRational, printFloat),
TagInfo(0x9203, "BrightnessValue", "Brightness", exifIfdId, captureCond, printFloat), TagInfo(0x9203, "BrightnessValue", "Brightness", exifIfdId, captureCond, signedRational, printFloat),
TagInfo(0x9204, "ExposureBiasValue", "Exposure bias", exifIfdId, captureCond, print0x9204), TagInfo(0x9204, "ExposureBiasValue", "Exposure bias", exifIfdId, captureCond, signedRational, print0x9204),
TagInfo(0x9205, "MaxApertureValue", "Maximum lens aperture", exifIfdId, captureCond, printFloat), TagInfo(0x9205, "MaxApertureValue", "Maximum lens aperture", exifIfdId, captureCond, unsignedRational, printFloat),
TagInfo(0x9206, "SubjectDistance", "Subject distance", exifIfdId, captureCond, print0x9206), TagInfo(0x9206, "SubjectDistance", "Subject distance", exifIfdId, captureCond, unsignedRational, print0x9206),
TagInfo(0x9207, "MeteringMode", "Metering mode", exifIfdId, captureCond, print0x9207), TagInfo(0x9207, "MeteringMode", "Metering mode", exifIfdId, captureCond, unsignedShort, print0x9207),
TagInfo(0x9208, "LightSource", "Light source", exifIfdId, captureCond, print0x9208), TagInfo(0x9208, "LightSource", "Light source", exifIfdId, captureCond, unsignedShort, print0x9208),
TagInfo(0x9209, "Flash", "Flash", exifIfdId, captureCond, print0x9209), TagInfo(0x9209, "Flash", "Flash", exifIfdId, captureCond, unsignedShort, print0x9209),
TagInfo(0x920a, "FocalLength", "Lens focal length", exifIfdId, captureCond, print0x920a), TagInfo(0x920a, "FocalLength", "Lens focal length", exifIfdId, captureCond, unsignedRational, print0x920a),
TagInfo(0x9214, "SubjectArea", "Subject area", exifIfdId, captureCond, printValue), TagInfo(0x9214, "SubjectArea", "Subject area", exifIfdId, captureCond, unsignedShort, printValue),
TagInfo(0x927c, "MakerNote", "Manufacturer notes", exifIfdId, userInfo, printValue), TagInfo(0x927c, "MakerNote", "Manufacturer notes", exifIfdId, userInfo, undefined, printValue),
TagInfo(0x9286, "UserComment", "User comments", exifIfdId, userInfo, print0x9286), TagInfo(0x9286, "UserComment", "User comments", exifIfdId, userInfo, comment, print0x9286),
TagInfo(0x9290, "SubSecTime", "DateTime subseconds", exifIfdId, dateTime, printValue), TagInfo(0x9290, "SubSecTime", "DateTime subseconds", exifIfdId, dateTime, asciiString, printValue),
TagInfo(0x9291, "SubSecTimeOriginal", "DateTimeOriginal subseconds", exifIfdId, dateTime, printValue), TagInfo(0x9291, "SubSecTimeOriginal", "DateTimeOriginal subseconds", exifIfdId, dateTime, asciiString, printValue),
TagInfo(0x9292, "SubSecTimeDigitized", "DateTimeDigitized subseconds", exifIfdId, dateTime, printValue), TagInfo(0x9292, "SubSecTimeDigitized", "DateTimeDigitized subseconds", exifIfdId, dateTime, asciiString, printValue),
TagInfo(0xa000, "FlashpixVersion", "Supported Flashpix version", exifIfdId, exifVersion, printValue), TagInfo(0xa000, "FlashpixVersion", "Supported Flashpix version", exifIfdId, exifVersion, undefined, printValue),
TagInfo(0xa001, "ColorSpace", "Color space information", exifIfdId, imgCharacter, print0xa001), TagInfo(0xa001, "ColorSpace", "Color space information", exifIfdId, imgCharacter, unsignedShort, print0xa001),
TagInfo(0xa002, "PixelXDimension", "Valid image width", exifIfdId, imgConfig, printValue), TagInfo(0xa002, "PixelXDimension", "Valid image width", exifIfdId, imgConfig, unsignedLong, printValue),
TagInfo(0xa003, "PixelYDimension", "Valid image height", exifIfdId, imgConfig, printValue), TagInfo(0xa003, "PixelYDimension", "Valid image height", exifIfdId, imgConfig, unsignedLong, printValue),
TagInfo(0xa004, "RelatedSoundFile", "Related audio file", exifIfdId, relatedFile, printValue), TagInfo(0xa004, "RelatedSoundFile", "Related audio file", exifIfdId, relatedFile, asciiString, printValue),
TagInfo(0xa005, "InteroperabilityTag", "Interoperability IFD Pointer", exifIfdId, exifFormat, printValue), TagInfo(0xa005, "InteroperabilityTag", "Interoperability IFD Pointer", exifIfdId, exifFormat, unsignedLong, printValue),
TagInfo(0xa20b, "FlashEnergy", "Flash energy", exifIfdId, captureCond, printValue), TagInfo(0xa20b, "FlashEnergy", "Flash energy", exifIfdId, captureCond, unsignedRational, printValue),
TagInfo(0xa20c, "SpatialFrequencyResponse", "Spatial frequency response", exifIfdId, captureCond, printValue), TagInfo(0xa20c, "SpatialFrequencyResponse", "Spatial frequency response", exifIfdId, captureCond, undefined, printValue),
TagInfo(0xa20e, "FocalPlaneXResolution", "Focal plane X resolution", exifIfdId, captureCond, printFloat), TagInfo(0xa20e, "FocalPlaneXResolution", "Focal plane X resolution", exifIfdId, captureCond, unsignedRational, printFloat),
TagInfo(0xa20f, "FocalPlaneYResolution", "Focal plane Y resolution", exifIfdId, captureCond, printFloat), TagInfo(0xa20f, "FocalPlaneYResolution", "Focal plane Y resolution", exifIfdId, captureCond, unsignedRational, printFloat),
TagInfo(0xa210, "FocalPlaneResolutionUnit", "Focal plane resolution unit", exifIfdId, captureCond, printUnit), TagInfo(0xa210, "FocalPlaneResolutionUnit", "Focal plane resolution unit", exifIfdId, captureCond, unsignedShort, printUnit),
TagInfo(0xa214, "SubjectLocation", "Subject location", exifIfdId, captureCond, printValue), TagInfo(0xa214, "SubjectLocation", "Subject location", exifIfdId, captureCond, unsignedShort, printValue),
TagInfo(0xa215, "ExposureIndex", "Exposure index", exifIfdId, captureCond, printValue), TagInfo(0xa215, "ExposureIndex", "Exposure index", exifIfdId, captureCond, unsignedRational, printValue),
TagInfo(0xa217, "SensingMethod", "Sensing method", exifIfdId, captureCond, print0xa217), TagInfo(0xa217, "SensingMethod", "Sensing method", exifIfdId, captureCond, unsignedShort, print0xa217),
TagInfo(0xa300, "FileSource", "File source", exifIfdId, captureCond, print0xa300), TagInfo(0xa300, "FileSource", "File source", exifIfdId, captureCond, undefined, print0xa300),
TagInfo(0xa301, "SceneType", "Scene type", exifIfdId, captureCond, print0xa301), TagInfo(0xa301, "SceneType", "Scene type", exifIfdId, captureCond, undefined, print0xa301),
TagInfo(0xa302, "CFAPattern", "CFA pattern", exifIfdId, captureCond, printValue), TagInfo(0xa302, "CFAPattern", "CFA pattern", exifIfdId, captureCond, undefined, printValue),
TagInfo(0xa401, "CustomRendered", "Custom image processing", exifIfdId, captureCond, printValue), TagInfo(0xa401, "CustomRendered", "Custom image processing", exifIfdId, captureCond, unsignedShort, printValue),
TagInfo(0xa402, "ExposureMode", "Exposure mode", exifIfdId, captureCond, print0xa402), TagInfo(0xa402, "ExposureMode", "Exposure mode", exifIfdId, captureCond, unsignedShort, print0xa402),
TagInfo(0xa403, "WhiteBalance", "White balance", exifIfdId, captureCond, print0xa403), TagInfo(0xa403, "WhiteBalance", "White balance", exifIfdId, captureCond, unsignedShort, print0xa403),
TagInfo(0xa404, "DigitalZoomRatio", "Digital zoom ratio", exifIfdId, captureCond, print0xa404), TagInfo(0xa404, "DigitalZoomRatio", "Digital zoom ratio", exifIfdId, captureCond, unsignedRational, print0xa404),
TagInfo(0xa405, "FocalLengthIn35mmFilm", "Focal length in 35 mm film", exifIfdId, captureCond, print0xa405), TagInfo(0xa405, "FocalLengthIn35mmFilm", "Focal length in 35 mm film", exifIfdId, captureCond, unsignedShort, print0xa405),
TagInfo(0xa406, "SceneCaptureType", "Scene capture type", exifIfdId, captureCond, print0xa406), TagInfo(0xa406, "SceneCaptureType", "Scene capture type", exifIfdId, captureCond, unsignedShort, print0xa406),
TagInfo(0xa407, "GainControl", "Gain control", exifIfdId, captureCond, print0xa407), TagInfo(0xa407, "GainControl", "Gain control", exifIfdId, captureCond, unsignedRational, print0xa407),
TagInfo(0xa408, "Contrast", "Contrast", exifIfdId, captureCond, print0xa408), TagInfo(0xa408, "Contrast", "Contrast", exifIfdId, captureCond, unsignedShort, print0xa408),
TagInfo(0xa409, "Saturation", "Saturation", exifIfdId, captureCond, print0xa409), TagInfo(0xa409, "Saturation", "Saturation", exifIfdId, captureCond, unsignedShort, print0xa409),
TagInfo(0xa40a, "Sharpness", "Sharpness", exifIfdId, captureCond, print0xa40a), TagInfo(0xa40a, "Sharpness", "Sharpness", exifIfdId, captureCond, unsignedShort, print0xa40a),
TagInfo(0xa40b, "DeviceSettingDescription", "Device settings description", exifIfdId, captureCond, printValue), TagInfo(0xa40b, "DeviceSettingDescription", "Device settings description", exifIfdId, captureCond, undefined, printValue),
TagInfo(0xa40c, "SubjectDistanceRange", "Subject distance range", exifIfdId, captureCond, print0xa40c), TagInfo(0xa40c, "SubjectDistanceRange", "Subject distance range", exifIfdId, captureCond, unsignedShort, print0xa40c),
TagInfo(0xa420, "ImageUniqueID", "Unique image ID", exifIfdId, otherTags, printValue), TagInfo(0xa420, "ImageUniqueID", "Unique image ID", exifIfdId, otherTags, asciiString, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownExifTag)", "Unknown Exif tag", ifdIdNotSet, sectionIdNotSet, printValue) TagInfo(0xffff, "(UnknownExifTag)", "Unknown Exif tag", ifdIdNotSet, sectionIdNotSet, invalidTypeId, printValue)
}; };
// GPS Info Tags // GPS Info Tags
static const TagInfo gpsTagInfo[] = { static const TagInfo gpsTagInfo[] = {
TagInfo(0x0000, "GPSVersionID", "GPS tag version", gpsIfdId, gpsTags, printValue), TagInfo(0x0000, "GPSVersionID", "GPS tag version", gpsIfdId, gpsTags, unsignedByte, printValue),
TagInfo(0x0001, "GPSLatitudeRef", "North or South Latitude", gpsIfdId, gpsTags, printValue), TagInfo(0x0001, "GPSLatitudeRef", "North or South Latitude", gpsIfdId, gpsTags, asciiString, printValue),
TagInfo(0x0002, "GPSLatitude", "Latitude", gpsIfdId, gpsTags, printValue), TagInfo(0x0002, "GPSLatitude", "Latitude", gpsIfdId, gpsTags, unsignedRational, printValue),
TagInfo(0x0003, "GPSLongitudeRef", "East or West Longitude", gpsIfdId, gpsTags, printValue), TagInfo(0x0003, "GPSLongitudeRef", "East or West Longitude", gpsIfdId, gpsTags, asciiString, printValue),
TagInfo(0x0004, "GPSLongitude", "Longitude", gpsIfdId, gpsTags, printValue), TagInfo(0x0004, "GPSLongitude", "Longitude", gpsIfdId, gpsTags, unsignedRational, printValue),
TagInfo(0x0005, "GPSAltitudeRef", "Altitude reference", gpsIfdId, gpsTags, printValue), TagInfo(0x0005, "GPSAltitudeRef", "Altitude reference", gpsIfdId, gpsTags, unsignedByte, printValue),
TagInfo(0x0006, "GPSAltitude", "Altitude", gpsIfdId, gpsTags, printValue), TagInfo(0x0006, "GPSAltitude", "Altitude", gpsIfdId, gpsTags, unsignedRational, printValue),
TagInfo(0x0007, "GPSTimeStamp", "GPS time (atomic clock)", gpsIfdId, gpsTags, printValue), TagInfo(0x0007, "GPSTimeStamp", "GPS time (atomic clock)", gpsIfdId, gpsTags, unsignedRational, printValue),
TagInfo(0x0008, "GPSSatellites", "GPS satellites used for measurement", gpsIfdId, gpsTags, printValue), TagInfo(0x0008, "GPSSatellites", "GPS satellites used for measurement", gpsIfdId, gpsTags, asciiString, printValue),
TagInfo(0x0009, "GPSStatus", "GPS receiver status", gpsIfdId, gpsTags, printValue), TagInfo(0x0009, "GPSStatus", "GPS receiver status", gpsIfdId, gpsTags, asciiString, printValue),
TagInfo(0x000a, "GPSMeasureMode", "GPS measurement mode", gpsIfdId, gpsTags, printValue), TagInfo(0x000a, "GPSMeasureMode", "GPS measurement mode", gpsIfdId, gpsTags, asciiString, printValue),
TagInfo(0x000b, "GPSDOP", "Measurement precision", gpsIfdId, gpsTags, printValue), TagInfo(0x000b, "GPSDOP", "Measurement precision", gpsIfdId, gpsTags, unsignedRational, printValue),
TagInfo(0x000c, "GPSSpeedRef", "Speed unit", gpsIfdId, gpsTags, printValue), TagInfo(0x000c, "GPSSpeedRef", "Speed unit", gpsIfdId, gpsTags, asciiString, printValue),
TagInfo(0x000d, "GPSSpeed", "Speed of GPS receiver", gpsIfdId, gpsTags, printValue), TagInfo(0x000d, "GPSSpeed", "Speed of GPS receiver", gpsIfdId, gpsTags, unsignedRational, printValue),
TagInfo(0x000e, "GPSTrackRef", "Reference for direction of movement", gpsIfdId, gpsTags, printValue), TagInfo(0x000e, "GPSTrackRef", "Reference for direction of movement", gpsIfdId, gpsTags, asciiString, printValue),
TagInfo(0x000f, "GPSTrack", "Direction of movement", gpsIfdId, gpsTags, printValue), TagInfo(0x000f, "GPSTrack", "Direction of movement", gpsIfdId, gpsTags, unsignedRational, printValue),
TagInfo(0x0010, "GPSImgDirectionRef", "Reference for direction of image", gpsIfdId, gpsTags, printValue), TagInfo(0x0010, "GPSImgDirectionRef", "Reference for direction of image", gpsIfdId, gpsTags, asciiString, printValue),
TagInfo(0x0011, "GPSImgDirection", "Direction of image", gpsIfdId, gpsTags, printValue), TagInfo(0x0011, "GPSImgDirection", "Direction of image", gpsIfdId, gpsTags, unsignedRational, printValue),
TagInfo(0x0012, "GPSMapDatum", "Geodetic survey data used", gpsIfdId, gpsTags, printValue), TagInfo(0x0012, "GPSMapDatum", "Geodetic survey data used", gpsIfdId, gpsTags, asciiString, printValue),
TagInfo(0x0013, "GPSDestLatitudeRef", "Reference for latitude of destination", gpsIfdId, gpsTags, printValue), TagInfo(0x0013, "GPSDestLatitudeRef", "Reference for latitude of destination", gpsIfdId, gpsTags, asciiString, printValue),
TagInfo(0x0014, "GPSDestLatitude", "Latitude of destination", gpsIfdId, gpsTags, printValue), TagInfo(0x0014, "GPSDestLatitude", "Latitude of destination", gpsIfdId, gpsTags, unsignedRational, printValue),
TagInfo(0x0015, "GPSDestLongitudeRef", "Reference for longitude of destination", gpsIfdId, gpsTags, printValue), TagInfo(0x0015, "GPSDestLongitudeRef", "Reference for longitude of destination", gpsIfdId, gpsTags, asciiString, printValue),
TagInfo(0x0016, "GPSDestLongitude", "Longitude of destination", gpsIfdId, gpsTags, printValue), TagInfo(0x0016, "GPSDestLongitude", "Longitude of destination", gpsIfdId, gpsTags, unsignedRational, printValue),
TagInfo(0x0017, "GPSDestBearingRef", "Reference for bearing of destination", gpsIfdId, gpsTags, printValue), TagInfo(0x0017, "GPSDestBearingRef", "Reference for bearing of destination", gpsIfdId, gpsTags, asciiString, printValue),
TagInfo(0x0018, "GPSDestBearing", "Bearing of destination", gpsIfdId, gpsTags, printValue), TagInfo(0x0018, "GPSDestBearing", "Bearing of destination", gpsIfdId, gpsTags, unsignedRational, printValue),
TagInfo(0x0019, "GPSDestDistanceRef", "Reference for distance to destination", gpsIfdId, gpsTags, printValue), TagInfo(0x0019, "GPSDestDistanceRef", "Reference for distance to destination", gpsIfdId, gpsTags, asciiString, printValue),
TagInfo(0x001a, "GPSDestDistance", "Distance to destination", gpsIfdId, gpsTags, printValue), TagInfo(0x001a, "GPSDestDistance", "Distance to destination", gpsIfdId, gpsTags, unsignedRational, printValue),
TagInfo(0x001b, "GPSProcessingMethod", "Name of GPS processing method", gpsIfdId, gpsTags, printValue), TagInfo(0x001b, "GPSProcessingMethod", "Name of GPS processing method", gpsIfdId, gpsTags, undefined, printValue),
TagInfo(0x001c, "GPSAreaInformation", "Name of GPS area", gpsIfdId, gpsTags, printValue), TagInfo(0x001c, "GPSAreaInformation", "Name of GPS area", gpsIfdId, gpsTags, undefined, printValue),
TagInfo(0x001d, "GPSDateStamp", "GPS date", gpsIfdId, gpsTags, printValue), TagInfo(0x001d, "GPSDateStamp", "GPS date", gpsIfdId, gpsTags, asciiString, printValue),
TagInfo(0x001e, "GPSDifferential", "GPS differential correction", gpsIfdId, gpsTags, printValue), TagInfo(0x001e, "GPSDifferential", "GPS differential correction", gpsIfdId, gpsTags, unsignedShort, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownGpsTag)", "Unknown GPSInfo tag", ifdIdNotSet, sectionIdNotSet, printValue) TagInfo(0xffff, "(UnknownGpsTag)", "Unknown GPSInfo tag", ifdIdNotSet, sectionIdNotSet, invalidTypeId, printValue)
}; };
// Exif Interoperability IFD Tags // Exif Interoperability IFD Tags
static const TagInfo iopTagInfo[] = { static const TagInfo iopTagInfo[] = {
TagInfo(0x0001, "InteroperabilityIndex", "Interoperability Identification", iopIfdId, iopTags, printValue), TagInfo(0x0001, "InteroperabilityIndex", "Interoperability Identification", iopIfdId, iopTags, asciiString, printValue),
TagInfo(0x0002, "InteroperabilityVersion", "Interoperability version", iopIfdId, iopTags, printValue), TagInfo(0x0002, "InteroperabilityVersion", "Interoperability version", iopIfdId, iopTags, undefined, printValue),
TagInfo(0x1000, "RelatedImageFileFormat", "File format of image file", iopIfdId, iopTags, printValue), TagInfo(0x1000, "RelatedImageFileFormat", "File format of image file", iopIfdId, iopTags, asciiString, printValue),
TagInfo(0x1001, "RelatedImageWidth", "Image width", iopIfdId, iopTags, printValue), TagInfo(0x1001, "RelatedImageWidth", "Image width", iopIfdId, iopTags, unsignedLong, printValue),
TagInfo(0x1002, "RelatedImageLength", "Image height", iopIfdId, iopTags, printValue), TagInfo(0x1002, "RelatedImageLength", "Image height", iopIfdId, iopTags, unsignedLong, printValue),
// End of list marker // End of list marker
TagInfo(0xffff, "(UnknownIopTag)", "Unknown Exif Interoperability tag", ifdIdNotSet, sectionIdNotSet, printValue) TagInfo(0xffff, "(UnknownIopTag)", "Unknown Exif Interoperability tag", ifdIdNotSet, sectionIdNotSet, invalidTypeId, printValue)
}; };
// Unknown Tag // Unknown Tag
static const TagInfo unknownTag(0xffff, "Unknown tag", "Unknown tag", ifdIdNotSet, sectionIdNotSet, printValue); static const TagInfo unknownTag(0xffff, "Unknown tag", "Unknown tag", ifdIdNotSet, sectionIdNotSet, asciiString, printValue);
// Tag lookup lists with tag names, desc and where they (preferably) belong to; // Tag lookup lists with tag names, desc and where they (preferably) belong to;
// this is an array with pointers to one list per IFD. The IfdId is used as the // this is an array with pointers to one list per IFD. The IfdId is used as the
@ -419,9 +420,6 @@ namespace Exiv2 {
} }
} }
if (isMakerIfd(ifdId)) { if (isMakerIfd(ifdId)) {
const TagInfo* tagInfo = makerTagInfo(tagName, ifdId); const TagInfo* tagInfo = makerTagInfo(tagName, ifdId);
if (tagInfo != 0) tag = tagInfo->tag_; if (tagInfo != 0) tag = tagInfo->tag_;
} }
@ -468,6 +466,19 @@ namespace Exiv2 {
return SectionId(i); return SectionId(i);
} }
TypeId ExifTags::tagType(uint16_t tag, IfdId ifdId)
{
if (isExifIfd(ifdId)) {
int idx = tagInfoIdx(tag, ifdId);
if (idx != -1) return tagInfos_[ifdId][idx].typeId_;
}
if (isMakerIfd(ifdId)) {
const TagInfo* tagInfo = makerTagInfo(tag, ifdId);
if (tagInfo != 0) return tagInfo->typeId_;
}
return unknownTag.typeId_;
}
std::ostream& ExifTags::printTag(std::ostream& os, std::ostream& ExifTags::printTag(std::ostream& os,
uint16_t tag, uint16_t tag,
IfdId ifdId, IfdId ifdId,
@ -659,6 +670,8 @@ namespace Exiv2 {
<< std::right << std::hex << ti.tag_ << ", " << std::right << std::hex << ti.tag_ << ", "
<< ExifTags::ifdName(ti.ifdId_) << ", " << ExifTags::ifdName(ti.ifdId_) << ", "
<< exifKey.key() << ", " << exifKey.key() << ", "
<< TypeInfo::typeName(
ExifTags::tagType(ti.tag_, ti.ifdId_)) << ", "
<< ExifTags::tagDesc(ti.tag_, ti.ifdId_); << ExifTags::tagDesc(ti.tag_, ti.ifdId_);
} }

@ -97,6 +97,7 @@ namespace Exiv2 {
const char* desc, const char* desc,
IfdId ifdId, IfdId ifdId,
SectionId sectionId, SectionId sectionId,
TypeId typeId,
PrintFct printFct PrintFct printFct
); );
uint16_t tag_; //!< Tag uint16_t tag_; //!< Tag
@ -104,6 +105,7 @@ namespace Exiv2 {
const char* desc_; //!< Short tag description const char* desc_; //!< Short tag description
IfdId ifdId_; //!< Link to the (prefered) IFD IfdId ifdId_; //!< Link to the (prefered) IFD
SectionId sectionId_; //!< Section id SectionId sectionId_; //!< Section id
TypeId typeId_; //!< Type id
PrintFct printFct_; //!< Pointer to tag print function PrintFct printFct_; //!< Pointer to tag print function
}; // struct TagInfo }; // struct TagInfo
@ -177,6 +179,8 @@ namespace Exiv2 {
static const char* sectionDesc(uint16_t tag, IfdId ifdId); static const char* sectionDesc(uint16_t tag, IfdId ifdId);
//! Return the section id for a section name //! Return the section id for a section name
static SectionId sectionId(const std::string& sectionName); static SectionId sectionId(const std::string& sectionName);
//! Return the type for tag and IFD id
static TypeId tagType(uint16_t tag, IfdId ifdId);
//! Interpret and print the value of an Exif tag //! Interpret and print the value of an Exif tag
static std::ostream& printTag(std::ostream& os, static std::ostream& printTag(std::ostream& os,
uint16_t tag, uint16_t tag,
@ -190,7 +194,6 @@ namespace Exiv2 {
static void registerBaseTagInfo(IfdId ifdId); static void registerBaseTagInfo(IfdId ifdId);
//! Register an %IfdId and %TagInfo list for a makernote //! Register an %IfdId and %TagInfo list for a makernote
static void registerMakerTagInfo(IfdId ifdId, const TagInfo* tagInfo); static void registerMakerTagInfo(IfdId ifdId, const TagInfo* tagInfo);
/*! /*!
@brief Return true if \em ifdId is an %Ifd Id which is registered @brief Return true if \em ifdId is an %Ifd Id which is registered
as a makernote %Ifd id. Note: Calling this function with as a makernote %Ifd id. Note: Calling this function with

@ -109,13 +109,13 @@ try {
std::cout <<"\n----- One IOP tag\n"; std::cout <<"\n----- One IOP tag\n";
Exiv2::ExifData ed3; Exiv2::ExifData ed3;
ed3["Exif.Iop.InteroperabilityVersion"] = "Test 3"; ed3["Exif.Iop.InteroperabilityIndex"] = "Test 3";
write(file, ed3); write(file, ed3);
print(file); print(file);
std::cout <<"\n----- One GPS tag\n"; std::cout <<"\n----- One GPS tag\n";
Exiv2::ExifData ed4; Exiv2::ExifData ed4;
ed4["Exif.GPSInfo.GPSVersionID"] = "Test 4"; ed4["Exif.GPSInfo.GPSVersionID"] = "19 20";
write(file, ed4); write(file, ed4);
print(file); print(file);
@ -127,7 +127,7 @@ try {
std::cout <<"\n----- One IOP and one IFD1 tag\n"; std::cout <<"\n----- One IOP and one IFD1 tag\n";
Exiv2::ExifData ed6; Exiv2::ExifData ed6;
ed6["Exif.Iop.InteroperabilityVersion"] = "Test 6 Iop tag"; ed6["Exif.Iop.InteroperabilityIndex"] = "Test 6 Iop tag";
ed6["Exif.Thumbnail.Artist"] = "Test 6 Ifd1 tag"; ed6["Exif.Thumbnail.Artist"] = "Test 6 Ifd1 tag";
write(file, ed6); write(file, ed6);
print(file); print(file);

@ -285,7 +285,7 @@ Exif.Iop.InteroperabilityVersion 0x0002 Iop Undefined 4
Exif.Iop.RelatedImageWidth 0x1001 Iop Short 1 2272 Exif.Iop.RelatedImageWidth 0x1001 Iop Short 1 2272
Exif.Iop.RelatedImageLength 0x1002 Iop Short 1 1704 Exif.Iop.RelatedImageLength 0x1002 Iop Short 1 1704
Exif.Thumbnail.Compression 0x0103 IFD1 Short 1 6 Exif.Thumbnail.Compression 0x0103 IFD1 Short 1 6
Exif.Thumbnail.Orientation 0x0112 IFD1 Ascii 10 2 3 4 5 6 Exif.Thumbnail.Orientation 0x0112 IFD1 Short 5 2 3 4 5 6
Exif.Thumbnail.XResolution 0x011a IFD1 Rational 1 180/1 Exif.Thumbnail.XResolution 0x011a IFD1 Rational 1 180/1
Exif.Thumbnail.YResolution 0x011b IFD1 Rational 1 180/1 Exif.Thumbnail.YResolution 0x011b IFD1 Rational 1 180/1
Exif.Thumbnail.ResolutionUnit 0x0128 IFD1 Short 1 2 Exif.Thumbnail.ResolutionUnit 0x0128 IFD1 Short 1 2
@ -621,7 +621,7 @@ Exif.Nikon3.VariProgram 0x00ab Makernote Ascii 16
Exif.Iop.InteroperabilityIndex 0x0001 Iop Ascii 5 1234 Exif.Iop.InteroperabilityIndex 0x0001 Iop Ascii 5 1234
Exif.Iop.InteroperabilityVersion 0x0002 Iop Undefined 4 48 49 48 48 Exif.Iop.InteroperabilityVersion 0x0002 Iop Undefined 4 48 49 48 48
Exif.Thumbnail.Compression 0x0103 IFD1 Short 1 6 Exif.Thumbnail.Compression 0x0103 IFD1 Short 1 6
Exif.Thumbnail.Orientation 0x0112 IFD1 Ascii 10 2 3 4 5 6 Exif.Thumbnail.Orientation 0x0112 IFD1 Short 5 2 3 4 5 6
Exif.Thumbnail.XResolution 0x011a IFD1 Rational 1 300/1 Exif.Thumbnail.XResolution 0x011a IFD1 Rational 1 300/1
Exif.Thumbnail.YResolution 0x011b IFD1 Rational 1 300/1 Exif.Thumbnail.YResolution 0x011b IFD1 Rational 1 300/1
Exif.Thumbnail.ResolutionUnit 0x0128 IFD1 Short 1 2 Exif.Thumbnail.ResolutionUnit 0x0128 IFD1 Short 1 2

@ -461,7 +461,7 @@ File 3/9: 20000506_020544.jpg
0x0085 Makernote FocusDistance Unknown 0x0085 Makernote FocusDistance Unknown
0x0086 Makernote DigitalZoom 1.0x 0x0086 Makernote DigitalZoom 1.0x
0x0088 Makernote AFFocusPos Left 0x0088 Makernote AFFocusPos Left
0x0010 Makernote 0x0010 1 45 0 128 1 76 0 0 0 0 255 1 0 0 0 0 2 74 42 160 0 0 0 0 2 183 0 0 31 8 0 0 21 202 0 0 33 124 0 0 33 124 0 0 31 6 13 132 0 74 0 0 0 0 9 181 9 74 8 109 7 54 208 1 11 122 0 0 0 0 45 33 21 0 0 0 32 0 0 0 0 0 0 0 0 0 68 27 0 0 74 3 23 207 9 30 59 31 0 71 0 0 19 21 18 18 21 24 0 0 100 0 25 76 0 0 0 1 255 240 101 68 0 0 0 2 0 0 0 0 15 3 194 141 1 13 18 34 0 0 81 90 0 246 1 43 48 32 18 7 40 16 78 72 11 122 0 0 117 252 235 98 11 16 6 6 0 100 0 216 18 52 67 33 0x0010 Makernote DataDump 1 45 0 128 1 76 0 0 0 0 255 1 0 0 0 0 2 74 42 160 0 0 0 0 2 183 0 0 31 8 0 0 21 202 0 0 33 124 0 0 33 124 0 0 31 6 13 132 0 74 0 0 0 0 9 181 9 74 8 109 7 54 208 1 11 122 0 0 0 0 45 33 21 0 0 0 32 0 0 0 0 0 0 0 0 0 68 27 0 0 74 3 23 207 9 30 59 31 0 71 0 0 19 21 18 18 21 24 0 0 100 0 25 76 0 0 0 1 255 240 101 68 0 0 0 2 0 0 0 0 15 3 194 141 1 13 18 34 0 0 81 90 0 246 1 43 48 32 18 7 40 16 78 72 11 122 0 0 117 252 235 98 11 16 6 6 0 100 0 216 18 52 67 33
0x0001 Iop InteroperabilityIndex R98 0x0001 Iop InteroperabilityIndex R98
0x0002 Iop InteroperabilityVersion 48 49 48 48 0x0002 Iop InteroperabilityVersion 48 49 48 48
0x0103 IFD1 Compression JPEG 0x0103 IFD1 Compression JPEG

@ -48,11 +48,11 @@ Exif.Nikon3.Quality 0x0004 Makernote Ascii 28
----- One IOP tag ----- One IOP tag
Exif.Image.ExifTag 0x8769 IFD0 Long 1 26 Exif.Image.ExifTag 0x8769 IFD0 Long 1 26
Exif.Photo.InteroperabilityTag 0xa005 Exif Long 1 44 Exif.Photo.InteroperabilityTag 0xa005 Exif Long 1 44
Exif.Iop.InteroperabilityVersion 0x0002 Iop Ascii 7 Test 3 Exif.Iop.InteroperabilityIndex 0x0001 Iop Ascii 7 Test 3
----- One GPS tag ----- One GPS tag
Exif.Image.GPSTag 0x8825 IFD0 Long 1 26 Exif.Image.GPSTag 0x8825 IFD0 Long 1 26
Exif.GPSInfo.GPSVersionID 0x0000 GPSInfo Ascii 7 Test 4 Exif.GPSInfo.GPSVersionID 0x0000 GPSInfo Byte 2 19 20
----- One IFD1 tag ----- One IFD1 tag
Exif.Thumbnail.Artist 0x013b IFD1 Ascii 7 Test 5 Exif.Thumbnail.Artist 0x013b IFD1 Ascii 7 Test 5
@ -60,7 +60,7 @@ Exif.Thumbnail.Artist 0x013b IFD1 Ascii 7
----- One IOP and one IFD1 tag ----- One IOP and one IFD1 tag
Exif.Image.ExifTag 0x8769 IFD0 Long 1 26 Exif.Image.ExifTag 0x8769 IFD0 Long 1 26
Exif.Photo.InteroperabilityTag 0xa005 Exif Long 1 44 Exif.Photo.InteroperabilityTag 0xa005 Exif Long 1 44
Exif.Iop.InteroperabilityVersion 0x0002 Iop Ascii 15 Test 6 Iop tag Exif.Iop.InteroperabilityIndex 0x0001 Iop Ascii 15 Test 6 Iop tag
Exif.Thumbnail.Artist 0x013b IFD1 Ascii 16 Test 6 Ifd1 tag Exif.Thumbnail.Artist 0x013b IFD1 Ascii 16 Test 6 Ifd1 tag
----- One IFD0 and one IFD1 tag ----- One IFD0 and one IFD1 tag

Loading…
Cancel
Save