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

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

Start to implement Canon camera's maker note

  • Property svn:executable set to *
File size: 46.7 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'      => "tiff",
420        'translatable'=> false,
421        'combiTag'    => 0,
422        'implemented' => false
423      ), // < FreeOffsets
424
425      // FreeByteCounts, tag 0x0121
426      0x0121 => Array(
427        'tagName'     => "FreeByteCounts",
428        'schema'      => "unknown",
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'      => "unknown",
454        'translatable'=> false,
455        'combiTag'    => 0,
456        'implemented' => false
457      ), // < GrayResponseCurve
458
459      // T4Options, tag 0x0124
460      0x0124 => Array(
461        'tagName'     => "T4Options",
462        'schema'      => "unknown",
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'      => "unknown",
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'      => "unknown",
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'      => "tiff",
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'      => "tiff",
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'      => "unknown",
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'      => "tiff",
733        'translatable'=> false,
734        'combiTag'    => 0,
735        'implemented' => false  // set to false even if the tag management is
736                                // implemented, the IFD pointer can't be
737                                // exploited as a classic metadata
738      ), // < Exif IFD Pointer
739
740      // ICC_Profile, tag 0x8773
741      0x8773 => Array(
742        'tagName'     => "ICC_Profile",
743        'schema'      => "unknown",
744        'translatable'=> false,
745        'combiTag'    => 0,
746        'implemented' => false
747      ), // < ICC_Profile
748
749
750      // ExposureProgram, tag 0x8822
751      0x8822 => Array(
752        'tagName'     => "ExposureProgram",
753        'schema'      => "exif",
754        'translatable'=> true,
755        'combiTag'    => 0,
756        'implemented' => true,
757        'tagValues'   => Array(
758          0x00 => "not defined",
759          0x01 => "manual",
760          0x02 => "normal program",
761          0x03 => "aperture priority",
762          0x04 => "shutter priority",
763          0x05 => "creative program",
764          0x06 => "action program",
765          0x07 => "portrait mode",
766          0x08 => "landscape mode"
767        )
768      ), // < ExposureProgram
769
770      // SpectralSensitivity, tag 0x8824
771      0x8824 => Array(
772        'tagName'     => "SpectralSensitivity",
773        'schema'      => "exif",
774        'translatable'=> false,
775        'combiTag'    => 0,
776        'implemented' => true
777      ), // < SpectralSensitivity
778
779      // GPS IFD Pointer, tag 0x8825
780      0x8825 => Array(
781        'tagName'     => "GPS IFD Pointer",
782        'schema'      => "tiff",
783        'translatable'=> false,
784        'combiTag'    => 0,
785        'implemented' => false  // set to false even if the tag management is
786                                // implemented, the IFD pointer can't be
787                                // exploited as a classic metadata
788      ), // < GPS IFD Pointer
789
790      // ISOSpeedRatings, tag 0x8827
791      0x8827 => Array(
792        'tagName'     => "ISOSpeedRatings",
793        'schema'      => "exif",
794        'translatable'=> false,
795        'combiTag'    => 0,
796        'implemented' => true
797      ), // < ISOSpeedRatings
798
799      // OECF, tag 0x8828
800      0x8828 => Array(
801        'tagName'     => "OECF",
802        'schema'      => "exif",
803        'translatable'=> false,
804        'combiTag'    => 0,
805        'implemented' => false
806      ), // < OECF
807
808      // TimeZoneOffset, tag 0x882A
809      0x882A => Array(
810        'tagName'     => "TimeZoneOffset",
811        'schema'      => "exif",
812        'translatable'=> false,
813        'combiTag'    => 0,
814        'implemented' => false
815      ), // < TimeZoneOffset
816
817      // SelfTimerMode, tag 0x882B
818      0x882A => Array(
819        'tagName'     => "SelfTimerMode",
820        'schema'      => "exif",
821        'translatable'=> false,
822        'combiTag'    => 0,
823        'implemented' => false
824      ), // < SelfTimerMode
825
826      // ExifVersion, tag 0x9000
827      0x9000 => Array(
828        'tagName'     => "ExifVersion",
829        'schema'      => "exif",
830        'translatable'=> false,
831        'combiTag'    => 0,
832        'implemented' => true
833      ), // < ExifVersion
834
835      // DateTimeOriginal, tag 0x9003, "YYYY:MM:DD HH:MM:SS"
836      0x9003 => Array(
837        'tagName'     => "DateTimeOriginal",
838        'schema'      => "exif",
839        'translatable'=> false,
840        'combiTag'    => 0,
841        'implemented' => true
842      ), // < DateTimeOriginal
843
844      // DateTimeDigitized, tag 0x9004, "YYYY:MM:DD HH:MM:SS"
845      0x9004 => Array(
846        'tagName'     => "DateTimeDigitized",
847        'schema'      => "exif",
848        'translatable'=> false,
849        'combiTag'    => 0,
850        'implemented' => true
851      ), // < DateTimeDigitized
852
853
854      // ComponentsConfiguration, tag 0x9101
855      0x9101 => Array(
856        'tagName'     => "ComponentsConfiguration",
857        'schema'      => "exif",
858        'translatable'=> false,
859        'combiTag'    => 0,
860        'implemented' => true
861      ), // < ComponentsConfiguration
862
863      // CompressedBitsPerPixel, tag 0x9102
864      0x9102 => Array(
865        'tagName'     => "CompressedBitsPerPixel",
866        'schema'      => "exif",
867        'translatable'=> false,
868        'combiTag'    => 0,
869        'implemented' => true
870      ), // < CompressedBitsPerPixel
871
872      // ShutterSpeedValue, tag 0x9201
873      0x9201 => Array(
874        'tagName'     => "ShutterSpeedValue",
875        'schema'      => "exif",
876        'translatable'=> false,
877        'combiTag'    => 0,
878        'implemented' => true
879      ), // < ShutterSpeedValue
880
881      // ApertureValue, tag 0x9202
882      0x9202 => Array(
883        'tagName'     => "ApertureValue",
884        'schema'      => "exif",
885        'translatable'=> false,
886        'combiTag'    => 0,
887        'implemented' => true
888      ), // < ApertureValue
889
890      // BrightnessValue, tag 0x9203
891      0x9203 => Array(
892        'tagName'     => "BrightnessValue",
893        'schema'      => "exif",
894        'translatable'=> false,
895        'combiTag'    => 0,
896        'implemented' => true
897      ), // < BrightnessValue
898
899      // ExposureBiasValue, tag 0x9204
900      0x9204 => Array(
901        'tagName'     => "ExposureBiasValue",
902        'schema'      => "exif",
903        'translatable'=> false,
904        'combiTag'    => 0,
905        'implemented' => true
906      ), // < ExposureBiasValue
907
908      // MaxApertureValue, tag 0x9205
909      0x9205 => Array(
910        'tagName'     => "MaxApertureValue",
911        'schema'      => "exif",
912        'translatable'=> false,
913        'combiTag'    => 0,
914        'implemented' => true
915      ), // < MaxApertureValue
916
917      // SubjectDistance, tag 0x9206
918      0x9206 => Array(
919        'tagName'     => "SubjectDistance",
920        'schema'      => "exif",
921        'translatable'=> false,
922        'combiTag'    => 0,
923        'implemented' => true
924      ), // < SubjectDistance
925
926      // MeteringMode, tag 0x9207
927      0x9207 => Array(
928        'tagName'     => "MeteringMode",
929        'schema'      => "exif",
930        'translatable'=> true,
931        'combiTag'    => 0,
932        'implemented' => true,
933        'tagValues'   => Array(
934          0x0000 => "unknown",
935          0x0001 => "average",
936          0x0002 => "CenterWeightedAverage",
937          0x0003 => "spot",
938          0x0004 => "multispot",
939          0x0005 => "pattern",
940          0x0006 => "partial",
941          0x00ff => "other"
942        )
943      ), // < MeteringMode
944
945      // LightSource, tag 0x9208
946      0x9208 => Array(
947        'tagName'     => "LightSource",
948        'schema'      => "exif",
949        'translatable'=> true,
950        'combiTag'    => 0,
951        'implemented' => true,
952        'tagValues'   => Array(
953          0x0000 => "unknown",
954          0x0001 => "daylight",
955          0x0002 => "fluorescent",
956          0x0003 => "tungsten (incandescent light)",
957          0x0004 => "flash",
958          0x0009 => "fine weather",
959          0x000a => "cloudy weather",
960          0x000b => "shade",
961          0x000c => "daylight fluorescent (D 5700 - 7100K)",
962          0x000d => "day white fluorescent (N 4600 - 5400K)",
963          0x000e => "cool white fluorescent (W 3900 - 4500K)",
964          0x000f => "white fluorescent (WW 3200 - 3700K)",
965          0x0011 => "standard light A",
966          0x0012 => "standard light B",
967          0x0013 => "standard light C",
968          0x0014 => "D55",
969          0x0015 => "D65",
970          0x0016 => "D75",
971          0x0017 => "D50",
972          0x0018 => "ISO studio tungsten",
973          0x00ff => "other light source"
974        )
975      ), // < LightSource
976
977      // flash, tag 0x9209, see EXIF 2.2 documentation
978      0x9209 => Array(
979        'tagName'     => "flash",
980        'schema'      => "exif",
981        'translatable'=> true,
982        'combiTag'    => 0,
983        'implemented' => true,
984        'tagValues.specialNames'   => Array(
985                  0x00 => "flash fired",
986                  0x06 => "returned light",
987                  0x18 => "flash mode",
988                  0x20 => "flash function",
989                  0x40 => "red-eye mode"
990                ),
991        'tagValues.specialValues' => Array(
992          0x0000 => Array( // b00000001
993                  0x00 => "flash did not fire",
994                  0x01 => "flash fired"
995                ),
996          0x0006 => Array( // b00000110
997                  0x00 => "no strobe",                        // 00
998                  0x01 => "reserved",                         // 01
999                  0x02 => "strobe return light not detected", // 10
1000                  0x03 => "strobe return light detected"      // 11
1001                ),
1002          0x0018 => Array( // b00011000
1003                  0x00 => "unknown",
1004                  0x01 => "compulsory flash firing",
1005                  0x10 => "compulsory flash suppression",
1006                  0x11 => "auto mode"
1007                ),
1008          0x0020 => Array( // b00100000
1009                  0x00 => "flash function present",
1010                  0x01 => "no flash function"
1011                ),
1012          0x0040 => Array( // b01000000
1013                  0x00 => "no red-eye reduction mode or unknown",
1014                  0x01 => "red-eye reduction supported"
1015                ),
1016        ),
1017        'tagValues.computed' => Array(
1018          0x0000 => "no flash",
1019          0x0001 => "fired",
1020          0x0005 => "fired, return not detected",
1021          0x0007 => "fired, return detected",
1022          0x0008 => "on, did not fire",
1023          0x0009 => "on, fired",
1024          0x000d => "on, return not detected",
1025          0x000f => "on, return detected",
1026          0x0010 => "off, did not fire",
1027          0x0014 => "off, did not fire, return not detected",
1028          0x0018 => "auto, did not fire",
1029          0x0019 => "auto, fired",
1030          0x001d => "auto, fired, return not detected",
1031          0x001f => "auto, fired, return detected",
1032          0x0020 => "no flash function",
1033          0x0030 => "off, no flash function",
1034          0x0041 => "fired, red-eye reduction",
1035          0x0045 => "fired, red-eye reduction, return not detected",
1036          0x0047 => "fired, red-eye reduction, return detected",
1037          0x0049 => "on, red-eye reduction",
1038          0x004d => "on, red-eye reduction, return not detected",
1039          0x004f => "on, red-eye reduction, return detected",
1040          0x0050 => "off, red-eye reduction",
1041          0x0058 => "auto, did not fire, red-eye reduction",
1042          0x0059 => "auto, fired, red-eye reduction",
1043          0x005d => "auto, fired, red-eye reduction, return not detected",
1044          0x005f => "auto, fired, red-eye reduction, return detected",
1045        ),
1046      ), // < flash
1047
1048      // FocalLength, tag 0x920a
1049      0x920a => Array(
1050        'tagName'     => "FocalLength",
1051        'schema'      => "exif",
1052        'translatable'=> false,
1053        'combiTag'    => 0,
1054        'implemented' => true
1055      ), // < FocalLength
1056
1057      // ImageNumber, tag 0x9211
1058      0x9211 => Array(
1059        'tagName'     => "ImageNumber",
1060        'schema'      => "exif",
1061        'translatable'=> false,
1062        'combiTag'    => 0,
1063        'implemented' => false
1064      ), // < ImageNumber
1065
1066      // SecurityClassification, tag 0x9212
1067      0x9212 => Array(
1068        'tagName'     => "SecurityClassification",
1069        'schema'      => "exif",
1070        'translatable'=> true,
1071        'combiTag'    => 0,
1072        'implemented' => true,
1073        'tagValues'   => Array(
1074          "C\x00" => "confidential",
1075          "R\x00" => "restricted",
1076          "S\x00" => "secret",
1077          "T\x00" => "top secret",
1078          "U\x00" => "unclassified",
1079        )
1080      ), // < SecurityClassification
1081
1082      // ImageHistory, tag 0x9213
1083      0x9213 => Array(
1084        'tagName'     => "ImageHistory",
1085        'schema'      => "exif",
1086        'translatable'=> false,
1087        'combiTag'    => 0,
1088        'implemented' => false
1089      ), // < SubjectArea
1090
1091      // SubjectArea, tag 0x9214
1092      0x9214 => Array(
1093        'tagName'     => "SubjectArea",
1094        'schema'      => "exif",
1095        'translatable'=> false,
1096        'combiTag'    => 0,
1097        'implemented' => false
1098      ), // < SubjectArea
1099
1100      // TIFF-EPStandardID, tag 0x9216
1101      0x9216 => Array(
1102        'tagName'     => "TIFF-EPStandardID",
1103        'schema'      => "unknown",
1104        'translatable'=> false,
1105        'combiTag'    => 0,
1106        'implemented' => false
1107      ), // < TIFF-EPStandardID
1108
1109
1110      // MakerNote, tag 0x927c
1111      0x927c => Array(
1112        'tagName'     => "MakerNote",
1113        'schema'      => "exif",
1114        'translatable'=> false,
1115        'combiTag'    => 0,
1116        'implemented' => false  // set to false even if the tag management is
1117                                // implemented, the IFD pointer can't be
1118                                // exploited as a classic metadata
1119      ), // < MakerNote
1120
1121      // UserComment, tag 0x9286, see EXIF2.2 for documentation
1122      0x9286 => Array(
1123        'tagName'     => "UserComment",
1124        'schema'      => "exif",
1125        'translatable'=> false,
1126        'combiTag'    => 0,
1127        'implemented' => true
1128      ), // < UserComment
1129
1130      // SubsecTime, tag 0x9290, see EXIF2.2 for documentation
1131      0x9290 => Array(
1132        'tagName'     => "SubsecTime",
1133        'schema'      => "exif",
1134        'translatable'=> false,
1135        'combiTag'    => 0,
1136        'implemented' => true
1137      ), // < SubsecTime
1138
1139      // SubsecTimeOriginal, tag 0x9291, see EXIF2.2 for documentation
1140      0x9291 => Array(
1141        'tagName'     => "SubsecTimeOriginal",
1142        'schema'      => "exif",
1143        'translatable'=> false,
1144        'combiTag'    => 0,
1145        'implemented' => true
1146      ), // < SubsecTimeOriginal
1147
1148      // SubsecTimeDigitized, tag 0x9292, see EXIF2.2 for documentation
1149      0x9292 => Array(
1150        'tagName'     => "SubsecTimeDigitized",
1151        'schema'      => "exif",
1152        'translatable'=> false,
1153        'combiTag'    => 0,
1154        'implemented' => true
1155      ), // < SubsecTimeDigitized
1156
1157
1158      // XPTitle, tag 0x9c9b
1159      0x9c9b => Array(
1160        'tagName'     => "XPTitle",
1161        'schema'      => "tiff",
1162        'translatable'=> false,
1163        'combiTag'    => 0,
1164        'implemented' => false
1165      ), // < XPTitle
1166
1167      // XPComment, tag 0x9c9c
1168      0x9c9c => Array(
1169        'tagName'     => "XPComment",
1170        'schema'      => "tiff",
1171        'translatable'=> false,
1172        'combiTag'    => 0,
1173        'implemented' => false
1174      ), // < XPComment
1175
1176      // XPAuthor, tag 0x9c9d
1177      0x9c9d => Array(
1178        'tagName'     => "XPAuthor",
1179        'schema'      => "tiff",
1180        'translatable'=> false,
1181        'combiTag'    => 0,
1182        'implemented' => false
1183      ), // < XPAuthor
1184
1185      // XPKeywords, tag 0x9c9e
1186      0x9c9e => Array(
1187        'tagName'     => "XPKeywords",
1188        'schema'      => "tiff",
1189        'translatable'=> false,
1190        'combiTag'    => 0,
1191        'implemented' => false
1192      ), // < XPKeywords
1193
1194      // XPSubject, tag 0x9c9
1195      0x9c9f => Array(
1196        'tagName'     => "XPSubject",
1197        'schema'      => "tiff",
1198        'translatable'=> false,
1199        'combiTag'    => 0,
1200        'implemented' => false
1201      ), // < XPSubject
1202
1203      // FlashpixVersion, tag 0xA000
1204      0xA000 => Array(
1205        'tagName'     => "FlashpixVersion",
1206        'schema'      => "exif",
1207        'translatable'=> false,
1208        'combiTag'    => 0,
1209        'implemented' => true
1210      ), // < FlashpixVersion
1211
1212      // ColorSpace, tag 0xA001
1213      0xA001 => Array(
1214        'tagName'     => "ColorSpace",
1215        'schema'      => "exif",
1216        'translatable'=> true,
1217        'combiTag'    => 0,
1218        'implemented' => true,
1219        'tagValues'   => Array(
1220          0x0001 => "sRGB",
1221          0x0002 => "Adobe RGB",
1222          0xFFFF => "Uncalibrated"
1223        )
1224      ), // < ColorSpace
1225
1226      // PixelXDimension, tag 0xA002
1227      0xA002 => Array(
1228        'tagName'     => "PixelXDimension",
1229        'schema'      => "exif",
1230        'translatable'=> false,
1231        'combiTag'    => 0,
1232        'implemented' => true
1233      ), // < PixelXDimension
1234
1235      // PixelYDimension, tag 0xA003
1236      0xA003 => Array(
1237        'tagName'     => "PixelYDimension",
1238        'schema'      => "exif",
1239        'translatable'=> false,
1240        'combiTag'    => 0,
1241        'implemented' => true
1242      ), // < PixelYDimension
1243
1244      // RelatedSoundFile, tag 0xA004
1245      0xA004 => Array(
1246        'tagName'     => "RelatedSoundFile",
1247        'schema'      => "exif",
1248        'translatable'=> false,
1249        'combiTag'    => 0,
1250        'implemented' => false
1251      ), // < RelatedSoundFile
1252
1253      // Interoperability IFD Pointer, tag 0xA005
1254      0xA005 => Array(
1255        'tagName'     => "Interoperability IFD Pointer",
1256        'schema'      => "exif",
1257        'translatable'=> false,
1258        'combiTag'    => 0,
1259        'implemented' => false
1260      ), // < Interoperability IFD Pointer
1261
1262      // FlashEnergy, tag 0xA20B
1263      0xA20B => Array(
1264        'tagName'     => "exif",
1265        'schema'      => "tiff",
1266        'translatable'=> false,
1267        'combiTag'    => 0,
1268        'implemented' => true
1269      ), // < FlashEnergy
1270
1271      // SpatialFrequencyResponse, tag 0xA20C
1272      0xA20C => Array(
1273        'tagName'     => "SpatialFrequencyResponse",
1274        'schema'      => "exif",
1275        'translatable'=> false,
1276        'combiTag'    => 0,
1277        'implemented' => false
1278      ), // < SpatialFrequencyResponse
1279
1280
1281      // Noise, tag 0xA20D
1282      0xA20D => Array(
1283        'tagName'     => "Noise",
1284        'schema'      => "exif",
1285        'translatable'=> false,
1286        'combiTag'    => 0,
1287        'implemented' => false
1288      ), // < Noise
1289
1290      // FocalPlaneXResolution, tag 0xA20E
1291      0xA20E => Array(
1292        'tagName'     => "FocalPlaneXResolution",
1293        'schema'      => "exif",
1294        'translatable'=> false,
1295        'combiTag'    => 0,
1296        'implemented' => true
1297      ), // < FocalPlaneXResolution
1298
1299      // FocalPlaneYResolution, tag 0xA20F
1300      0xA20F => Array(
1301        'tagName'     => "FocalPlaneYResolution",
1302        'schema'      => "exif",
1303        'translatable'=> false,
1304        'combiTag'    => 0,
1305        'implemented' => true
1306      ), // < FocalPlaneXResolution
1307
1308      // FocalPlaneResolutionUnit, tag 0xA210
1309      0xA210 => Array(
1310        'tagName'     => "FocalPlaneResolutionUnit",
1311        'schema'      => "exif",
1312        'translatable'=> true,
1313        'combiTag'    => 0,
1314        'implemented' => true,
1315        'tagValues'   => Array(
1316          0x0001 => "none",
1317          0x0002 => "inches",
1318          0x0003 => "centimeters",
1319          0x0004 => "millimeters",
1320          0x0005 => "micrometers",
1321        )
1322      ), // < FocalPlaneResolutionUnit
1323
1324      // SubjectLocation, tag 0xA214
1325      0xA214 => Array(
1326        'tagName'     => "SubjectLocation",
1327        'schema'      => "exif",
1328        'translatable'=> false,
1329        'combiTag'    => 0,
1330        'implemented' => false
1331      ), // < SubjectLocation
1332
1333      // ExposureIndex, tag 0xA215
1334      0xA215 => Array(
1335        'tagName'     => "ExposureIndex",
1336        'schema'      => "exif",
1337        'translatable'=> false,
1338        'combiTag'    => 0,
1339        'implemented' => true
1340      ), // < ExposureIndex
1341
1342      // SensingMethod, tag 0xA217
1343      0xA217 => Array(
1344        'tagName'     => "SensingMethod",
1345        'schema'      => "exif",
1346        'translatable'=> true,
1347        'combiTag'    => 0,
1348        'implemented' => true,
1349        'tagValues'   => Array(
1350          0x01 => "not defined",
1351          0x02 => "one-chip color area sensor",
1352          0x03 => "two-chip color area sensor",
1353          0x04 => "three-chip color area sensor",
1354          0x05 => "color sequential area sensor",
1355          0x07 => "trilinear sensor",
1356          0x08 => "color sequential linear sensor",
1357        )
1358      ), // < SensingMethod
1359
1360      // FileSource, tag 0xA300
1361      0xA300 => Array(
1362        'tagName'     => "FileSource",
1363        'schema'      => "exif",
1364        'translatable'=> true,
1365        'combiTag'    => 0,
1366        'implemented' => true,
1367        'tagValues'   => Array(
1368          0x01 => "film scanner",
1369          0x02 => "reflection print scanner",
1370          0x03 => "DSC"
1371        )
1372      ), // < FileSource
1373
1374      // SceneType, tag 0xA301
1375      0xA301 => Array(
1376        'tagName'     => "SceneType",
1377        'schema'      => "exif",
1378        'translatable'=> true,
1379        'combiTag'    => 0,
1380        'implemented' => true,
1381        'tagValues'   => Array(
1382          0x01 => "a directly photographed image"
1383        )
1384      ), // < SceneType
1385
1386      // CFAPattern, tag 0xA302
1387      0xA302 => Array(
1388        'tagName'     => "CFAPattern",
1389        'schema'      => "exif",
1390        'translatable'=> false,
1391        'combiTag'    => 0,
1392        'implemented' => false
1393      ), // < CFAPattern
1394
1395      // CustomRendered, tag 0xA401
1396      0xA401 => Array(
1397        'tagName'     => "CustomRendered",
1398        'schema'      => "exif",
1399        'translatable'=> true,
1400        'combiTag'    => 0,
1401        'implemented' => true,
1402        'tagValues'   => Array(
1403          0x00 => "normal process",
1404          0x01 => "custom process"
1405        )
1406      ), // < CustomRendered
1407
1408      // ExposureMode, tag 0xA402
1409      0xA402 => Array(
1410        'tagName'     => "ExposureMode",
1411        'schema'      => "exif",
1412        'translatable'=> true,
1413        'combiTag'    => 0,
1414        'implemented' => true,
1415        'tagValues'   => Array(
1416          0x00 => "auto exposure",
1417          0x01 => "manual exposure",
1418          0x03 => "auto bracket"
1419        )
1420      ), // < ExposureMode
1421
1422      // Balance, tag 0xA403
1423      0xA403 => Array(
1424        'tagName'     => "Balance",
1425        'schema'      => "exif",
1426        'translatable'=> true,
1427        'combiTag'    => 0,
1428        'implemented' => true,
1429        'tagValues'   => Array(
1430          0x00 => "auto white balance",
1431          0x01 => "manual white balance"
1432        )
1433      ), // < Balance
1434
1435      // DigitalZoomRatio, tag 0xA404
1436      0xA404 => Array(
1437        'tagName'     => "DigitalZoomRatio",
1438        'schema'      => "exif",
1439        'translatable'=> false,
1440        'combiTag'    => 0,
1441        'implemented' => true
1442      ), // < DigitalZoomRatio
1443
1444
1445      // FocalLengthIn35mmFilm, tag 0xA405
1446      0xA405 => Array(
1447        'tagName'     => "FocalLengthIn35mmFilm",
1448        'schema'      => "exif",
1449        'translatable'=> false,
1450        'combiTag'    => 0,
1451        'implemented' => true
1452      ), // < FocalLengthIn35mmFilm
1453
1454      // SceneCaptureType, tag 0xA406
1455      0xA406 => Array(
1456        'tagName'     => "SceneCaptureType",
1457        'schema'      => "exif",
1458        'translatable'=> true,
1459        'combiTag'    => 0,
1460        'implemented' => true,
1461        'tagValues'   => Array(
1462          0x00 => "standard",
1463          0x01 => "landscape",
1464          0x02 => "portrait",
1465          0x03 => "night scene"
1466        )
1467      ), // < SceneCaptureType
1468
1469      // GainControl, tag 0xA407
1470      0xA407 => Array(
1471        'tagName'     => "GainControl",
1472        'schema'      => "exif",
1473        'translatable'=> true,
1474        'combiTag'    => 0,
1475        'implemented' => true,
1476        'tagValues'   => Array(
1477          0x00 => "none",
1478          0x01 => "low gain up",
1479          0x02 => "high gain up",
1480          0x03 => "low gain down",
1481          0x04 => "high gain down"
1482        )
1483      ), // < GainControl
1484
1485      // Contrast, tag 0xA408
1486      0xA408 => Array(
1487        'tagName'     => "Contrast",
1488        'schema'      => "exif",
1489        'translatable'=> true,
1490        'combiTag'    => 0,
1491        'implemented' => true,
1492        'tagValues'   => Array(
1493          0x00 => "normal",
1494          0x01 => "low",
1495          0x02 => "high"
1496        )
1497      ), // < Contrast
1498
1499      // Saturation, tag 0xA409
1500      0xA409 => Array(
1501        'tagName'     => "Saturation",
1502        'schema'      => "exif",
1503        'translatable'=> true,
1504        'combiTag'    => 0,
1505        'implemented' => true,
1506        'tagValues'   => Array(
1507          0x00 => "normal",
1508          0x01 => "low",
1509          0x02 => "high"
1510        )
1511      ), // < Saturation
1512
1513      // Sharpness, tag 0xA40A
1514      0xA40A => Array(
1515        'tagName'     => "Sharpness",
1516        'schema'      => "exif",
1517        'translatable'=> true,
1518        'combiTag'    => 0,
1519        'implemented' => true,
1520        'tagValues'   => Array(
1521          0x00 => "normal",
1522          0x01 => "low",
1523          0x02 => "high"
1524        )
1525      ), // < Sharpness
1526
1527      // DeviceSettingDescription, tag 0xA40B
1528      0xA40B => Array(
1529        'tagName'     => "DeviceSettingDescription",
1530        'schema'      => "exif",
1531        'translatable'=> false,
1532        'combiTag'    => 0,
1533        'implemented' => false
1534      ), // < DeviceSettingDescription
1535
1536      // SubjectDistanceRange, tag 0xA40C
1537      0xA40C => Array(
1538        'tagName'     => "SubjectDistanceRange",
1539        'schema'      => "exif",
1540        'translatable'=> true,
1541        'combiTag'    => 0,
1542        'implemented' => true,
1543        'tagValues'   => Array(
1544          0x00 => "unknown",
1545          0x01 => "macro",
1546          0x02 => "close",
1547          0x03 => "distant"
1548        )
1549      ), // < SubjectDistanceRange
1550
1551      // ImageUniqueID, tag 0xA420
1552      0xA420 => Array(
1553        'tagName'     => "ImageUniqueID",
1554        'schema'      => "exif",
1555        'translatable'=> false,
1556        'combiTag'    => 0,
1557        'implemented' => false
1558      ), // < ImageUniqueID
1559
1560
1561      // Gamma, tag 0xA500
1562      0xA500 => Array(
1563        'tagName'     => "Gamma",
1564        'schema'      => "exif",
1565        'translatable'=> false,
1566        'combiTag'    => 0,
1567        'implemented' => false
1568      ), // < Gamma
1569
1570      // PrintIM, tag 0xC4A5
1571      0xC4A5 => Array(
1572        'tagName'     => "PrintIM",
1573        'schema'      => "tiff",
1574        'translatable'=> false,
1575        'combiTag'    => 0,
1576        'implemented' => false
1577      ), // < ImageUniqueID
1578
1579    );
1580
1581    function __destruct()
1582    {
1583      parent::__destruct();
1584    }
1585  }
1586
1587
1588?>
Note: See TracBrowser for help on using the repository browser.