source: extensions/AMetaData/JpegMetaData/TagDefinitions/IfdTags.class.php @ 4698

Last change on this file since 4698 was 4698, checked in by grum, 14 years ago

[Plugin:AMetaData] Finished to comment the JpegMetaData classes and rename some methods

  • Property svn:executable set to *
File size: 46.1 KB
Line 
1<?php
2/*
3 * --:: JPEG MetaDatas ::-------------------------------------------------------
4 *
5 *  Author    : Grum
6 *   email    : grum at piwigo.org
7 *   website  : http://photos.grum.fr
8 *
9 *   << May the Little SpaceFrog be with you ! >>
10 *
11 *
12 * +-----------------------------------------------------------------------+
13 * | JpegMetaData - a PHP based Jpeg Metadata manager                      |
14 * +-----------------------------------------------------------------------+
15 * | Copyright(C) 2010  Grum - http://www.grum.fr                          |
16 * +-----------------------------------------------------------------------+
17 * | This program is free software; you can redistribute it and/or modify  |
18 * | it under the terms of the GNU General Public License as published by  |
19 * | the Free Software Foundation                                          |
20 * |                                                                       |
21 * | This program is distributed in the hope that it will be useful, but   |
22 * | WITHOUT ANY WARRANTY; without even the implied warranty of            |
23 * | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
24 * | General Public License for more details.                              |
25 * |                                                                       |
26 * | You should have received a copy of the GNU General Public License     |
27 * | along with this program; if not, write to the Free Software           |
28 * | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
29 * | USA.                                                                  |
30 * +-----------------------------------------------------------------------+
31 *
32 *
33 * -----------------------------------------------------------------------------
34 *
35 * The IfdTags is the definition of the Tiff & Exif tags
36 *
37 * -----------------------------------------------------------------------------
38 *
39 * .. Notes ..
40 *
41 * The IfdTags class is derived from the KnownTags class.
42 *
43 * ======> See KnownTags.class.php to know more about the tag definitions <=====
44 *
45 */
46
47  require_once(JPEG_METADATA_DIR."TagDefinitions/KnownTags.class.php");
48
49  /**
50   * Define the tags for EXIF
51   */
52  class IfdTags extends KnownTags
53  {
54    protected $label = "Exif & Tiff tags";
55    protected $tags = Array(
56      /*
57       * tags with defined values
58       */
59
60      // ProcessingSoftware, tag 0x000b
61      0x000b => Array(
62        'tagName'     => "ProcessingSoftware",
63        'schema'      => "tiff",
64        'translatable'=> false,
65        'combiTag'    => 0,
66        'implemented' => true
67      ), // < ProcessingSoftware
68
69      // SubfileType, tag 0x00fe
70      0x00fe => Array(
71        'tagName'     => "SubfileType",
72        'schema'      => "tiff",
73        'translatable'=> true,
74        'combiTag'    => 0,
75        'implemented' => true,
76        'tagValues'   => Array(
77          0x00 => "full-resolution image",
78          0x01 => "reduced-resolution image",
79          0x02 => "single page of multi-page image",
80          0x03 => "single page of multi-page reduced-resolution image",
81          0x04 => "transparency mask",
82          0x05 => "transparency mask of reduced-resolution image",
83          0x06 => "transparency mask of multi-page image",
84          0x07 => "transparency mask of reduced-resolution multi-page image",
85        )
86      ), // < SubfileType
87
88      // OldSubfileType, tag 0x00ff
89      0x00ff => Array(
90        'tagName'     => "OldSubfileType",
91        'schema'      => "tiff",
92        'translatable'=> true,
93        'combiTag'    => 0,
94        'implemented' => true,
95        'tagValues'   => Array(
96          0x01 => "full-resolution image",
97          0x02 => "reduced-resolution image",
98          0x03 => "single page of multi-page image",
99        )
100      ), // < SubfileType
101
102      // ImageWidth, tag 0x0100
103      0x0100 => Array(
104        'tagName'     => "ImageWidth",
105        'schema'      => "tiff",
106        'translatable'=> false,
107        'combiTag'    => 0,
108        'implemented' => true
109      ), // < ImageWidth
110
111      // ImageHeight, tag 0x0101
112      0x0101 => Array(
113        'tagName'     => "ImageLength",
114        'schema'      => "tiff",
115        'translatable'=> false,
116        'combiTag'    => 0,
117        'implemented' => true
118      ), // < ImageLength
119
120      // BitsPerSample, tag 0x0102
121      0x0102 => Array(
122        'tagName'     => "BitsPerSample",
123        'schema'      => "tiff",
124        'translatable'=> false,
125        'combiTag'    => 0,
126        'implemented' => true
127      ), // < BitsPerSample
128
129      // Compression, tag 0x0103
130      0x0103 => Array(
131        'tagName'     => "Compression",
132        'schema'      => "tiff",
133        'translatable'=> true,
134        'combiTag'    => 0,
135        'implemented' => true,
136        'tagValues'   => Array(
137          0x0001 => "uncompressed",
138          0x0002 => "CCITT 1D",
139          0x0003 => "T4/Group 3 Fax",
140          0x0004 => "T6/Group 4 Fax",
141          0x0005 => "LZW",
142          0x0006 => "JPEG (old style)",
143          0x0007 => "JPEG",
144          0x0008 => "Adobe Deflate",
145          0x0009 => "JBIG B&W",
146          0x0010 => "JBIG Color",
147          0x0063 => "JPEG",
148          0x0106 => "Kodak 262",
149          0x7FFE => "Next",
150          0x7FFF => "Sony ARW Compressed",
151          0x8001 => "Epson ERF Compressed",
152          0x8003 => "CCIRLEW",
153          0x8005 => "PackBits",
154          0x8029 => "Thunderscan",
155          0x8063 => "Kodak KDC Compressed",
156          0x807F => "IT8CTPAD",
157          0x8080 => "IT8LW",
158          0x8081 => "IT8MP",
159          0x8082 => "IT8BL",
160          0x808c => "PixarFilm",
161          0x808D => "PixarLog",
162          0x80B2 => "Deflate",
163          0x80B3 => "DCS",
164          0x8765 => "JBIG",
165          0x8774 => "SGILog",
166          0x8775 => "SGILog24",
167          0x8798 => "JPEG 2000",
168          0x8799 => "Nikon NEF Compressed",
169          0x879E => "Microsoft Document Imaging (MDI) Binary Level Codec",
170          0x879F => "Microsoft Document Imaging (MDI) Progressive Transform Codec",
171          0x87A0 => "Microsoft Document Imaging (MDI) Vector",
172          0xFDE8 => "Kodak DCR Compressed",
173          0xFFFF => "Pentax PEF Compressed",
174        )
175      ), // < Compression
176
177      // PhotometricInterpretation, tag 0x0106
178      0x0106 => Array(
179        'tagName'     => "PhotometricInterpretation",
180        'schema'      => "tiff",
181        'translatable'=> true,
182        'combiTag'    => 0,
183        'implemented' => true,
184        'tagValues'   => Array(
185          0x0000 => "WhiteIsZero",
186          0x0001 => "BlackIsZero",
187          0x0002 => "RGB",
188          0x0003 => "RGB Palette",
189          0x0004 => "Transparency Mask",
190          0x0005 => "CMYK",
191          0x0006 => "YCbCr",
192          0x0008 => "CIELab",
193          0x0009 => "ICCLab",
194          0x000A => "ITULab",
195          0x8023 => "Color Filter Array",
196          0x804C => "Pixar LogL",
197          0x804D => "Pixar LogLuv",
198          0x884C => "Linear Raw",
199        )
200      ), // < PhotometricInterpretation
201
202      // Thresholding, tag 0x0107
203      0x0107 => Array(
204        'tagName'     => "Thresholding",
205        'schema'      => "tiff",
206        'translatable'=> true,
207        'combiTag'    => 0,
208        'implemented' => true,
209        'tagValues'   => Array(
210          0x0001 => "no dithering or halftoning",
211          0x0002 => "ordered dither or halftone",
212          0x0003 => "randomized dither",
213        )
214      ), // < Thresholding
215
216      // CellWidth, tag 0x0108
217      0x0108 => Array(
218        'tagName'     => "CellWidth",
219        'schema'      => "tiff",
220        'translatable'=> false,
221        'combiTag'    => 0,
222        'implemented' => false
223      ), // < CellWidth
224
225      // CellLength, tag 0x0109
226      0x0109 => Array(
227        'tagName'     => "CellLength",
228        'schema'      => "tiff",
229        'translatable'=> false,
230        'combiTag'    => 0,
231        'implemented' => false
232      ), // < CellLength
233
234      // FillOrder, tag 0x010A
235      0x010A => Array(
236        'tagName'     => "FillOrder",
237        'schema'      => "tiff",
238        'translatable'=> false,
239        'combiTag'    => 0,
240        'implemented' => true,
241        'tagValues'   => Array(
242          0x0001 => "normal",
243          0x0002 => "reversed",
244        )
245      ), // < FillOrder
246
247      // DocumentName, tag 0x010D
248      0x010d => Array(
249        'tagName'     => "DocumentName",
250        'schema'      => "tiff",
251        'translatable'=> false,
252        'combiTag'    => 0,
253        'implemented' => true
254      ), // < DocumentName
255
256      // ImageDescription, tag 0x010E
257      0x010E => Array(
258        'tagName'     => "ImageDescription",
259        'schema'      => "tiff",
260        'translatable'=> false,
261        'combiTag'    => 0,
262        'implemented' => true
263      ), // < ImageDescription
264
265      // Make, tag 0x010F
266      0x010F => Array(
267        'tagName'     => "Make",
268        'schema'      => "tiff",
269        'translatable'=> false,
270        'combiTag'    => 0,
271        'implemented' => true
272      ), // < Make
273
274      // Model, tag 0x0110
275      0x0110 => Array(
276        'tagName'     => "Model",
277        'schema'      => "tiff",
278        'translatable'=> false,
279        'combiTag'    => 0,
280        'implemented' => true
281      ), // < Model
282
283      // StripOffsets, tag 0x0111
284      0x0111 => Array(
285        'tagName'     => "StripOffsets",
286        'schema'      => "tiff",
287        'translatable'=> false,
288        'combiTag'    => 0,
289        'implemented' => false
290      ), // < StripOffsets
291
292      // Orientation, tag 0x0112, see EXIF2.2 documentation
293      0x0112 => Array(
294        'tagName'     => "Orientation",
295        'schema'      => "tiff",
296        'translatable'=> false,
297        'combiTag'    => 0,
298        'implemented' => true,
299        'tagValues'   => Array(
300          0x0001 => "horizontal (normal)",
301          0x0002 => "mirror horizontal",
302          0x0003 => "rotate 180",
303          0x0004 => "mirror vertical",
304          0x0005 => "mirror horizontal and rotate 270 CW",
305          0x0006 => "rotate 90 CW",
306          0x0007 => "mirror horizontal and rotate 90 CW",
307          0x0008 => "rotate 270 CW"
308        )
309      ), // < Orientation
310
311      // SamplesPerPixel, tag 0x0115
312      0x0115 => Array(
313        'tagName'     => "SamplesPerPixel",
314        'schema'      => "tiff",
315        'translatable'=> false,
316        'combiTag'    => 0,
317        'implemented' => true
318      ), // < SamplesPerPixel
319
320      // RowsPerStrip, tag 0x0116
321      0x0116 => Array(
322        'tagName'     => "RowsPerStrip",
323        'schema'      => "tiff",
324        'translatable'=> false,
325        'combiTag'    => 0,
326        'implemented' => true
327      ), // < RowsPerStrip
328
329      // StripByteCounts, tag 0x0117
330      0x0117 => Array(
331        'tagName'     => "StripByteCounts",
332        'schema'      => "tiff",
333        'translatable'=> false,
334        'combiTag'    => 0,
335        'implemented' => true
336      ), // < StripByteCounts
337
338      // MinSampleValue, tag 0x0118
339      0x0118 => Array(
340        'tagName'     => "MinSampleValue",
341        'schema'      => "tiff",
342        'translatable'=> false,
343        'combiTag'    => 0,
344        'implemented' => false
345      ), // < MinSampleValue
346
347      // MaxSampleValue, tag 0x0119
348      0x0119 => Array(
349        'tagName'     => "MaxSampleValue",
350        'schema'      => "tiff",
351        'translatable'=> false,
352        'combiTag'    => 0,
353        'implemented' => false
354      ), // < MaxSampleValue
355
356      // XResolution, tag 0x011A
357      0x011A => Array(
358        'tagName'     => "XResolution",
359        'schema'      => "tiff",
360        'translatable'=> false,
361        'combiTag'    => 0,
362        'implemented' => true
363      ), // < XResolution
364
365      // YResolution, tag 0x011B
366      0x011B => Array(
367        'tagName'     => "YResolution",
368        'schema'      => "tiff",
369        'translatable'=> false,
370        'combiTag'    => 0,
371        'implemented' => true
372      ), // < YResolution
373
374      // PlanarConfiguration, tag 0x011C
375      0x011C => Array(
376        'tagName'     => "PlanarConfiguration",
377        'schema'      => "tiff",
378        'translatable'=> true,
379        'combiTag'    => 0,
380        'implemented' => true,
381        'tagValues'   => Array(
382          0x01 => "chunky",
383          0x02 => "planar"
384        )
385      ), // < PlanarConfiguration
386
387      // PageName, tag 0x011D
388      0x011D => Array(
389        'tagName'     => "PageName",
390        'schema'      => "tiff",
391        'translatable'=> false,
392        'combiTag'    => 0,
393        'implemented' => false
394      ), // < PageName
395
396      // XPosition, tag 0x011E
397      0x011E => Array(
398        'tagName'     => "XPosition",
399        'schema'      => "tiff",
400        'translatable'=> false,
401        'combiTag'    => 0,
402        'implemented' => false
403      ), // < XPosition
404
405
406      // YPosition, tag 0x011F
407      0x011F => Array(
408        'tagName'     => "YPosition",
409        'schema'      => "tiff",
410        'translatable'=> false,
411        'combiTag'    => 0,
412        'implemented' => false
413      ), // < YPosition
414
415
416      // FreeOffsets, tag 0x0120
417      0x0120 => Array(
418        'tagName'     => "FreeOffsets",
419        'schema'      => "",
420        'translatable'=> false,
421        'combiTag'    => 0,
422        'implemented' => false
423      ), // < FreeOffsets
424
425      // FreeByteCounts, tag 0x0121
426      0x0121 => Array(
427        'tagName'     => "FreeByteCounts",
428        'schema'      => "",
429        'translatable'=> false,
430        'combiTag'    => 0,
431        'implemented' => false
432      ), // < FreeByteCounts
433
434      // GrayResponseUnit, tag 0x0122
435      0x0122 => Array(
436        'tagName'     => "GrayResponseUnit",
437        'schema'      => "tiff",
438        'translatable'=> false,
439        'combiTag'    => 0,
440        'implemented' => true,
441        'tagValues'   => Array(
442          0x01 => 0.1,
443          0x02 => 0.001,
444          0x03 => 0.0001,
445          0x04 => 0.00001,
446          0x05 => 0.000001
447        )
448      ), // < GrayResponseUnit
449
450      // GrayResponseCurve, tag 0x0123
451      0x0123 => Array(
452        'tagName'     => "GrayResponseCurve",
453        'schema'      => "",
454        'translatable'=> false,
455        'combiTag'    => 0,
456        'implemented' => false
457      ), // < GrayResponseCurve
458
459      // T4Options, tag 0x0124
460      0x0124 => Array(
461        'tagName'     => "T4Options",
462        'schema'      => "",
463        'translatable'=> false,
464        'combiTag'    => 0,
465        'implemented' => false
466      ), // < T4Options
467
468
469      // T6Options, tag 0x0125
470      0x0125 => Array(
471        'tagName'     => "T6Options",
472        'schema'      => "",
473        'translatable'=> false,
474        'combiTag'    => 0,
475        'implemented' => false
476      ), // < T6Options
477
478
479      // ResolutionUnit, tag 0x0128
480      0x0128 => Array(
481        'tagName'     => "ResolutionUnit",
482        'schema'      => "tiff",
483        'translatable'=> true,
484        'combiTag'    => 0,
485        'implemented' => true,
486        'tagValues'   => Array(
487          0x01 => "none",
488          0x02 => "inches",
489          0x03 => "centimeters"
490        )
491      ), // < ResolutionUnit
492
493      // PageNumber, tag 0x0129
494      0x0129 => Array(
495        'tagName'     => "PageNumber",
496        'schema'      => "tiff",
497        'translatable'=> false,
498        'combiTag'    => 0,
499        'implemented' => false
500      ), // < PageNumber
501
502      // ColorResponseUnit, tag 0x012c
503      0x012c => Array(
504        'tagName'     => "ColorResponseUnit",
505        'schema'      => "",
506        'translatable'=> false,
507        'combiTag'    => 0,
508        'implemented' => false
509      ), // < ColorResponseUnit
510
511      // TransferFunction, tag 0x012D
512      0x012D => Array(
513        'tagName'     => "TransferFunction",
514        'schema'      => "tiff",
515        'translatable'=> false,
516        'combiTag'    => 0,
517        'implemented' => false
518      ), // < TransferFunction
519
520
521      // Software, tag 0x0131
522      0x0131 => Array(
523        'tagName'     => "Software",
524        'schema'      => "tiff",
525        'translatable'=> false,
526        'combiTag'    => 0,
527        'implemented' => true
528      ), // < DateTime
529
530      // DateTime, tag 0x0132
531      0x0132 => Array(
532        'tagName'     => "DateTime",
533        'schema'      => "tiff",
534        'translatable'=> false,
535        'combiTag'    => 0,
536        'implemented' => true
537      ), // < DateTime
538
539      // Artist, tag 0x013B
540      0x013B => Array(
541        'tagName'     => "Artist",
542        'schema'      => "tiff",
543        'translatable'=> false,
544        'combiTag'    => 0,
545        'implemented' => true
546      ), // < Artist
547
548      // HostComputer, tag 0x013C
549      0x013C => Array(
550        'tagName'     => "HostComputer",
551        'schema'      => "tiff",
552        'translatable'=> false,
553        'combiTag'    => 0,
554        'implemented' => false
555      ), // < HostComputer
556
557
558      // Predictor, tag 0x013D
559      0x013D => Array(
560        'tagName'     => "Predictor",
561        'schema'      => "tiff",
562        'translatable'=> true,
563        'combiTag'    => 0,
564        'implemented' => true,
565        'tagValues'   => Array(
566          0x01 => "none",
567          0x02 => "horizontal differencing"
568        )
569      ), // < Predictor
570
571
572      // WhitePoint, tag 0x013E
573      0x013E => Array(
574        'tagName'     => "WhitePoint",
575        'schema'      => "tiff",
576        'translatable'=> false,
577        'combiTag'    => 0,
578        'implemented' => false
579      ), // < WhitePoint
580
581      // PrimaryChromaticities, tag 0x013F
582      0x013F => Array(
583        'tagName'     => "PrimaryChromaticities",
584        'schema'      => "tiff",
585        'translatable'=> false,
586        'combiTag'    => 0,
587        'implemented' => false
588      ), // < PrimaryChromaticities
589
590
591      // JPEGInterchangeFormat, tag 0x0201, see EXIF2.2 documentation to implement
592      0x0201 => Array(
593        'tagName'     => "JPEGInterchangeFormat",
594        'schema'      => Array("tiff", "IFD1", "MAKERNOTES", "IFD2"),
595        'translatable'=> false,
596        'combiTag'    => 0,
597        'implemented' => true,
598      ), // < JPEGInterchangeFormat
599
600      // JPEGInterchangeFormatLength, tag 0x0202, see EXIF2.2 documentation to implement
601      0x0202 => Array(
602        'tagName'     => "JPEGInterchangeFormatLength",
603        'schema'      => Array("tiff", "IFD1", "MAKERNOTES", "IFD2"),
604        'translatable'=> false,
605        'combiTag'    => 0,
606        'implemented' => true,
607      ), // < JPEGInterchangeFormatLength
608
609      // YCbCrCoefficients, tag 0x0211, see EXIF2.2 documentation to implement
610      0x0211 => Array(
611        'tagName'     => "YCbCrCoefficients",
612        'schema'      => "tiff",
613        'translatable'=> false,
614        'combiTag'    => 0,
615        'implemented' => false,
616      ), // < YCbCrCoefficients
617
618      // YCbCrSubSampling, tag 0x0212, see EXIF2.2 documentation to implement
619      0x0212 => Array(
620        'tagName'     => "YCbCrSubSampling",
621        'schema'      => "tiff",
622        'translatable'=> false,
623        'combiTag'    => 0,
624        'implemented' => true,
625        'tagValues.special' => Array(
626          1 => Array(
627                1 => "YCbCr4:4:4",
628                2 => "YCbCr4:4:0",
629                4 => "YCbCr4:4:1"
630              ),
631          2 => Array(
632                1 => "YCbCr4:2:2",
633                2 => "YCbCr4:2:0",
634                4 => "YCbCr4:2:1",
635              ),
636          4 => Array(
637                1 => "YCbCr4:1:1",
638                2 => "YCbCr4:1:0"
639              )
640        )
641      ), // < YCbCrSubSampling
642
643      // YCbCrPositioning, tag 0x0213, see EXIF2.2 documentation to implement
644      0x0213 => Array(
645        'tagName'     => "YCbCrPositioning",
646        'schema'      => "tiff",
647        'translatable'=> true,
648        'combiTag'    => 0,
649        'implemented' => true,
650        'tagValues'   => Array(
651          0x01 => "centered",
652          0x02 => "co-sited"
653        )
654      ), // < YCbCrPositioning
655
656      // ReferenceBlackWhite, tag 0x0214, see EXIF2.2 documentation to implement
657      0x0214 => Array(
658        'tagName'     => "ReferenceBlackWhite",
659        'schema'      => "tiff",
660        'translatable'=> false,
661        'combiTag'    => 0,
662        'implemented' => false,
663      ), // < ReferenceBlackWhite
664
665      // Rating, tag 0x4746
666      0x4746 => Array(
667        'tagName'     => "Rating",
668        'schema'      => "tiff",
669        'translatable'=> false,
670        'combiTag'    => 0,
671        'implemented' => false
672      ), // < Rating
673
674      // RatingPercent, tag 0x4749
675      0x4749 => Array(
676        'tagName'     => "RatingPercent",
677        'schema'      => "tiff",
678        'translatable'=> false,
679        'combiTag'    => 0,
680        'implemented' => false
681      ), // < RatingPercent
682
683
684      // Copyright, tag 0x8298
685      0x8298 => Array(
686        'tagName'     => "Copyright",
687        'schema'      => "tiff",
688        'translatable'=> false,
689        'combiTag'    => 0,
690        'implemented' => true
691      ), // < Copyright
692
693      // ExposureTime, tag 0x829A, exprimed in seconds
694      0x829A => Array(
695        'tagName'     => "ExposureTime",
696        'schema'      => "exif",
697        'translatable'=> false,
698        'combiTag'    => 0,
699        'implemented' => true
700      ), // < ExposureTime
701
702      // FNumber, tag 0x829D, exprimed in seconds
703      0x829D => Array(
704        'tagName'     => "FNumber",
705        'schema'      => "exif",
706        'translatable'=> false,
707        'combiTag'    => 0,
708        'implemented' => true
709      ), // < FNumber
710
711      // IPTC-NAA, tag 0x83BB
712      0x83BB => Array(
713        'tagName'     => "IPTC-NAA",
714        'schema'      => "tiff",
715        'translatable'=> false,
716        'combiTag'    => 0,
717        'implemented' => false
718      ), // < IPTC-NAA
719
720      // AFCP_IPTC, tag 0x8568
721      0x8568 => Array(
722        'tagName'     => "AFCP_IPTC",
723        'schema'      => "",
724        'translatable'=> false,
725        'combiTag'    => 0,
726        'implemented' => false
727      ), // < AFCP_IPTC
728
729      // Exif IFD Pointer, tag 0x8769
730      0x8769 => Array(
731        'tagName'     => "Exif IFD Pointer",
732        'schema'      => "",
733        'translatable'=> false,
734        'combiTag'    => 0,
735        'implemented' => true
736      ), // < Exif IFD Pointer
737
738      // ICC_Profile, tag 0x8773
739      0x8773 => Array(
740        'tagName'     => "ICC_Profile",
741        'schema'      => "",
742        'translatable'=> false,
743        'combiTag'    => 0,
744        'implemented' => false
745      ), // < ICC_Profile
746
747
748      // ExposureProgram, tag 0x8822
749      0x8822 => Array(
750        'tagName'     => "ExposureProgram",
751        'schema'      => "exif",
752        'translatable'=> true,
753        'combiTag'    => 0,
754        'implemented' => true,
755        'tagValues'   => Array(
756          0x00 => "not defined",
757          0x01 => "manual",
758          0x02 => "normal program",
759          0x03 => "aperture priority",
760          0x04 => "shutter priority",
761          0x05 => "creative program",
762          0x06 => "action program",
763          0x07 => "portrait mode",
764          0x08 => "landscape mode"
765        )
766      ), // < ExposureProgram
767
768      // SpectralSensitivity, tag 0x8824
769      0x8824 => Array(
770        'tagName'     => "SpectralSensitivity",
771        'schema'      => "exif",
772        'translatable'=> false,
773        'combiTag'    => 0,
774        'implemented' => true
775      ), // < SpectralSensitivity
776
777      // GPS IFD Pointer, tag 0x8825
778      0x8825 => Array(
779        'tagName'     => "GPS IFD Pointer",
780        'schema'      => "",
781        'translatable'=> false,
782        'combiTag'    => 0,
783        'implemented' => true
784      ), // < GPS IFD Pointer
785
786      // ISOSpeedRatings, tag 0x8827
787      0x8827 => Array(
788        'tagName'     => "ISOSpeedRatings",
789        'schema'      => "exif",
790        'translatable'=> false,
791        'combiTag'    => 0,
792        'implemented' => true
793      ), // < ISOSpeedRatings
794
795      // OECF, tag 0x8828
796      0x8828 => Array(
797        'tagName'     => "OECF",
798        'schema'      => "exif",
799        'translatable'=> false,
800        'combiTag'    => 0,
801        'implemented' => false
802      ), // < OECF
803
804      // TimeZoneOffset, tag 0x882A
805      0x882A => Array(
806        'tagName'     => "TimeZoneOffset",
807        'schema'      => "exif",
808        'translatable'=> false,
809        'combiTag'    => 0,
810        'implemented' => false
811      ), // < TimeZoneOffset
812
813      // SelfTimerMode, tag 0x882B
814      0x882A => Array(
815        'tagName'     => "SelfTimerMode",
816        'schema'      => "exif",
817        'translatable'=> false,
818        'combiTag'    => 0,
819        'implemented' => false
820      ), // < SelfTimerMode
821
822      // ExifVersion, tag 0x9000
823      0x9000 => Array(
824        'tagName'     => "ExifVersion",
825        'schema'      => "exif",
826        'translatable'=> false,
827        'combiTag'    => 0,
828        'implemented' => true
829      ), // < ExifVersion
830
831      // DateTimeOriginal, tag 0x9003, "YYYY:MM:DD HH:MM:SS"
832      0x9003 => Array(
833        'tagName'     => "DateTimeOriginal",
834        'schema'      => "exif",
835        'translatable'=> false,
836        'combiTag'    => 0,
837        'implemented' => true
838      ), // < DateTimeOriginal
839
840      // DateTimeDigitized, tag 0x9004, "YYYY:MM:DD HH:MM:SS"
841      0x9004 => Array(
842        'tagName'     => "DateTimeDigitized",
843        'schema'      => "exif",
844        'translatable'=> false,
845        'combiTag'    => 0,
846        'implemented' => true
847      ), // < DateTimeDigitized
848
849
850      // ComponentsConfiguration, tag 0x9101
851      0x9101 => Array(
852        'tagName'     => "ComponentsConfiguration",
853        'schema'      => "exif",
854        'translatable'=> false,
855        'combiTag'    => 0,
856        'implemented' => true
857      ), // < ComponentsConfiguration
858
859      // CompressedBitsPerPixel, tag 0x9102
860      0x9102 => Array(
861        'tagName'     => "CompressedBitsPerPixel",
862        'schema'      => "exif",
863        'translatable'=> false,
864        'combiTag'    => 0,
865        'implemented' => true
866      ), // < CompressedBitsPerPixel
867
868      // ShutterSpeedValue, tag 0x9201
869      0x9201 => Array(
870        'tagName'     => "ShutterSpeedValue",
871        'schema'      => "exif",
872        'translatable'=> false,
873        'combiTag'    => 0,
874        'implemented' => true
875      ), // < ShutterSpeedValue
876
877      // ApertureValue, tag 0x9202
878      0x9202 => Array(
879        'tagName'     => "ApertureValue",
880        'schema'      => "exif",
881        'translatable'=> false,
882        'combiTag'    => 0,
883        'implemented' => true
884      ), // < ApertureValue
885
886      // BrightnessValue, tag 0x9203
887      0x9203 => Array(
888        'tagName'     => "BrightnessValue",
889        'schema'      => "exif",
890        'translatable'=> false,
891        'combiTag'    => 0,
892        'implemented' => true
893      ), // < BrightnessValue
894
895      // ExposureBiasValue, tag 0x9204
896      0x9204 => Array(
897        'tagName'     => "ExposureBiasValue",
898        'schema'      => "exif",
899        'translatable'=> false,
900        'combiTag'    => 0,
901        'implemented' => true
902      ), // < ExposureBiasValue
903
904      // MaxApertureValue, tag 0x9205
905      0x9205 => Array(
906        'tagName'     => "MaxApertureValue",
907        'schema'      => "exif",
908        'translatable'=> false,
909        'combiTag'    => 0,
910        'implemented' => true
911      ), // < MaxApertureValue
912
913      // SubjectDistance, tag 0x9206
914      0x9206 => Array(
915        'tagName'     => "SubjectDistance",
916        'schema'      => "exif",
917        'translatable'=> false,
918        'combiTag'    => 0,
919        'implemented' => true
920      ), // < SubjectDistance
921
922      // MeteringMode, tag 0x9207
923      0x9207 => Array(
924        'tagName'     => "MeteringMode",
925        'schema'      => "exif",
926        'translatable'=> true,
927        'combiTag'    => 0,
928        'implemented' => true,
929        'tagValues'   => Array(
930          0x0000 => "unknown",
931          0x0001 => "average",
932          0x0002 => "CenterWeightedAverage",
933          0x0003 => "spot",
934          0x0004 => "multispot",
935          0x0005 => "pattern",
936          0x0006 => "partial",
937          0x00ff => "other"
938        )
939      ), // < MeteringMode
940
941      // LightSource, tag 0x9208
942      0x9208 => Array(
943        'tagName'     => "LightSource",
944        'schema'      => "exif",
945        'translatable'=> true,
946        'combiTag'    => 0,
947        'implemented' => true,
948        'tagValues'   => Array(
949          0x0000 => "unknown",
950          0x0001 => "daylight",
951          0x0002 => "fluorescent",
952          0x0003 => "tungsten (incandescent light)",
953          0x0004 => "flash",
954          0x0009 => "fine weather",
955          0x000a => "cloudy weather",
956          0x000b => "shade",
957          0x000c => "daylight fluorescent (D 5700 - 7100K)",
958          0x000d => "day white fluorescent (N 4600 - 5400K)",
959          0x000e => "cool white fluorescent (W 3900 - 4500K)",
960          0x000f => "white fluorescent (WW 3200 - 3700K)",
961          0x0011 => "standard light A",
962          0x0012 => "standard light B",
963          0x0013 => "standard light C",
964          0x0014 => "D55",
965          0x0015 => "D65",
966          0x0016 => "D75",
967          0x0017 => "D50",
968          0x0018 => "ISO studio tungsten",
969          0x00ff => "other light source"
970        )
971      ), // < LightSource
972
973      // flash, tag 0x9209, see EXIF 2.2 documentation
974      0x9209 => Array(
975        'tagName'     => "flash",
976        'schema'      => "exif",
977        'translatable'=> true,
978        'combiTag'    => 0,
979        'implemented' => true,
980        'tagValues.specialNames'   => Array(
981                  0x00 => "flash fired",
982                  0x06 => "returned light",
983                  0x18 => "flash mode",
984                  0x20 => "flash function",
985                  0x40 => "red-eye mode"
986                ),
987        'tagValues.specialValues' => Array(
988          0x0000 => Array( // b00000001
989                  0x00 => "flash did not fire",
990                  0x01 => "flash fired"
991                ),
992          0x0006 => Array( // b00000110
993                  0x00 => "no strobe",                        // 00
994                  0x01 => "reserved",                         // 01
995                  0x02 => "strobe return light not detected", // 10
996                  0x03 => "strobe return light detected"      // 11
997                ),
998          0x0018 => Array( // b00011000
999                  0x00 => "unknown",
1000                  0x01 => "compulsory flash firing",
1001                  0x10 => "compulsory flash suppression",
1002                  0x11 => "auto mode"
1003                ),
1004          0x0020 => Array( // b00100000
1005                  0x00 => "flash function present",
1006                  0x01 => "no flash function"
1007                ),
1008          0x0040 => Array( // b01000000
1009                  0x00 => "no red-eye reduction mode or unknown",
1010                  0x01 => "red-eye reduction supported"
1011                ),
1012        ),
1013        'tagValues.computed' => Array(
1014          0x0000 => "no flash",
1015          0x0001 => "fired",
1016          0x0005 => "fired, return not detected",
1017          0x0007 => "fired, return detected",
1018          0x0008 => "on, did not fire",
1019          0x0009 => "on, fired",
1020          0x000d => "on, return not detected",
1021          0x000f => "on, return detected",
1022          0x0010 => "off, did not fire",
1023          0x0014 => "off, did not fire, return not detected",
1024          0x0018 => "auto, did not fire",
1025          0x0019 => "auto, fired",
1026          0x001d => "auto, fired, return not detected",
1027          0x001f => "auto, fired, return detected",
1028          0x0020 => "no flash function",
1029          0x0030 => "off, no flash function",
1030          0x0041 => "fired, red-eye reduction",
1031          0x0045 => "fired, red-eye reduction, return not detected",
1032          0x0047 => "fired, red-eye reduction, return detected",
1033          0x0049 => "on, red-eye reduction",
1034          0x004d => "on, red-eye reduction, return not detected",
1035          0x004f => "on, red-eye reduction, return detected",
1036          0x0050 => "off, red-eye reduction",
1037          0x0058 => "auto, did not fire, red-eye reduction",
1038          0x0059 => "auto, fired, red-eye reduction",
1039          0x005d => "auto, fired, red-eye reduction, return not detected",
1040          0x005f => "auto, fired, red-eye reduction, return detected",
1041        ),
1042      ), // < flash
1043
1044      // FocalLength, tag 0x920a
1045      0x920a => Array(
1046        'tagName'     => "FocalLength",
1047        'schema'      => "exif",
1048        'translatable'=> false,
1049        'combiTag'    => 0,
1050        'implemented' => true
1051      ), // < FocalLength
1052
1053      // ImageNumber, tag 0x9211
1054      0x9211 => Array(
1055        'tagName'     => "ImageNumber",
1056        'schema'      => "exif",
1057        'translatable'=> false,
1058        'combiTag'    => 0,
1059        'implemented' => false
1060      ), // < ImageNumber
1061
1062      // SecurityClassification, tag 0x9212
1063      0x9212 => Array(
1064        'tagName'     => "SecurityClassification",
1065        'schema'      => "exif",
1066        'translatable'=> true,
1067        'combiTag'    => 0,
1068        'implemented' => true,
1069        'tagValues'   => Array(
1070          "C\x00" => "confidential",
1071          "R\x00" => "restricted",
1072          "S\x00" => "secret",
1073          "T\x00" => "top secret",
1074          "U\x00" => "unclassified",
1075        )
1076      ), // < SecurityClassification
1077
1078      // ImageHistory, tag 0x9213
1079      0x9213 => Array(
1080        'tagName'     => "ImageHistory",
1081        'schema'      => "exif",
1082        'translatable'=> false,
1083        'combiTag'    => 0,
1084        'implemented' => false
1085      ), // < SubjectArea
1086
1087      // SubjectArea, tag 0x9214
1088      0x9214 => Array(
1089        'tagName'     => "SubjectArea",
1090        'schema'      => "exif",
1091        'translatable'=> false,
1092        'combiTag'    => 0,
1093        'implemented' => false
1094      ), // < SubjectArea
1095
1096      // TIFF-EPStandardID, tag 0x9216
1097      0x9216 => Array(
1098        'tagName'     => "TIFF-EPStandardID",
1099        'schema'      => "",
1100        'translatable'=> false,
1101        'combiTag'    => 0,
1102        'implemented' => false
1103      ), // < TIFF-EPStandardID
1104
1105
1106      // MakerNote, tag 0x927c
1107      0x927c => Array(
1108        'tagName'     => "MakerNote",
1109        'schema'      => "exif",
1110        'translatable'=> false,
1111        'combiTag'    => 0,
1112        'implemented' => true
1113      ), // < MakerNote
1114
1115      // UserComment, tag 0x9286, see EXIF2.2 for documentation
1116      0x9286 => Array(
1117        'tagName'     => "UserComment",
1118        'schema'      => "exif",
1119        'translatable'=> false,
1120        'combiTag'    => 0,
1121        'implemented' => true
1122      ), // < UserComment
1123
1124      // SubsecTime, tag 0x9290, see EXIF2.2 for documentation
1125      0x9290 => Array(
1126        'tagName'     => "SubsecTime",
1127        'schema'      => "exif",
1128        'translatable'=> false,
1129        'combiTag'    => 0,
1130        'implemented' => true
1131      ), // < SubsecTime
1132
1133      // SubsecTimeOriginal, tag 0x9291, see EXIF2.2 for documentation
1134      0x9291 => Array(
1135        'tagName'     => "SubsecTimeOriginal",
1136        'schema'      => "exif",
1137        'translatable'=> false,
1138        'combiTag'    => 0,
1139        'implemented' => true
1140      ), // < SubsecTimeOriginal
1141
1142      // SubsecTimeDigitized, tag 0x9292, see EXIF2.2 for documentation
1143      0x9292 => Array(
1144        'tagName'     => "SubsecTimeDigitized",
1145        'schema'      => "exif",
1146        'translatable'=> false,
1147        'combiTag'    => 0,
1148        'implemented' => true
1149      ), // < SubsecTimeDigitized
1150
1151
1152      // XPTitle, tag 0x9c9b
1153      0x9c9b => Array(
1154        'tagName'     => "XPTitle",
1155        'schema'      => "tiff",
1156        'translatable'=> false,
1157        'combiTag'    => 0,
1158        'implemented' => false
1159      ), // < XPTitle
1160
1161      // XPComment, tag 0x9c9c
1162      0x9c9c => Array(
1163        'tagName'     => "XPComment",
1164        'schema'      => "tiff",
1165        'translatable'=> false,
1166        'combiTag'    => 0,
1167        'implemented' => false
1168      ), // < XPComment
1169
1170      // XPAuthor, tag 0x9c9d
1171      0x9c9d => Array(
1172        'tagName'     => "XPAuthor",
1173        'schema'      => "tiff",
1174        'translatable'=> false,
1175        'combiTag'    => 0,
1176        'implemented' => false
1177      ), // < XPAuthor
1178
1179      // XPKeywords, tag 0x9c9e
1180      0x9c9e => Array(
1181        'tagName'     => "XPKeywords",
1182        'schema'      => "tiff",
1183        'translatable'=> false,
1184        'combiTag'    => 0,
1185        'implemented' => false
1186      ), // < XPKeywords
1187
1188      // XPSubject, tag 0x9c9
1189      0x9c9f => Array(
1190        'tagName'     => "XPSubject",
1191        'schema'      => "tiff",
1192        'translatable'=> false,
1193        'combiTag'    => 0,
1194        'implemented' => false
1195      ), // < XPSubject
1196
1197      // FlashpixVersion, tag 0xA000
1198      0xA000 => Array(
1199        'tagName'     => "FlashpixVersion",
1200        'schema'      => "exif",
1201        'translatable'=> false,
1202        'combiTag'    => 0,
1203        'implemented' => true
1204      ), // < FlashpixVersion
1205
1206      // ColorSpace, tag 0xA001
1207      0xA001 => Array(
1208        'tagName'     => "ColorSpace",
1209        'schema'      => "exif",
1210        'translatable'=> true,
1211        'combiTag'    => 0,
1212        'implemented' => true,
1213        'tagValues'   => Array(
1214          0x0001 => "sRGB",
1215          0x0002 => "Adobe RGB",
1216          0xFFFF => "Uncalibrated"
1217        )
1218      ), // < ColorSpace
1219
1220      // PixelXDimension, tag 0xA002
1221      0xA002 => Array(
1222        'tagName'     => "PixelXDimension",
1223        'schema'      => "exif",
1224        'translatable'=> false,
1225        'combiTag'    => 0,
1226        'implemented' => true
1227      ), // < PixelXDimension
1228
1229      // PixelYDimension, tag 0xA003
1230      0xA003 => Array(
1231        'tagName'     => "PixelYDimension",
1232        'schema'      => "exif",
1233        'translatable'=> false,
1234        'combiTag'    => 0,
1235        'implemented' => true
1236      ), // < PixelYDimension
1237
1238      // RelatedSoundFile, tag 0xA004
1239      0xA004 => Array(
1240        'tagName'     => "RelatedSoundFile",
1241        'schema'      => "exif",
1242        'translatable'=> false,
1243        'combiTag'    => 0,
1244        'implemented' => false
1245      ), // < RelatedSoundFile
1246
1247      // Interoperability IFD Pointer, tag 0xA005
1248      0xA005 => Array(
1249        'tagName'     => "Interoperability IFD Pointer",
1250        'schema'      => "",
1251        'translatable'=> false,
1252        'combiTag'    => 0,
1253        'implemented' => false
1254      ), // < Interoperability IFD Pointer
1255
1256      // FlashEnergy, tag 0xA20B
1257      0xA20B => Array(
1258        'tagName'     => "exif",
1259        'schema'      => "tiff",
1260        'translatable'=> false,
1261        'combiTag'    => 0,
1262        'implemented' => true
1263      ), // < FlashEnergy
1264
1265      // SpatialFrequencyResponse, tag 0xA20C
1266      0xA20C => Array(
1267        'tagName'     => "SpatialFrequencyResponse",
1268        'schema'      => "",
1269        'translatable'=> false,
1270        'combiTag'    => 0,
1271        'implemented' => false
1272      ), // < SpatialFrequencyResponse
1273
1274
1275      // Noise, tag 0xA20D
1276      0xA20D => Array(
1277        'tagName'     => "Noise",
1278        'schema'      => "",
1279        'translatable'=> false,
1280        'combiTag'    => 0,
1281        'implemented' => false
1282      ), // < Noise
1283
1284      // FocalPlaneXResolution, tag 0xA20E
1285      0xA20E => Array(
1286        'tagName'     => "FocalPlaneXResolution",
1287        'schema'      => "exif",
1288        'translatable'=> false,
1289        'combiTag'    => 0,
1290        'implemented' => true
1291      ), // < FocalPlaneXResolution
1292
1293      // FocalPlaneYResolution, tag 0xA20F
1294      0xA20F => Array(
1295        'tagName'     => "FocalPlaneYResolution",
1296        'schema'      => "exif",
1297        'translatable'=> false,
1298        'combiTag'    => 0,
1299        'implemented' => true
1300      ), // < FocalPlaneXResolution
1301
1302      // FocalPlaneResolutionUnit, tag 0xA210
1303      0xA210 => Array(
1304        'tagName'     => "FocalPlaneResolutionUnit",
1305        'schema'      => "exif",
1306        'translatable'=> true,
1307        'combiTag'    => 0,
1308        'implemented' => true,
1309        'tagValues'   => Array(
1310          0x0001 => "none",
1311          0x0002 => "inches",
1312          0x0003 => "centimeters",
1313          0x0004 => "millimeters",
1314          0x0005 => "micrometers",
1315        )
1316      ), // < FocalPlaneResolutionUnit
1317
1318      // SubjectLocation, tag 0xA214
1319      0xA214 => Array(
1320        'tagName'     => "SubjectLocation",
1321        'schema'      => "exif",
1322        'translatable'=> false,
1323        'combiTag'    => 0,
1324        'implemented' => false
1325      ), // < SubjectLocation
1326
1327      // ExposureIndex, tag 0xA215
1328      0xA215 => Array(
1329        'tagName'     => "ExposureIndex",
1330        'schema'      => "exif",
1331        'translatable'=> false,
1332        'combiTag'    => 0,
1333        'implemented' => true
1334      ), // < ExposureIndex
1335
1336      // SensingMethod, tag 0xA217
1337      0xA217 => Array(
1338        'tagName'     => "SensingMethod",
1339        'schema'      => "exif",
1340        'translatable'=> true,
1341        'combiTag'    => 0,
1342        'implemented' => true,
1343        'tagValues'   => Array(
1344          0x01 => "not defined",
1345          0x02 => "one-chip color area sensor",
1346          0x03 => "two-chip color area sensor",
1347          0x04 => "three-chip color area sensor",
1348          0x05 => "color sequential area sensor",
1349          0x07 => "trilinear sensor",
1350          0x08 => "color sequential linear sensor",
1351        )
1352      ), // < SensingMethod
1353
1354      // FileSource, tag 0xA300
1355      0xA300 => Array(
1356        'tagName'     => "FileSource",
1357        'schema'      => "exif",
1358        'translatable'=> true,
1359        'combiTag'    => 0,
1360        'implemented' => true,
1361        'tagValues'   => Array(
1362          0x01 => "film scanner",
1363          0x02 => "reflection print scanner",
1364          0x03 => "DSC"
1365        )
1366      ), // < FileSource
1367
1368      // SceneType, tag 0xA301
1369      0xA301 => Array(
1370        'tagName'     => "SceneType",
1371        'schema'      => "exif",
1372        'translatable'=> true,
1373        'combiTag'    => 0,
1374        'implemented' => true,
1375        'tagValues'   => Array(
1376          0x01 => "a directly photographed image"
1377        )
1378      ), // < SceneType
1379
1380      // CFAPattern, tag 0xA302
1381      0xA302 => Array(
1382        'tagName'     => "CFAPattern",
1383        'schema'      => "exif",
1384        'translatable'=> false,
1385        'combiTag'    => 0,
1386        'implemented' => false
1387      ), // < CFAPattern
1388
1389      // CustomRendered, tag 0xA401
1390      0xA401 => Array(
1391        'tagName'     => "CustomRendered",
1392        'schema'      => "exif",
1393        'translatable'=> true,
1394        'combiTag'    => 0,
1395        'implemented' => true,
1396        'tagValues'   => Array(
1397          0x00 => "normal process",
1398          0x01 => "custom process"
1399        )
1400      ), // < CustomRendered
1401
1402      // ExposureMode, tag 0xA402
1403      0xA402 => Array(
1404        'tagName'     => "ExposureMode",
1405        'schema'      => "exif",
1406        'translatable'=> true,
1407        'combiTag'    => 0,
1408        'implemented' => true,
1409        'tagValues'   => Array(
1410          0x00 => "auto exposure",
1411          0x01 => "manual exposure",
1412          0x03 => "auto bracket"
1413        )
1414      ), // < ExposureMode
1415
1416      // Balance, tag 0xA403
1417      0xA403 => Array(
1418        'tagName'     => "Balance",
1419        'schema'      => "exif",
1420        'translatable'=> true,
1421        'combiTag'    => 0,
1422        'implemented' => true,
1423        'tagValues'   => Array(
1424          0x00 => "auto white balance",
1425          0x01 => "manual white balance"
1426        )
1427      ), // < Balance
1428
1429      // DigitalZoomRatio, tag 0xA404
1430      0xA404 => Array(
1431        'tagName'     => "DigitalZoomRatio",
1432        'schema'      => "exif",
1433        'translatable'=> false,
1434        'combiTag'    => 0,
1435        'implemented' => true
1436      ), // < DigitalZoomRatio
1437
1438
1439      // FocalLengthIn35mmFilm, tag 0xA405
1440      0xA405 => Array(
1441        'tagName'     => "FocalLengthIn35mmFilm",
1442        'schema'      => "exif",
1443        'translatable'=> false,
1444        'combiTag'    => 0,
1445        'implemented' => true
1446      ), // < FocalLengthIn35mmFilm
1447
1448      // SceneCaptureType, tag 0xA406
1449      0xA406 => Array(
1450        'tagName'     => "SceneCaptureType",
1451        'schema'      => "exif",
1452        'translatable'=> true,
1453        'combiTag'    => 0,
1454        'implemented' => true,
1455        'tagValues'   => Array(
1456          0x00 => "standard",
1457          0x01 => "landscape",
1458          0x02 => "portrait",
1459          0x03 => "night scene"
1460        )
1461      ), // < SceneCaptureType
1462
1463      // GainControl, tag 0xA407
1464      0xA407 => Array(
1465        'tagName'     => "GainControl",
1466        'schema'      => "exif",
1467        'translatable'=> true,
1468        'combiTag'    => 0,
1469        'implemented' => true,
1470        'tagValues'   => Array(
1471          0x00 => "none",
1472          0x01 => "low gain up",
1473          0x02 => "high gain up",
1474          0x03 => "low gain down",
1475          0x04 => "high gain down"
1476        )
1477      ), // < GainControl
1478
1479      // Contrast, tag 0xA408
1480      0xA408 => Array(
1481        'tagName'     => "Contrast",
1482        'schema'      => "exif",
1483        'translatable'=> true,
1484        'combiTag'    => 0,
1485        'implemented' => true,
1486        'tagValues'   => Array(
1487          0x00 => "normal",
1488          0x01 => "low",
1489          0x02 => "high"
1490        )
1491      ), // < Contrast
1492
1493      // Saturation, tag 0xA409
1494      0xA409 => Array(
1495        'tagName'     => "Saturation",
1496        'schema'      => "exif",
1497        'translatable'=> true,
1498        'combiTag'    => 0,
1499        'implemented' => true,
1500        'tagValues'   => Array(
1501          0x00 => "normal",
1502          0x01 => "low",
1503          0x02 => "high"
1504        )
1505      ), // < Saturation
1506
1507      // Sharpness, tag 0xA40A
1508      0xA40A => Array(
1509        'tagName'     => "Sharpness",
1510        'schema'      => "exif",
1511        'translatable'=> true,
1512        'combiTag'    => 0,
1513        'implemented' => true,
1514        'tagValues'   => Array(
1515          0x00 => "normal",
1516          0x01 => "low",
1517          0x02 => "high"
1518        )
1519      ), // < Sharpness
1520
1521      // DeviceSettingDescription, tag 0xA40B
1522      0xA40B => Array(
1523        'tagName'     => "DeviceSettingDescription",
1524        'schema'      => "exif",
1525        'translatable'=> false,
1526        'combiTag'    => 0,
1527        'implemented' => false
1528      ), // < DeviceSettingDescription
1529
1530      // SubjectDistanceRange, tag 0xA40C
1531      0xA40C => Array(
1532        'tagName'     => "SubjectDistanceRange",
1533        'schema'      => "exif",
1534        'translatable'=> true,
1535        'combiTag'    => 0,
1536        'implemented' => true,
1537        'tagValues'   => Array(
1538          0x00 => "unknown",
1539          0x01 => "macro",
1540          0x02 => "close",
1541          0x03 => "distant"
1542        )
1543      ), // < SubjectDistanceRange
1544
1545      // ImageUniqueID, tag 0xA420
1546      0xA420 => Array(
1547        'tagName'     => "ImageUniqueID",
1548        'schema'      => "exif",
1549        'translatable'=> false,
1550        'combiTag'    => 0,
1551        'implemented' => false
1552      ), // < ImageUniqueID
1553
1554
1555      // Gamma, tag 0xA500
1556      0xA500 => Array(
1557        'tagName'     => "Gamma",
1558        'schema'      => "exif",
1559        'translatable'=> false,
1560        'combiTag'    => 0,
1561        'implemented' => false
1562      ), // < Gamma
1563
1564      // PrintIM, tag 0xC4A5
1565      0xC4A5 => Array(
1566        'tagName'     => "PrintIM",
1567        'schema'      => "tiff",
1568        'translatable'=> false,
1569        'combiTag'    => 0,
1570        'implemented' => false
1571      ), // < ImageUniqueID
1572
1573    );
1574  }
1575
1576
1577?>
Note: See TracBrowser for help on using the repository browser.