<!DOCTYPE html> <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>PIL.TiffTags — Pillow (PIL Fork) 5.4.1 documentation</title> <script type="text/javascript" src="../../_static/js/modernizr.min.js"></script> <script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script> <script type="text/javascript" src="../../_static/jquery.js"></script> <script type="text/javascript" src="../../_static/underscore.js"></script> <script type="text/javascript" src="../../_static/doctools.js"></script> <script type="text/javascript" src="../../_static/language_data.js"></script> <script type="text/javascript" src="../../_static/js/script.js"></script> <script type="text/javascript" src="../../_static/js/theme.js"></script> <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> <link rel="author" title="About these documents" href="../../about.html" /> <link rel="index" title="Index" href="../../genindex.html" /> <link rel="search" title="Search" href="../../search.html" /> </head> <body class="wy-body-for-nav"> <div class="wy-grid-for-nav"> <nav data-toggle="wy-nav-shift" class="wy-nav-side"> <div class="wy-side-scroll"> <div class="wy-side-nav-search" > <a href="../../index.html" class="icon icon-home"> Pillow (PIL Fork) </a> <div class="version"> 5.4.1 </div> <div role="search"> <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> <input type="text" name="q" placeholder="Search docs" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> </div> <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> <ul> <li class="toctree-l1"><a class="reference internal" href="../../installation.html">Installation</a></li> <li class="toctree-l1"><a class="reference internal" href="../../handbook/index.html">Handbook</a></li> <li class="toctree-l1"><a class="reference internal" href="../../reference/index.html">Reference</a></li> <li class="toctree-l1"><a class="reference internal" href="../../porting.html">Porting</a></li> <li class="toctree-l1"><a class="reference internal" href="../../about.html">About</a></li> <li class="toctree-l1"><a class="reference internal" href="../../releasenotes/index.html">Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="../../deprecations.html">Deprecations and removals</a></li> </ul> </div> </div> </nav> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <nav class="wy-nav-top" aria-label="top navigation"> <i data-toggle="wy-nav-top" class="fa fa-bars"></i> <a href="../../index.html">Pillow (PIL Fork)</a> </nav> <div class="wy-nav-content"> <div class="rst-content"> <div role="navigation" aria-label="breadcrumbs navigation"> <ul class="wy-breadcrumbs"> <li><a href="../../index.html">Docs</a> »</li> <li><a href="../index.html">Module code</a> »</li> <li>PIL.TiffTags</li> <li class="wy-breadcrumbs-aside"> </li> </ul> <hr/> </div> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div itemprop="articleBody"> <h1>Source code for PIL.TiffTags</h1><div class="highlight"><pre> <span></span><span class="c1">#</span> <span class="c1"># The Python Imaging Library.</span> <span class="c1"># $Id$</span> <span class="c1">#</span> <span class="c1"># TIFF tags</span> <span class="c1">#</span> <span class="c1"># This module provides clear-text names for various well-known</span> <span class="c1"># TIFF tags. the TIFF codec works just fine without it.</span> <span class="c1">#</span> <span class="c1"># Copyright (c) Secret Labs AB 1999.</span> <span class="c1">#</span> <span class="c1"># See the README file for information on usage and redistribution.</span> <span class="c1">#</span> <span class="c1">##</span> <span class="c1"># This module provides constants and clear-text names for various</span> <span class="c1"># well-known TIFF tags.</span> <span class="c1">##</span> <span class="kn">from</span> <span class="nn">collections</span> <span class="k">import</span> <span class="n">namedtuple</span> <div class="viewcode-block" id="TagInfo"><a class="viewcode-back" href="../../reference/TiffTags.html#PIL.TiffTags.TagInfo">[docs]</a><span class="k">class</span> <span class="nc">TagInfo</span><span class="p">(</span><span class="n">namedtuple</span><span class="p">(</span><span class="s2">"_TagInfo"</span><span class="p">,</span> <span class="s2">"value name type length enum"</span><span class="p">)):</span> <span class="vm">__slots__</span> <span class="o">=</span> <span class="p">[]</span> <span class="k">def</span> <span class="nf">__new__</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">value</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">"unknown"</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">length</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">enum</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> <span class="k">return</span> <span class="nb">super</span><span class="p">(</span><span class="n">TagInfo</span><span class="p">,</span> <span class="bp">cls</span><span class="p">)</span><span class="o">.</span><span class="fm">__new__</span><span class="p">(</span> <span class="bp">cls</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="nb">type</span><span class="p">,</span> <span class="n">length</span><span class="p">,</span> <span class="n">enum</span> <span class="ow">or</span> <span class="p">{})</span> <div class="viewcode-block" id="TagInfo.cvt_enum"><a class="viewcode-back" href="../../reference/TiffTags.html#PIL.TiffTags.TagInfo.cvt_enum">[docs]</a> <span class="k">def</span> <span class="nf">cvt_enum</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span> <span class="c1"># Using get will call hash(value), which can be expensive</span> <span class="c1"># for some types (e.g. Fraction). Since self.enum is rarely</span> <span class="c1"># used, it's usually better to test it first.</span> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">enum</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">enum</span> <span class="k">else</span> <span class="n">value</span></div></div> <div class="viewcode-block" id="lookup"><a class="viewcode-back" href="../../reference/TiffTags.html#PIL.TiffTags.lookup">[docs]</a><span class="k">def</span> <span class="nf">lookup</span><span class="p">(</span><span class="n">tag</span><span class="p">):</span> <span class="sd">"""</span> <span class="sd"> :param tag: Integer tag number</span> <span class="sd"> :returns: Taginfo namedtuple, From the TAGS_V2 info if possible,</span> <span class="sd"> otherwise just populating the value and name from TAGS.</span> <span class="sd"> If the tag is not recognized, "unknown" is returned for the name</span> <span class="sd"> """</span> <span class="k">return</span> <span class="n">TAGS_V2</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">tag</span><span class="p">,</span> <span class="n">TagInfo</span><span class="p">(</span><span class="n">tag</span><span class="p">,</span> <span class="n">TAGS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">tag</span><span class="p">,</span> <span class="s1">'unknown'</span><span class="p">)))</span></div> <span class="c1">##</span> <span class="c1"># Map tag numbers to tag info.</span> <span class="c1">#</span> <span class="c1"># id: (Name, Type, Length, enum_values)</span> <span class="c1">#</span> <span class="c1"># The length here differs from the length in the tiff spec. For</span> <span class="c1"># numbers, the tiff spec is for the number of fields returned. We</span> <span class="c1"># agree here. For string-like types, the tiff spec uses the length of</span> <span class="c1"># field in bytes. In Pillow, we are using the number of expected</span> <span class="c1"># fields, in general 1 for string-like types.</span> <span class="n">BYTE</span> <span class="o">=</span> <span class="mi">1</span> <span class="n">ASCII</span> <span class="o">=</span> <span class="mi">2</span> <span class="n">SHORT</span> <span class="o">=</span> <span class="mi">3</span> <span class="n">LONG</span> <span class="o">=</span> <span class="mi">4</span> <span class="n">RATIONAL</span> <span class="o">=</span> <span class="mi">5</span> <span class="n">SIGNED_BYTE</span> <span class="o">=</span> <span class="mi">6</span> <span class="n">UNDEFINED</span> <span class="o">=</span> <span class="mi">7</span> <span class="n">SIGNED_SHORT</span> <span class="o">=</span> <span class="mi">8</span> <span class="n">SIGNED_LONG</span> <span class="o">=</span> <span class="mi">9</span> <span class="n">SIGNED_RATIONAL</span> <span class="o">=</span> <span class="mi">10</span> <span class="n">FLOAT</span> <span class="o">=</span> <span class="mi">11</span> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="mi">12</span> <span class="n">TAGS_V2</span> <span class="o">=</span> <span class="p">{</span> <span class="mi">254</span><span class="p">:</span> <span class="p">(</span><span class="s2">"NewSubfileType"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">255</span><span class="p">:</span> <span class="p">(</span><span class="s2">"SubfileType"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">256</span><span class="p">:</span> <span class="p">(</span><span class="s2">"ImageWidth"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">257</span><span class="p">:</span> <span class="p">(</span><span class="s2">"ImageLength"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">258</span><span class="p">:</span> <span class="p">(</span><span class="s2">"BitsPerSample"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="mi">259</span><span class="p">:</span> <span class="p">(</span><span class="s2">"Compression"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="p">{</span><span class="s2">"Uncompressed"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s2">"CCITT 1d"</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span> <span class="s2">"Group 3 Fax"</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="s2">"Group 4 Fax"</span><span class="p">:</span> <span class="mi">4</span><span class="p">,</span> <span class="s2">"LZW"</span><span class="p">:</span> <span class="mi">5</span><span class="p">,</span> <span class="s2">"JPEG"</span><span class="p">:</span> <span class="mi">6</span><span class="p">,</span> <span class="s2">"PackBits"</span><span class="p">:</span> <span class="mi">32773</span><span class="p">}),</span> <span class="mi">262</span><span class="p">:</span> <span class="p">(</span><span class="s2">"PhotometricInterpretation"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="p">{</span><span class="s2">"WhiteIsZero"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="s2">"BlackIsZero"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s2">"RGB"</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span> <span class="s2">"RGB Palette"</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="s2">"Transparency Mask"</span><span class="p">:</span> <span class="mi">4</span><span class="p">,</span> <span class="s2">"CMYK"</span><span class="p">:</span> <span class="mi">5</span><span class="p">,</span> <span class="s2">"YCbCr"</span><span class="p">:</span> <span class="mi">6</span><span class="p">,</span> <span class="s2">"CieLAB"</span><span class="p">:</span> <span class="mi">8</span><span class="p">,</span> <span class="s2">"CFA"</span><span class="p">:</span> <span class="mi">32803</span><span class="p">,</span> <span class="c1"># TIFF/EP, Adobe DNG</span> <span class="s2">"LinearRaw"</span><span class="p">:</span> <span class="mi">32892</span><span class="p">}),</span> <span class="c1"># Adobe DNG</span> <span class="mi">263</span><span class="p">:</span> <span class="p">(</span><span class="s2">"Threshholding"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">264</span><span class="p">:</span> <span class="p">(</span><span class="s2">"CellWidth"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">265</span><span class="p">:</span> <span class="p">(</span><span class="s2">"CellLength"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">266</span><span class="p">:</span> <span class="p">(</span><span class="s2">"FillOrder"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">269</span><span class="p">:</span> <span class="p">(</span><span class="s2">"DocumentName"</span><span class="p">,</span> <span class="n">ASCII</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">270</span><span class="p">:</span> <span class="p">(</span><span class="s2">"ImageDescription"</span><span class="p">,</span> <span class="n">ASCII</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">271</span><span class="p">:</span> <span class="p">(</span><span class="s2">"Make"</span><span class="p">,</span> <span class="n">ASCII</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">272</span><span class="p">:</span> <span class="p">(</span><span class="s2">"Model"</span><span class="p">,</span> <span class="n">ASCII</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">273</span><span class="p">:</span> <span class="p">(</span><span class="s2">"StripOffsets"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="mi">274</span><span class="p">:</span> <span class="p">(</span><span class="s2">"Orientation"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">277</span><span class="p">:</span> <span class="p">(</span><span class="s2">"SamplesPerPixel"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">278</span><span class="p">:</span> <span class="p">(</span><span class="s2">"RowsPerStrip"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">279</span><span class="p">:</span> <span class="p">(</span><span class="s2">"StripByteCounts"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="mi">280</span><span class="p">:</span> <span class="p">(</span><span class="s2">"MinSampleValue"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="mi">281</span><span class="p">:</span> <span class="p">(</span><span class="s2">"MaxSampleValue"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="mi">282</span><span class="p">:</span> <span class="p">(</span><span class="s2">"XResolution"</span><span class="p">,</span> <span class="n">RATIONAL</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">283</span><span class="p">:</span> <span class="p">(</span><span class="s2">"YResolution"</span><span class="p">,</span> <span class="n">RATIONAL</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">284</span><span class="p">:</span> <span class="p">(</span><span class="s2">"PlanarConfiguration"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="p">{</span><span class="s2">"Contiguous"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s2">"Separate"</span><span class="p">:</span> <span class="mi">2</span><span class="p">}),</span> <span class="mi">285</span><span class="p">:</span> <span class="p">(</span><span class="s2">"PageName"</span><span class="p">,</span> <span class="n">ASCII</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">286</span><span class="p">:</span> <span class="p">(</span><span class="s2">"XPosition"</span><span class="p">,</span> <span class="n">RATIONAL</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">287</span><span class="p">:</span> <span class="p">(</span><span class="s2">"YPosition"</span><span class="p">,</span> <span class="n">RATIONAL</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">288</span><span class="p">:</span> <span class="p">(</span><span class="s2">"FreeOffsets"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">289</span><span class="p">:</span> <span class="p">(</span><span class="s2">"FreeByteCounts"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">290</span><span class="p">:</span> <span class="p">(</span><span class="s2">"GrayResponseUnit"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">291</span><span class="p">:</span> <span class="p">(</span><span class="s2">"GrayResponseCurve"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="mi">292</span><span class="p">:</span> <span class="p">(</span><span class="s2">"T4Options"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">293</span><span class="p">:</span> <span class="p">(</span><span class="s2">"T6Options"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">296</span><span class="p">:</span> <span class="p">(</span><span class="s2">"ResolutionUnit"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="p">{</span><span class="s2">"none"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s2">"inch"</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span> <span class="s2">"cm"</span><span class="p">:</span> <span class="mi">3</span><span class="p">}),</span> <span class="mi">297</span><span class="p">:</span> <span class="p">(</span><span class="s2">"PageNumber"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="mi">301</span><span class="p">:</span> <span class="p">(</span><span class="s2">"TransferFunction"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="mi">305</span><span class="p">:</span> <span class="p">(</span><span class="s2">"Software"</span><span class="p">,</span> <span class="n">ASCII</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">306</span><span class="p">:</span> <span class="p">(</span><span class="s2">"DateTime"</span><span class="p">,</span> <span class="n">ASCII</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">315</span><span class="p">:</span> <span class="p">(</span><span class="s2">"Artist"</span><span class="p">,</span> <span class="n">ASCII</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">316</span><span class="p">:</span> <span class="p">(</span><span class="s2">"HostComputer"</span><span class="p">,</span> <span class="n">ASCII</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">317</span><span class="p">:</span> <span class="p">(</span><span class="s2">"Predictor"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="p">{</span><span class="s2">"none"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s2">"Horizontal Differencing"</span><span class="p">:</span> <span class="mi">2</span><span class="p">}),</span> <span class="mi">318</span><span class="p">:</span> <span class="p">(</span><span class="s2">"WhitePoint"</span><span class="p">,</span> <span class="n">RATIONAL</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="mi">319</span><span class="p">:</span> <span class="p">(</span><span class="s2">"PrimaryChromaticities"</span><span class="p">,</span> <span class="n">RATIONAL</span><span class="p">,</span> <span class="mi">6</span><span class="p">),</span> <span class="mi">320</span><span class="p">:</span> <span class="p">(</span><span class="s2">"ColorMap"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="mi">321</span><span class="p">:</span> <span class="p">(</span><span class="s2">"HalftoneHints"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="mi">322</span><span class="p">:</span> <span class="p">(</span><span class="s2">"TileWidth"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">323</span><span class="p">:</span> <span class="p">(</span><span class="s2">"TileLength"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">324</span><span class="p">:</span> <span class="p">(</span><span class="s2">"TileOffsets"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="mi">325</span><span class="p">:</span> <span class="p">(</span><span class="s2">"TileByteCounts"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="mi">332</span><span class="p">:</span> <span class="p">(</span><span class="s2">"InkSet"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">333</span><span class="p">:</span> <span class="p">(</span><span class="s2">"InkNames"</span><span class="p">,</span> <span class="n">ASCII</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">334</span><span class="p">:</span> <span class="p">(</span><span class="s2">"NumberOfInks"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">336</span><span class="p">:</span> <span class="p">(</span><span class="s2">"DotRange"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="mi">337</span><span class="p">:</span> <span class="p">(</span><span class="s2">"TargetPrinter"</span><span class="p">,</span> <span class="n">ASCII</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">338</span><span class="p">:</span> <span class="p">(</span><span class="s2">"ExtraSamples"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="mi">339</span><span class="p">:</span> <span class="p">(</span><span class="s2">"SampleFormat"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="mi">340</span><span class="p">:</span> <span class="p">(</span><span class="s2">"SMinSampleValue"</span><span class="p">,</span> <span class="n">DOUBLE</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="mi">341</span><span class="p">:</span> <span class="p">(</span><span class="s2">"SMaxSampleValue"</span><span class="p">,</span> <span class="n">DOUBLE</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="mi">342</span><span class="p">:</span> <span class="p">(</span><span class="s2">"TransferRange"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">6</span><span class="p">),</span> <span class="mi">347</span><span class="p">:</span> <span class="p">(</span><span class="s2">"JPEGTables"</span><span class="p">,</span> <span class="n">UNDEFINED</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="c1"># obsolete JPEG tags</span> <span class="mi">512</span><span class="p">:</span> <span class="p">(</span><span class="s2">"JPEGProc"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">513</span><span class="p">:</span> <span class="p">(</span><span class="s2">"JPEGInterchangeFormat"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">514</span><span class="p">:</span> <span class="p">(</span><span class="s2">"JPEGInterchangeFormatLength"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">515</span><span class="p">:</span> <span class="p">(</span><span class="s2">"JPEGRestartInterval"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">517</span><span class="p">:</span> <span class="p">(</span><span class="s2">"JPEGLosslessPredictors"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="mi">518</span><span class="p">:</span> <span class="p">(</span><span class="s2">"JPEGPointTransforms"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="mi">519</span><span class="p">:</span> <span class="p">(</span><span class="s2">"JPEGQTables"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="mi">520</span><span class="p">:</span> <span class="p">(</span><span class="s2">"JPEGDCTables"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="mi">521</span><span class="p">:</span> <span class="p">(</span><span class="s2">"JPEGACTables"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="mi">529</span><span class="p">:</span> <span class="p">(</span><span class="s2">"YCbCrCoefficients"</span><span class="p">,</span> <span class="n">RATIONAL</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="mi">530</span><span class="p">:</span> <span class="p">(</span><span class="s2">"YCbCrSubSampling"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="mi">531</span><span class="p">:</span> <span class="p">(</span><span class="s2">"YCbCrPositioning"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">532</span><span class="p">:</span> <span class="p">(</span><span class="s2">"ReferenceBlackWhite"</span><span class="p">,</span> <span class="n">RATIONAL</span><span class="p">,</span> <span class="mi">6</span><span class="p">),</span> <span class="mi">700</span><span class="p">:</span> <span class="p">(</span><span class="s1">'XMP'</span><span class="p">,</span> <span class="n">BYTE</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">33432</span><span class="p">:</span> <span class="p">(</span><span class="s2">"Copyright"</span><span class="p">,</span> <span class="n">ASCII</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">34377</span><span class="p">:</span> <span class="p">(</span><span class="s1">'PhotoshopInfo'</span><span class="p">,</span> <span class="n">BYTE</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="c1"># FIXME add more tags here</span> <span class="mi">34665</span><span class="p">:</span> <span class="p">(</span><span class="s2">"ExifIFD"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">34675</span><span class="p">:</span> <span class="p">(</span><span class="s1">'ICCProfile'</span><span class="p">,</span> <span class="n">UNDEFINED</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">34853</span><span class="p">:</span> <span class="p">(</span><span class="s1">'GPSInfoIFD'</span><span class="p">,</span> <span class="n">BYTE</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="c1"># MPInfo</span> <span class="mi">45056</span><span class="p">:</span> <span class="p">(</span><span class="s2">"MPFVersion"</span><span class="p">,</span> <span class="n">UNDEFINED</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">45057</span><span class="p">:</span> <span class="p">(</span><span class="s2">"NumberOfImages"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">45058</span><span class="p">:</span> <span class="p">(</span><span class="s2">"MPEntry"</span><span class="p">,</span> <span class="n">UNDEFINED</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">45059</span><span class="p">:</span> <span class="p">(</span><span class="s2">"ImageUIDList"</span><span class="p">,</span> <span class="n">UNDEFINED</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="c1"># UNDONE, check</span> <span class="mi">45060</span><span class="p">:</span> <span class="p">(</span><span class="s2">"TotalFrames"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">45313</span><span class="p">:</span> <span class="p">(</span><span class="s2">"MPIndividualNum"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">45569</span><span class="p">:</span> <span class="p">(</span><span class="s2">"PanOrientation"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">45570</span><span class="p">:</span> <span class="p">(</span><span class="s2">"PanOverlap_H"</span><span class="p">,</span> <span class="n">RATIONAL</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">45571</span><span class="p">:</span> <span class="p">(</span><span class="s2">"PanOverlap_V"</span><span class="p">,</span> <span class="n">RATIONAL</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">45572</span><span class="p">:</span> <span class="p">(</span><span class="s2">"BaseViewpointNum"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">45573</span><span class="p">:</span> <span class="p">(</span><span class="s2">"ConvergenceAngle"</span><span class="p">,</span> <span class="n">SIGNED_RATIONAL</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">45574</span><span class="p">:</span> <span class="p">(</span><span class="s2">"BaselineLength"</span><span class="p">,</span> <span class="n">RATIONAL</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">45575</span><span class="p">:</span> <span class="p">(</span><span class="s2">"VerticalDivergence"</span><span class="p">,</span> <span class="n">SIGNED_RATIONAL</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">45576</span><span class="p">:</span> <span class="p">(</span><span class="s2">"AxisDistance_X"</span><span class="p">,</span> <span class="n">SIGNED_RATIONAL</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">45577</span><span class="p">:</span> <span class="p">(</span><span class="s2">"AxisDistance_Y"</span><span class="p">,</span> <span class="n">SIGNED_RATIONAL</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">45578</span><span class="p">:</span> <span class="p">(</span><span class="s2">"AxisDistance_Z"</span><span class="p">,</span> <span class="n">SIGNED_RATIONAL</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">45579</span><span class="p">:</span> <span class="p">(</span><span class="s2">"YawAngle"</span><span class="p">,</span> <span class="n">SIGNED_RATIONAL</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">45580</span><span class="p">:</span> <span class="p">(</span><span class="s2">"PitchAngle"</span><span class="p">,</span> <span class="n">SIGNED_RATIONAL</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">45581</span><span class="p">:</span> <span class="p">(</span><span class="s2">"RollAngle"</span><span class="p">,</span> <span class="n">SIGNED_RATIONAL</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">50741</span><span class="p">:</span> <span class="p">(</span><span class="s2">"MakerNoteSafety"</span><span class="p">,</span> <span class="n">SHORT</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="p">{</span><span class="s2">"Unsafe"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="s2">"Safe"</span><span class="p">:</span> <span class="mi">1</span><span class="p">}),</span> <span class="mi">50780</span><span class="p">:</span> <span class="p">(</span><span class="s2">"BestQualityScale"</span><span class="p">,</span> <span class="n">RATIONAL</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">50838</span><span class="p">:</span> <span class="p">(</span><span class="s2">"ImageJMetaDataByteCounts"</span><span class="p">,</span> <span class="n">LONG</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="c1"># Can be more than one</span> <span class="mi">50839</span><span class="p">:</span> <span class="p">(</span><span class="s2">"ImageJMetaData"</span><span class="p">,</span> <span class="n">UNDEFINED</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> <span class="c1"># see Issue #2006</span> <span class="p">}</span> <span class="c1"># Legacy Tags structure</span> <span class="c1"># these tags aren't included above, but were in the previous versions</span> <span class="n">TAGS</span> <span class="o">=</span> <span class="p">{</span><span class="mi">347</span><span class="p">:</span> <span class="s1">'JPEGTables'</span><span class="p">,</span> <span class="mi">700</span><span class="p">:</span> <span class="s1">'XMP'</span><span class="p">,</span> <span class="c1"># Additional Exif Info</span> <span class="mi">32932</span><span class="p">:</span> <span class="s1">'Wang Annotation'</span><span class="p">,</span> <span class="mi">33434</span><span class="p">:</span> <span class="s1">'ExposureTime'</span><span class="p">,</span> <span class="mi">33437</span><span class="p">:</span> <span class="s1">'FNumber'</span><span class="p">,</span> <span class="mi">33445</span><span class="p">:</span> <span class="s1">'MD FileTag'</span><span class="p">,</span> <span class="mi">33446</span><span class="p">:</span> <span class="s1">'MD ScalePixel'</span><span class="p">,</span> <span class="mi">33447</span><span class="p">:</span> <span class="s1">'MD ColorTable'</span><span class="p">,</span> <span class="mi">33448</span><span class="p">:</span> <span class="s1">'MD LabName'</span><span class="p">,</span> <span class="mi">33449</span><span class="p">:</span> <span class="s1">'MD SampleInfo'</span><span class="p">,</span> <span class="mi">33450</span><span class="p">:</span> <span class="s1">'MD PrepDate'</span><span class="p">,</span> <span class="mi">33451</span><span class="p">:</span> <span class="s1">'MD PrepTime'</span><span class="p">,</span> <span class="mi">33452</span><span class="p">:</span> <span class="s1">'MD FileUnits'</span><span class="p">,</span> <span class="mi">33550</span><span class="p">:</span> <span class="s1">'ModelPixelScaleTag'</span><span class="p">,</span> <span class="mi">33723</span><span class="p">:</span> <span class="s1">'IptcNaaInfo'</span><span class="p">,</span> <span class="mi">33918</span><span class="p">:</span> <span class="s1">'INGR Packet Data Tag'</span><span class="p">,</span> <span class="mi">33919</span><span class="p">:</span> <span class="s1">'INGR Flag Registers'</span><span class="p">,</span> <span class="mi">33920</span><span class="p">:</span> <span class="s1">'IrasB Transformation Matrix'</span><span class="p">,</span> <span class="mi">33922</span><span class="p">:</span> <span class="s1">'ModelTiepointTag'</span><span class="p">,</span> <span class="mi">34264</span><span class="p">:</span> <span class="s1">'ModelTransformationTag'</span><span class="p">,</span> <span class="mi">34377</span><span class="p">:</span> <span class="s1">'PhotoshopInfo'</span><span class="p">,</span> <span class="mi">34735</span><span class="p">:</span> <span class="s1">'GeoKeyDirectoryTag'</span><span class="p">,</span> <span class="mi">34736</span><span class="p">:</span> <span class="s1">'GeoDoubleParamsTag'</span><span class="p">,</span> <span class="mi">34737</span><span class="p">:</span> <span class="s1">'GeoAsciiParamsTag'</span><span class="p">,</span> <span class="mi">34850</span><span class="p">:</span> <span class="s1">'ExposureProgram'</span><span class="p">,</span> <span class="mi">34852</span><span class="p">:</span> <span class="s1">'SpectralSensitivity'</span><span class="p">,</span> <span class="mi">34855</span><span class="p">:</span> <span class="s1">'ISOSpeedRatings'</span><span class="p">,</span> <span class="mi">34856</span><span class="p">:</span> <span class="s1">'OECF'</span><span class="p">,</span> <span class="mi">34864</span><span class="p">:</span> <span class="s1">'SensitivityType'</span><span class="p">,</span> <span class="mi">34865</span><span class="p">:</span> <span class="s1">'StandardOutputSensitivity'</span><span class="p">,</span> <span class="mi">34866</span><span class="p">:</span> <span class="s1">'RecommendedExposureIndex'</span><span class="p">,</span> <span class="mi">34867</span><span class="p">:</span> <span class="s1">'ISOSpeed'</span><span class="p">,</span> <span class="mi">34868</span><span class="p">:</span> <span class="s1">'ISOSpeedLatitudeyyy'</span><span class="p">,</span> <span class="mi">34869</span><span class="p">:</span> <span class="s1">'ISOSpeedLatitudezzz'</span><span class="p">,</span> <span class="mi">34908</span><span class="p">:</span> <span class="s1">'HylaFAX FaxRecvParams'</span><span class="p">,</span> <span class="mi">34909</span><span class="p">:</span> <span class="s1">'HylaFAX FaxSubAddress'</span><span class="p">,</span> <span class="mi">34910</span><span class="p">:</span> <span class="s1">'HylaFAX FaxRecvTime'</span><span class="p">,</span> <span class="mi">36864</span><span class="p">:</span> <span class="s1">'ExifVersion'</span><span class="p">,</span> <span class="mi">36867</span><span class="p">:</span> <span class="s1">'DateTimeOriginal'</span><span class="p">,</span> <span class="mi">36868</span><span class="p">:</span> <span class="s1">'DateTImeDigitized'</span><span class="p">,</span> <span class="mi">37121</span><span class="p">:</span> <span class="s1">'ComponentsConfiguration'</span><span class="p">,</span> <span class="mi">37122</span><span class="p">:</span> <span class="s1">'CompressedBitsPerPixel'</span><span class="p">,</span> <span class="mi">37724</span><span class="p">:</span> <span class="s1">'ImageSourceData'</span><span class="p">,</span> <span class="mi">37377</span><span class="p">:</span> <span class="s1">'ShutterSpeedValue'</span><span class="p">,</span> <span class="mi">37378</span><span class="p">:</span> <span class="s1">'ApertureValue'</span><span class="p">,</span> <span class="mi">37379</span><span class="p">:</span> <span class="s1">'BrightnessValue'</span><span class="p">,</span> <span class="mi">37380</span><span class="p">:</span> <span class="s1">'ExposureBiasValue'</span><span class="p">,</span> <span class="mi">37381</span><span class="p">:</span> <span class="s1">'MaxApertureValue'</span><span class="p">,</span> <span class="mi">37382</span><span class="p">:</span> <span class="s1">'SubjectDistance'</span><span class="p">,</span> <span class="mi">37383</span><span class="p">:</span> <span class="s1">'MeteringMode'</span><span class="p">,</span> <span class="mi">37384</span><span class="p">:</span> <span class="s1">'LightSource'</span><span class="p">,</span> <span class="mi">37385</span><span class="p">:</span> <span class="s1">'Flash'</span><span class="p">,</span> <span class="mi">37386</span><span class="p">:</span> <span class="s1">'FocalLength'</span><span class="p">,</span> <span class="mi">37396</span><span class="p">:</span> <span class="s1">'SubjectArea'</span><span class="p">,</span> <span class="mi">37500</span><span class="p">:</span> <span class="s1">'MakerNote'</span><span class="p">,</span> <span class="mi">37510</span><span class="p">:</span> <span class="s1">'UserComment'</span><span class="p">,</span> <span class="mi">37520</span><span class="p">:</span> <span class="s1">'SubSec'</span><span class="p">,</span> <span class="mi">37521</span><span class="p">:</span> <span class="s1">'SubSecTimeOriginal'</span><span class="p">,</span> <span class="mi">37522</span><span class="p">:</span> <span class="s1">'SubsecTimeDigitized'</span><span class="p">,</span> <span class="mi">40960</span><span class="p">:</span> <span class="s1">'FlashPixVersion'</span><span class="p">,</span> <span class="mi">40961</span><span class="p">:</span> <span class="s1">'ColorSpace'</span><span class="p">,</span> <span class="mi">40962</span><span class="p">:</span> <span class="s1">'PixelXDimension'</span><span class="p">,</span> <span class="mi">40963</span><span class="p">:</span> <span class="s1">'PixelYDimension'</span><span class="p">,</span> <span class="mi">40964</span><span class="p">:</span> <span class="s1">'RelatedSoundFile'</span><span class="p">,</span> <span class="mi">40965</span><span class="p">:</span> <span class="s1">'InteroperabilityIFD'</span><span class="p">,</span> <span class="mi">41483</span><span class="p">:</span> <span class="s1">'FlashEnergy'</span><span class="p">,</span> <span class="mi">41484</span><span class="p">:</span> <span class="s1">'SpatialFrequencyResponse'</span><span class="p">,</span> <span class="mi">41486</span><span class="p">:</span> <span class="s1">'FocalPlaneXResolution'</span><span class="p">,</span> <span class="mi">41487</span><span class="p">:</span> <span class="s1">'FocalPlaneYResolution'</span><span class="p">,</span> <span class="mi">41488</span><span class="p">:</span> <span class="s1">'FocalPlaneResolutionUnit'</span><span class="p">,</span> <span class="mi">41492</span><span class="p">:</span> <span class="s1">'SubjectLocation'</span><span class="p">,</span> <span class="mi">41493</span><span class="p">:</span> <span class="s1">'ExposureIndex'</span><span class="p">,</span> <span class="mi">41495</span><span class="p">:</span> <span class="s1">'SensingMethod'</span><span class="p">,</span> <span class="mi">41728</span><span class="p">:</span> <span class="s1">'FileSource'</span><span class="p">,</span> <span class="mi">41729</span><span class="p">:</span> <span class="s1">'SceneType'</span><span class="p">,</span> <span class="mi">41730</span><span class="p">:</span> <span class="s1">'CFAPattern'</span><span class="p">,</span> <span class="mi">41985</span><span class="p">:</span> <span class="s1">'CustomRendered'</span><span class="p">,</span> <span class="mi">41986</span><span class="p">:</span> <span class="s1">'ExposureMode'</span><span class="p">,</span> <span class="mi">41987</span><span class="p">:</span> <span class="s1">'WhiteBalance'</span><span class="p">,</span> <span class="mi">41988</span><span class="p">:</span> <span class="s1">'DigitalZoomRatio'</span><span class="p">,</span> <span class="mi">41989</span><span class="p">:</span> <span class="s1">'FocalLengthIn35mmFilm'</span><span class="p">,</span> <span class="mi">41990</span><span class="p">:</span> <span class="s1">'SceneCaptureType'</span><span class="p">,</span> <span class="mi">41991</span><span class="p">:</span> <span class="s1">'GainControl'</span><span class="p">,</span> <span class="mi">41992</span><span class="p">:</span> <span class="s1">'Contrast'</span><span class="p">,</span> <span class="mi">41993</span><span class="p">:</span> <span class="s1">'Saturation'</span><span class="p">,</span> <span class="mi">41994</span><span class="p">:</span> <span class="s1">'Sharpness'</span><span class="p">,</span> <span class="mi">41995</span><span class="p">:</span> <span class="s1">'DeviceSettingDescription'</span><span class="p">,</span> <span class="mi">41996</span><span class="p">:</span> <span class="s1">'SubjectDistanceRange'</span><span class="p">,</span> <span class="mi">42016</span><span class="p">:</span> <span class="s1">'ImageUniqueID'</span><span class="p">,</span> <span class="mi">42032</span><span class="p">:</span> <span class="s1">'CameraOwnerName'</span><span class="p">,</span> <span class="mi">42033</span><span class="p">:</span> <span class="s1">'BodySerialNumber'</span><span class="p">,</span> <span class="mi">42034</span><span class="p">:</span> <span class="s1">'LensSpecification'</span><span class="p">,</span> <span class="mi">42035</span><span class="p">:</span> <span class="s1">'LensMake'</span><span class="p">,</span> <span class="mi">42036</span><span class="p">:</span> <span class="s1">'LensModel'</span><span class="p">,</span> <span class="mi">42037</span><span class="p">:</span> <span class="s1">'LensSerialNumber'</span><span class="p">,</span> <span class="mi">42112</span><span class="p">:</span> <span class="s1">'GDAL_METADATA'</span><span class="p">,</span> <span class="mi">42113</span><span class="p">:</span> <span class="s1">'GDAL_NODATA'</span><span class="p">,</span> <span class="mi">42240</span><span class="p">:</span> <span class="s1">'Gamma'</span><span class="p">,</span> <span class="mi">50215</span><span class="p">:</span> <span class="s1">'Oce Scanjob Description'</span><span class="p">,</span> <span class="mi">50216</span><span class="p">:</span> <span class="s1">'Oce Application Selector'</span><span class="p">,</span> <span class="mi">50217</span><span class="p">:</span> <span class="s1">'Oce Identification Number'</span><span class="p">,</span> <span class="mi">50218</span><span class="p">:</span> <span class="s1">'Oce ImageLogic Characteristics'</span><span class="p">,</span> <span class="c1"># Adobe DNG</span> <span class="mi">50706</span><span class="p">:</span> <span class="s1">'DNGVersion'</span><span class="p">,</span> <span class="mi">50707</span><span class="p">:</span> <span class="s1">'DNGBackwardVersion'</span><span class="p">,</span> <span class="mi">50708</span><span class="p">:</span> <span class="s1">'UniqueCameraModel'</span><span class="p">,</span> <span class="mi">50709</span><span class="p">:</span> <span class="s1">'LocalizedCameraModel'</span><span class="p">,</span> <span class="mi">50710</span><span class="p">:</span> <span class="s1">'CFAPlaneColor'</span><span class="p">,</span> <span class="mi">50711</span><span class="p">:</span> <span class="s1">'CFALayout'</span><span class="p">,</span> <span class="mi">50712</span><span class="p">:</span> <span class="s1">'LinearizationTable'</span><span class="p">,</span> <span class="mi">50713</span><span class="p">:</span> <span class="s1">'BlackLevelRepeatDim'</span><span class="p">,</span> <span class="mi">50714</span><span class="p">:</span> <span class="s1">'BlackLevel'</span><span class="p">,</span> <span class="mi">50715</span><span class="p">:</span> <span class="s1">'BlackLevelDeltaH'</span><span class="p">,</span> <span class="mi">50716</span><span class="p">:</span> <span class="s1">'BlackLevelDeltaV'</span><span class="p">,</span> <span class="mi">50717</span><span class="p">:</span> <span class="s1">'WhiteLevel'</span><span class="p">,</span> <span class="mi">50718</span><span class="p">:</span> <span class="s1">'DefaultScale'</span><span class="p">,</span> <span class="mi">50719</span><span class="p">:</span> <span class="s1">'DefaultCropOrigin'</span><span class="p">,</span> <span class="mi">50720</span><span class="p">:</span> <span class="s1">'DefaultCropSize'</span><span class="p">,</span> <span class="mi">50721</span><span class="p">:</span> <span class="s1">'ColorMatrix1'</span><span class="p">,</span> <span class="mi">50722</span><span class="p">:</span> <span class="s1">'ColorMatrix2'</span><span class="p">,</span> <span class="mi">50723</span><span class="p">:</span> <span class="s1">'CameraCalibration1'</span><span class="p">,</span> <span class="mi">50724</span><span class="p">:</span> <span class="s1">'CameraCalibration2'</span><span class="p">,</span> <span class="mi">50725</span><span class="p">:</span> <span class="s1">'ReductionMatrix1'</span><span class="p">,</span> <span class="mi">50726</span><span class="p">:</span> <span class="s1">'ReductionMatrix2'</span><span class="p">,</span> <span class="mi">50727</span><span class="p">:</span> <span class="s1">'AnalogBalance'</span><span class="p">,</span> <span class="mi">50728</span><span class="p">:</span> <span class="s1">'AsShotNeutral'</span><span class="p">,</span> <span class="mi">50729</span><span class="p">:</span> <span class="s1">'AsShotWhiteXY'</span><span class="p">,</span> <span class="mi">50730</span><span class="p">:</span> <span class="s1">'BaselineExposure'</span><span class="p">,</span> <span class="mi">50731</span><span class="p">:</span> <span class="s1">'BaselineNoise'</span><span class="p">,</span> <span class="mi">50732</span><span class="p">:</span> <span class="s1">'BaselineSharpness'</span><span class="p">,</span> <span class="mi">50733</span><span class="p">:</span> <span class="s1">'BayerGreenSplit'</span><span class="p">,</span> <span class="mi">50734</span><span class="p">:</span> <span class="s1">'LinearResponseLimit'</span><span class="p">,</span> <span class="mi">50735</span><span class="p">:</span> <span class="s1">'CameraSerialNumber'</span><span class="p">,</span> <span class="mi">50736</span><span class="p">:</span> <span class="s1">'LensInfo'</span><span class="p">,</span> <span class="mi">50737</span><span class="p">:</span> <span class="s1">'ChromaBlurRadius'</span><span class="p">,</span> <span class="mi">50738</span><span class="p">:</span> <span class="s1">'AntiAliasStrength'</span><span class="p">,</span> <span class="mi">50740</span><span class="p">:</span> <span class="s1">'DNGPrivateData'</span><span class="p">,</span> <span class="mi">50778</span><span class="p">:</span> <span class="s1">'CalibrationIlluminant1'</span><span class="p">,</span> <span class="mi">50779</span><span class="p">:</span> <span class="s1">'CalibrationIlluminant2'</span><span class="p">,</span> <span class="mi">50784</span><span class="p">:</span> <span class="s1">'Alias Layer Metadata'</span> <span class="p">}</span> <span class="k">def</span> <span class="nf">_populate</span><span class="p">():</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">TAGS_V2</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> <span class="c1"># Populate legacy structure.</span> <span class="n">TAGS</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">v</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="o">==</span> <span class="mi">4</span><span class="p">:</span> <span class="k">for</span> <span class="n">sk</span><span class="p">,</span> <span class="n">sv</span> <span class="ow">in</span> <span class="n">v</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> <span class="n">TAGS</span><span class="p">[(</span><span class="n">k</span><span class="p">,</span> <span class="n">sv</span><span class="p">)]</span> <span class="o">=</span> <span class="n">sk</span> <span class="n">TAGS_V2</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">TagInfo</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="o">*</span><span class="n">v</span><span class="p">)</span> <span class="n">_populate</span><span class="p">()</span> <span class="c1">##</span> <span class="c1"># Map type numbers to type names -- defined in ImageFileDirectory.</span> <span class="n">TYPES</span> <span class="o">=</span> <span class="p">{}</span> <span class="c1"># was:</span> <span class="c1"># TYPES = {</span> <span class="c1"># 1: "byte",</span> <span class="c1"># 2: "ascii",</span> <span class="c1"># 3: "short",</span> <span class="c1"># 4: "long",</span> <span class="c1"># 5: "rational",</span> <span class="c1"># 6: "signed byte",</span> <span class="c1"># 7: "undefined",</span> <span class="c1"># 8: "signed short",</span> <span class="c1"># 9: "signed long",</span> <span class="c1"># 10: "signed rational",</span> <span class="c1"># 11: "float",</span> <span class="c1"># 12: "double",</span> <span class="c1"># }</span> <span class="c1">#</span> <span class="c1"># These tags are handled by default in libtiff, without</span> <span class="c1"># adding to the custom dictionary. From tif_dir.c, searching for</span> <span class="c1"># case TIFFTAG in the _TIFFVSetField function:</span> <span class="c1"># Line: item.</span> <span class="c1"># 148: case TIFFTAG_SUBFILETYPE:</span> <span class="c1"># 151: case TIFFTAG_IMAGEWIDTH:</span> <span class="c1"># 154: case TIFFTAG_IMAGELENGTH:</span> <span class="c1"># 157: case TIFFTAG_BITSPERSAMPLE:</span> <span class="c1"># 181: case TIFFTAG_COMPRESSION:</span> <span class="c1"># 202: case TIFFTAG_PHOTOMETRIC:</span> <span class="c1"># 205: case TIFFTAG_THRESHHOLDING:</span> <span class="c1"># 208: case TIFFTAG_FILLORDER:</span> <span class="c1"># 214: case TIFFTAG_ORIENTATION:</span> <span class="c1"># 221: case TIFFTAG_SAMPLESPERPIXEL:</span> <span class="c1"># 228: case TIFFTAG_ROWSPERSTRIP:</span> <span class="c1"># 238: case TIFFTAG_MINSAMPLEVALUE:</span> <span class="c1"># 241: case TIFFTAG_MAXSAMPLEVALUE:</span> <span class="c1"># 244: case TIFFTAG_SMINSAMPLEVALUE:</span> <span class="c1"># 247: case TIFFTAG_SMAXSAMPLEVALUE:</span> <span class="c1"># 250: case TIFFTAG_XRESOLUTION:</span> <span class="c1"># 256: case TIFFTAG_YRESOLUTION:</span> <span class="c1"># 262: case TIFFTAG_PLANARCONFIG:</span> <span class="c1"># 268: case TIFFTAG_XPOSITION:</span> <span class="c1"># 271: case TIFFTAG_YPOSITION:</span> <span class="c1"># 274: case TIFFTAG_RESOLUTIONUNIT:</span> <span class="c1"># 280: case TIFFTAG_PAGENUMBER:</span> <span class="c1"># 284: case TIFFTAG_HALFTONEHINTS:</span> <span class="c1"># 288: case TIFFTAG_COLORMAP:</span> <span class="c1"># 294: case TIFFTAG_EXTRASAMPLES:</span> <span class="c1"># 298: case TIFFTAG_MATTEING:</span> <span class="c1"># 305: case TIFFTAG_TILEWIDTH:</span> <span class="c1"># 316: case TIFFTAG_TILELENGTH:</span> <span class="c1"># 327: case TIFFTAG_TILEDEPTH:</span> <span class="c1"># 333: case TIFFTAG_DATATYPE:</span> <span class="c1"># 344: case TIFFTAG_SAMPLEFORMAT:</span> <span class="c1"># 361: case TIFFTAG_IMAGEDEPTH:</span> <span class="c1"># 364: case TIFFTAG_SUBIFD:</span> <span class="c1"># 376: case TIFFTAG_YCBCRPOSITIONING:</span> <span class="c1"># 379: case TIFFTAG_YCBCRSUBSAMPLING:</span> <span class="c1"># 383: case TIFFTAG_TRANSFERFUNCTION:</span> <span class="c1"># 389: case TIFFTAG_REFERENCEBLACKWHITE:</span> <span class="c1"># 393: case TIFFTAG_INKNAMES:</span> <span class="c1"># some of these are not in our TAGS_V2 dict and were included from tiff.h</span> <span class="c1"># This list also exists in encode.c</span> <span class="n">LIBTIFF_CORE</span> <span class="o">=</span> <span class="p">{</span><span class="mi">255</span><span class="p">,</span> <span class="mi">256</span><span class="p">,</span> <span class="mi">257</span><span class="p">,</span> <span class="mi">258</span><span class="p">,</span> <span class="mi">259</span><span class="p">,</span> <span class="mi">262</span><span class="p">,</span> <span class="mi">263</span><span class="p">,</span> <span class="mi">266</span><span class="p">,</span> <span class="mi">274</span><span class="p">,</span> <span class="mi">277</span><span class="p">,</span> <span class="mi">278</span><span class="p">,</span> <span class="mi">280</span><span class="p">,</span> <span class="mi">281</span><span class="p">,</span> <span class="mi">340</span><span class="p">,</span> <span class="mi">341</span><span class="p">,</span> <span class="mi">282</span><span class="p">,</span> <span class="mi">283</span><span class="p">,</span> <span class="mi">284</span><span class="p">,</span> <span class="mi">286</span><span class="p">,</span> <span class="mi">287</span><span class="p">,</span> <span class="mi">296</span><span class="p">,</span> <span class="mi">297</span><span class="p">,</span> <span class="mi">321</span><span class="p">,</span> <span class="mi">320</span><span class="p">,</span> <span class="mi">338</span><span class="p">,</span> <span class="mi">32995</span><span class="p">,</span> <span class="mi">322</span><span class="p">,</span> <span class="mi">323</span><span class="p">,</span> <span class="mi">32998</span><span class="p">,</span> <span class="mi">32996</span><span class="p">,</span> <span class="mi">339</span><span class="p">,</span> <span class="mi">32997</span><span class="p">,</span> <span class="mi">330</span><span class="p">,</span> <span class="mi">531</span><span class="p">,</span> <span class="mi">530</span><span class="p">,</span> <span class="mi">301</span><span class="p">,</span> <span class="mi">532</span><span class="p">,</span> <span class="mi">333</span><span class="p">,</span> <span class="c1"># as above</span> <span class="mi">269</span> <span class="c1"># this has been in our tests forever, and works</span> <span class="p">}</span> <span class="n">LIBTIFF_CORE</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="mi">320</span><span class="p">)</span> <span class="c1"># Array of short, crashes</span> <span class="n">LIBTIFF_CORE</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="mi">301</span><span class="p">)</span> <span class="c1"># Array of short, crashes</span> <span class="n">LIBTIFF_CORE</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="mi">532</span><span class="p">)</span> <span class="c1"># Array of long, crashes</span> <span class="n">LIBTIFF_CORE</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="mi">255</span><span class="p">)</span> <span class="c1"># We don't have support for subfiletypes</span> <span class="n">LIBTIFF_CORE</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="mi">322</span><span class="p">)</span> <span class="c1"># We don't have support for writing tiled images with libtiff</span> <span class="n">LIBTIFF_CORE</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="mi">323</span><span class="p">)</span> <span class="c1"># Tiled images</span> <span class="n">LIBTIFF_CORE</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="mi">333</span><span class="p">)</span> <span class="c1"># Ink Names either</span> <span class="c1"># Note to advanced users: There may be combinations of these</span> <span class="c1"># parameters and values that when added properly, will work and</span> <span class="c1"># produce valid tiff images that may work in your application.</span> <span class="c1"># It is safe to add and remove tags from this set from Pillow's point</span> <span class="c1"># of view so long as you test against libtiff.</span> </pre></div> </div> </div> <footer> <hr/> <div role="contentinfo"> <p> © Copyright 1995-2011 Fredrik Lundh, 2010-2018 Alex Clark and Contributors </p> </div> Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. </footer> </div> </div> </section> </div> <script type="text/javascript"> jQuery(function () { SphinxRtdTheme.Navigation.enable(true); }); </script> </body> </html>