exiftool_vendored 11.49.0 → 11.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +16 -1
  3. data/bin/MANIFEST +2 -0
  4. data/bin/META.json +4 -3
  5. data/bin/META.yml +15 -14
  6. data/bin/README +7 -5
  7. data/bin/config_files/rotate_regions.config +173 -0
  8. data/bin/config_files/tiff_version.config +121 -0
  9. data/bin/exiftool +16 -15
  10. data/bin/lib/Image/ExifTool.pm +26 -19
  11. data/bin/lib/Image/ExifTool.pod +5 -2
  12. data/bin/lib/Image/ExifTool/Audible.pm +2 -2
  13. data/bin/lib/Image/ExifTool/BuildTagLookup.pm +25 -21
  14. data/bin/lib/Image/ExifTool/Canon.pm +13 -9
  15. data/bin/lib/Image/ExifTool/CanonVRD.pm +4 -4
  16. data/bin/lib/Image/ExifTool/DjVu.pm +1 -2
  17. data/bin/lib/Image/ExifTool/EXE.pm +1 -1
  18. data/bin/lib/Image/ExifTool/Exif.pm +44 -6
  19. data/bin/lib/Image/ExifTool/FLIR.pm +1 -1
  20. data/bin/lib/Image/ExifTool/FlashPix.pm +12 -9
  21. data/bin/lib/Image/ExifTool/GPS.pm +3 -3
  22. data/bin/lib/Image/ExifTool/GoPro.pm +4 -4
  23. data/bin/lib/Image/ExifTool/H264.pm +2 -2
  24. data/bin/lib/Image/ExifTool/HP.pm +1 -1
  25. data/bin/lib/Image/ExifTool/Kodak.pm +1 -1
  26. data/bin/lib/Image/ExifTool/MIE.pm +3 -3
  27. data/bin/lib/Image/ExifTool/MPF.pm +2 -2
  28. data/bin/lib/Image/ExifTool/MWG.pm +1 -1
  29. data/bin/lib/Image/ExifTool/MacOS.pm +2 -2
  30. data/bin/lib/Image/ExifTool/Matroska.pm +1 -1
  31. data/bin/lib/Image/ExifTool/Minolta.pm +58 -56
  32. data/bin/lib/Image/ExifTool/Nikon.pm +1 -1
  33. data/bin/lib/Image/ExifTool/Olympus.pm +2 -2
  34. data/bin/lib/Image/ExifTool/OpenEXR.pm +2 -2
  35. data/bin/lib/Image/ExifTool/PDF.pm +4 -4
  36. data/bin/lib/Image/ExifTool/PICT.pm +3 -3
  37. data/bin/lib/Image/ExifTool/PNG.pm +2 -2
  38. data/bin/lib/Image/ExifTool/Pentax.pm +1 -1
  39. data/bin/lib/Image/ExifTool/Photoshop.pm +1 -2
  40. data/bin/lib/Image/ExifTool/PostScript.pm +4 -4
  41. data/bin/lib/Image/ExifTool/QuickTime.pm +37 -15
  42. data/bin/lib/Image/ExifTool/RIFF.pm +3 -2
  43. data/bin/lib/Image/ExifTool/RSRC.pm +1 -1
  44. data/bin/lib/Image/ExifTool/Samsung.pm +1 -1
  45. data/bin/lib/Image/ExifTool/Sony.pm +4 -2
  46. data/bin/lib/Image/ExifTool/TagInfoXML.pm +2 -2
  47. data/bin/lib/Image/ExifTool/TagLookup.pm +9 -7
  48. data/bin/lib/Image/ExifTool/TagNames.pod +31 -21
  49. data/bin/lib/Image/ExifTool/VCard.pm +1 -1
  50. data/bin/lib/Image/ExifTool/Validate.pm +2 -2
  51. data/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
  52. data/bin/lib/Image/ExifTool/WriteQuickTime.pl +1 -1
  53. data/bin/lib/Image/ExifTool/Writer.pl +11 -6
  54. data/bin/lib/Image/ExifTool/XMP.pm +3 -7
  55. data/bin/lib/Image/ExifTool/XMPStruct.pl +2 -1
  56. data/bin/lib/Image/ExifTool/ZIP.pm +1 -1
  57. data/bin/lib/Image/ExifTool/iWork.pm +1 -1
  58. data/bin/perl-Image-ExifTool.spec +3 -3
  59. data/lib/exiftool_vendored/version.rb +1 -1
  60. metadata +4 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c69141b760c60a11aa7d4f8e3f05c79f392db21a
4
- data.tar.gz: 12554c7e4ee7d9a5ad9fb81412fd0077040098db
3
+ metadata.gz: e698f7b3e0b0d832195da16b3303c8c913fc39ff
4
+ data.tar.gz: 56345fda76bb7c49c0fc8d262d53d27f2aec9e55
5
5
  SHA512:
6
- metadata.gz: 9235968abcf4c684db6037684304e5e3607e47e43cf6afe24eab1bf16114880088015e0385998abe252938cac5023c3a5ef625ee95890c803a2ef7198a8c2b82
7
- data.tar.gz: 9cf9cb7cada7d74bf887f41e95b97d8b64d7738ce1ac327d16f361550b15fab29a47fca45b4320b4536db95cdce542eb0bccd878f9fce6aa9825fe585a19b1e9
6
+ metadata.gz: '08a077f0a714a29e332430f59981c16ea00d18bbea887c940511cb7f2f4c03403c8b8b63e44328b0d7accec8e992a744eee74868832ced8c4b552e639ddd903d'
7
+ data.tar.gz: d96983fd20e4de4d4bd24bf8711cbf063f77c7b21665968fa3b9fb93d29464e77466683d8c7a184794dcfb3557a78c4b94f6be33a0f5478039f33701035f5958
data/bin/Changes CHANGED
@@ -4,9 +4,24 @@ ExifTool Version History
4
4
 
5
5
  RSS feed: http://owl.phy.queensu.ca/~phil/exiftool/rss.xml
6
6
 
7
- Note: The most recent production release is Version 11.30. (Other versions are
7
+ Note: The most recent production release is Version 11.50. (Other versions are
8
8
  considered development releases, and are not uploaded to CPAN.)
9
9
 
10
+ June 11, 2019 - Version 11.50 (production release)
11
+
12
+ - Added a new Canon LensType and two new Sony LensTypes (thanks LibRaw)
13
+ - Added tiff_version and rotate_regions config files to the distribution
14
+ - Added two new QuickTime Keys tags and made some existing Keys unwritable
15
+ - Improved Composite LensID logic to make better use of EXIF LensModel
16
+ - Improved logic when writing BinaryData tags to allow multiple interdependent
17
+ tags to be written in a single command
18
+ - Improved -htmldump output to show names of Unknown tags
19
+ - Allow advanced formatting expressions to access the current tag key ($tag)
20
+ - Remove escaped nulls from -json string values
21
+ - Reverted change in ExifTool 11.38 so that Composite GPS reference directions
22
+ are generated again even if the EXIF versions of these tags already exist
23
+ - Fixed an incorrect FlashPix CodePage conversion
24
+
10
25
  June 5, 2019 - Version 11.49
11
26
 
12
27
  - Added inverse print conversion for one of the QuickTime ItemList Genre tags
data/bin/MANIFEST CHANGED
@@ -26,6 +26,8 @@ config_files/mini0806.config
26
26
  config_files/nksc.config
27
27
  config_files/photoshop_paths.config
28
28
  config_files/picasa_faces.config
29
+ config_files/rotate_regions.config
30
+ config_files/tiff_version.config
29
31
  config_files/time_zone.config
30
32
  exiftool
31
33
  fmt_files/gpx.fmt
data/bin/META.json CHANGED
@@ -4,13 +4,13 @@
4
4
  "Phil Harvey (phil@owl.phy.queensu.ca)"
5
5
  ],
6
6
  "dynamic_config" : 1,
7
- "generated_by" : "ExtUtils::MakeMaker version 6.66, CPAN::Meta::Converter version 2.133380",
7
+ "generated_by" : "ExtUtils::MakeMaker version 6.66, CPAN::Meta::Converter version 2.150010",
8
8
  "license" : [
9
9
  "perl_5"
10
10
  ],
11
11
  "meta-spec" : {
12
12
  "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
13
- "version" : "2"
13
+ "version" : 2
14
14
  },
15
15
  "name" : "Image-ExifTool",
16
16
  "no_index" : {
@@ -47,5 +47,6 @@
47
47
  }
48
48
  },
49
49
  "release_status" : "stable",
50
- "version" : "11.49"
50
+ "version" : "11.50",
51
+ "x_serialization_backend" : "JSON::PP version 4.02"
51
52
  }
data/bin/META.yml CHANGED
@@ -3,29 +3,30 @@ abstract: 'Read and write meta information'
3
3
  author:
4
4
  - 'Phil Harvey (phil@owl.phy.queensu.ca)'
5
5
  build_requires:
6
- ExtUtils::MakeMaker: 0
6
+ ExtUtils::MakeMaker: '0'
7
7
  configure_requires:
8
- ExtUtils::MakeMaker: 0
8
+ ExtUtils::MakeMaker: '0'
9
9
  dynamic_config: 1
10
- generated_by: 'ExtUtils::MakeMaker version 6.66, CPAN::Meta::Converter version 2.133380'
10
+ generated_by: 'ExtUtils::MakeMaker version 6.66, CPAN::Meta::Converter version 2.150010'
11
11
  license: perl
12
12
  meta-spec:
13
13
  url: http://module-build.sourceforge.net/META-spec-v1.4.html
14
- version: 1.4
14
+ version: '1.4'
15
15
  name: Image-ExifTool
16
16
  no_index:
17
17
  directory:
18
18
  - t
19
19
  - inc
20
20
  recommends:
21
- Archive::Zip: 0
22
- Compress::Zlib: 0
23
- Digest::MD5: 0
24
- Digest::SHA: 0
25
- IO::Compress::RawDeflate: 0
26
- IO::Uncompress::RawInflate: 0
27
- POSIX::strptime: 0
28
- Time::HiRes: 0
21
+ Archive::Zip: '0'
22
+ Compress::Zlib: '0'
23
+ Digest::MD5: '0'
24
+ Digest::SHA: '0'
25
+ IO::Compress::RawDeflate: '0'
26
+ IO::Uncompress::RawInflate: '0'
27
+ POSIX::strptime: '0'
28
+ Time::HiRes: '0'
29
29
  requires:
30
- perl: 5.004
31
- version: 11.49
30
+ perl: '5.004'
31
+ version: '11.50'
32
+ x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
data/bin/README CHANGED
@@ -41,8 +41,8 @@ supported by ExifTool (r = read, w = write, c = create):
41
41
  CRM r/w | GZ r | MOI r | PMP r | WAV r
42
42
  CRW r/w | HDP r/w | MOS r/w | PNG r/w | WDP r/w
43
43
  CS1 r/w | HDR r | MOV r/w | PPM r/w | WEBP r
44
- DCM r | HEIC r | MP3 r | PPT r | WEBM r
45
- DCP r/w | HEIF r | MP4 r/w | PPTX r | WMA r
44
+ DCM r | HEIC r/w | MP3 r | PPT r | WEBM r
45
+ DCP r/w | HEIF r/w | MP4 r/w | PPTX r | WMA r
46
46
  DCR r | HTML r | MPC r | PS r/w | WMV r
47
47
  DFONT r | ICC r/w/c | MPG r | PSB r/w | WTV r
48
48
  DIVX r | ICS r | MPO r/w | PSD r/w | WV r
@@ -104,8 +104,8 @@ your home directory, then you would type the following commands in a
104
104
  terminal window to extract and run ExifTool:
105
105
 
106
106
  cd ~/Desktop
107
- gzip -dc Image-ExifTool-11.49.tar.gz | tar -xf -
108
- cd Image-ExifTool-11.49
107
+ gzip -dc Image-ExifTool-11.50.tar.gz | tar -xf -
108
+ cd Image-ExifTool-11.50
109
109
  ./exiftool t/images/ExifTool.jpg
110
110
 
111
111
  Note: These commands extract meta information from one of the test images.
@@ -195,10 +195,12 @@ distribution package:
195
195
  example.config - General example showing config features
196
196
  fotoware.config - Definitions for writing Fotoware XMP tags
197
197
  gps2utm.config - Generate UTM coordinate tags from GPS info
198
- mini0806.config - Composite tags for GPS in Mini 0806 videos
198
+ mini0806.config - Decode timed GPS from Mini 0806 videos
199
199
  nksc.config - Decode tags in Nikon ViewNX NKSC files
200
200
  photoshop_paths.config - For extracting or copying Photoshop paths
201
201
  picasa_faces.config - Convert from Picasa to MWG/MP face regions
202
+ rotate_regions.config - Rotate MWG and MP region tags
203
+ tiff_version.config - Determine the version of a TIFF file
202
204
  time_zone.config - Calcuate time zone from EXIF tags
203
205
  exiftool - The exiftool application (Perl script)
204
206
  fmt_files/ - Output formatting example files:
@@ -0,0 +1,173 @@
1
+ #------------------------------------------------------------------------------
2
+ # File: rotate_regions.config
3
+ #
4
+ # Description: User-defined Composite tag definitions to rotate MWG region tags
5
+ # (Metadata Working Group region, used by Picasa) and MP region tags
6
+ # (used by Microsoft Photo Library).
7
+ #
8
+ # Tag definitions and examples:
9
+ #
10
+ # RotateMWGRegionCW90
11
+ # RotateMWGRegionCW180
12
+ # RotateMWGRegionCW270
13
+ # These tags will rotate a MWG Region clockwise 90, 180, or 270 degrees.
14
+ # Example:
15
+ # exiftool -config rotate_regions.config "-RegionInfo<RotateMWGRegionCW90" FILE
16
+ #
17
+ # RotateMPRegionCW90
18
+ # RotateMPRegionCW180
19
+ # RotateMPRegionCW270
20
+ # These tags will rotate a MWG Region clockwise 90, 180, or 270 degrees.
21
+ # Example:
22
+ # exiftool -config rotate_regions.config "-RegionInfoMP<RotateMPRegionCW90" FILE
23
+ #
24
+ # Revisions: 2015/05/08 - Bryan K. Williams AKA StarGeek Created
25
+ #------------------------------------------------------------------------------
26
+
27
+ %Image::ExifTool::UserDefined = (
28
+ 'Image::ExifTool::Composite' => {
29
+ RotateMWGRegionCW90 =>{
30
+ Require => 'RegionInfo',
31
+ ValueConv => q{
32
+ my ($rgn, @newRgns);
33
+ foreach $rgn (@{$val[0]{RegionList}}) {
34
+ my @rect = @{$$rgn{Area}}{'X','Y','W','H'};
35
+ my %newRgn = (
36
+ Area => {
37
+ X => 1-$rect[1],
38
+ Y => $rect[0],
39
+ W => $rect[3],
40
+ H => $rect[2],
41
+ Unit => 'normalized',
42
+ },
43
+ Name => $$rgn{Name},
44
+ Type => 'Face',
45
+ );
46
+ push @newRgns, \%newRgn;
47
+ }
48
+ return {
49
+ AppliedToDimensions => {
50
+ W => $val[0]{AppliedToDimensions}{W},
51
+ H => $val[0]{AppliedToDimensions}{H},
52
+ Unit => $val[0]{AppliedToDimensions}{Unit},
53
+ },
54
+ RegionList => \@newRgns,
55
+ };
56
+ },
57
+ }, #End RotateMWGRegionCW90
58
+ RotateMWGRegionCW180 =>{
59
+ Require => 'RegionInfo',
60
+ ValueConv => q{
61
+ my ($rgn, @newRgns);
62
+ foreach $rgn (@{$val[0]{RegionList}}) {
63
+ my @rect = @{$$rgn{Area}}{'X','Y','W','H'};
64
+ my %newRgn = (
65
+ Area => {
66
+ X => 1-$rect[0],
67
+ Y => 1-$rect[1],
68
+ W => $rect[2],
69
+ H => $rect[3],
70
+ Unit => 'normalized',
71
+ },
72
+ Name => $$rgn{Name},
73
+ Type => 'Face',
74
+ );
75
+ push @newRgns, \%newRgn;
76
+ }
77
+ return {
78
+ AppliedToDimensions => {
79
+ W => $val[0]{AppliedToDimensions}{W},
80
+ H => $val[0]{AppliedToDimensions}{H},
81
+ Unit => $val[0]{AppliedToDimensions}{Unit},
82
+ },
83
+ RegionList => \@newRgns,
84
+ };
85
+ },
86
+ }, #End RotateMWGRegionCW180
87
+ RotateMWGRegionCW270 =>{
88
+ Require => 'RegionInfo',
89
+ ValueConv => q{
90
+ my ($rgn, @newRgns);
91
+ foreach $rgn (@{$val[0]{RegionList}}) {
92
+ my @rect = @{$$rgn{Area}}{'X','Y','W','H'};
93
+ my %newRgn = (
94
+ Area => {
95
+ X => $rect[1],
96
+ Y => 1-$rect[0],
97
+ W => $rect[3],
98
+ H => $rect[2],
99
+ Unit => 'normalized',
100
+ },
101
+ Name => $$rgn{Name},
102
+ Type => 'Face',
103
+ );
104
+ push @newRgns, \%newRgn;
105
+ }
106
+ return {
107
+ AppliedToDimensions => {
108
+ W => $val[0]{AppliedToDimensions}{W},
109
+ H => $val[0]{AppliedToDimensions}{H},
110
+ Unit => $val[0]{AppliedToDimensions}{Unit},
111
+ },
112
+ RegionList => \@newRgns,
113
+ };
114
+ },
115
+ }, #End RotateMWGRegionCW270
116
+ RotateMPRegionCW90=>{
117
+ Require => 'RegionInfoMP',
118
+ ValueConv => q{
119
+ my ($rgn, @newRgns);
120
+ foreach $rgn (@{$val[0]{Regions}}) {
121
+ my @rect = split /\s*,\s*/, $$rgn{Rectangle};
122
+ my $temp = $rect[0];
123
+ $rect[0] = 1-$rect[1]-$rect[3];
124
+ $rect[1] = $temp;
125
+ ($rect[2], $rect[3]) = ($rect[3],$rect[2]); #Swap W and H
126
+ push @newRgns, {
127
+ PersonDisplayName => $$rgn{PersonDisplayName},
128
+ Rectangle => join(', ', @rect),
129
+ };
130
+ }
131
+ return { Regions => \@newRgns };
132
+ }
133
+ }, #end RotateMPRegionCW90
134
+ RotateMPRegionCW180=>{
135
+ Require => 'RegionInfoMP',
136
+ ValueConv => q{
137
+ my ($rgn, @newRgns);
138
+ foreach $rgn (@{$val[0]{Regions}}) {
139
+ my @rect = split /\s*,\s*/, $$rgn{Rectangle};
140
+ my $tempX = $rect[0];
141
+ my $tempY = $rect[1];
142
+ $rect[0] = 1-$tempX-$rect[2];
143
+ $rect[1] = 1-$tempY-$rect[3];
144
+ push @newRgns, {
145
+ PersonDisplayName => $$rgn{PersonDisplayName},
146
+ Rectangle => join(', ', @rect),
147
+ };
148
+ }
149
+ return { Regions => \@newRgns };
150
+ }
151
+ }, #end RotateMPRegionCW180
152
+ RotateMPRegionCW270=>{
153
+ Require => 'RegionInfoMP',
154
+ ValueConv => q{
155
+ my ($rgn, @newRgns);
156
+ foreach $rgn (@{$val[0]{Regions}}) {
157
+ my @rect = split /\s*,\s*/, $$rgn{Rectangle};
158
+ my $temp = $rect[1];
159
+ $rect[1] = 1-$rect[0]-$rect[2];
160
+ $rect[0] = $temp;
161
+ ($rect[2], $rect[3]) = ($rect[3],$rect[2]); #Swap W and H
162
+ push @newRgns, {
163
+ PersonDisplayName => $$rgn{PersonDisplayName},
164
+ Rectangle => join(', ', @rect),
165
+ };
166
+ }
167
+ return { Regions => \@newRgns };
168
+ }
169
+ }, #end RotateMPRegionCW270
170
+ },
171
+ );
172
+
173
+ 1; #end
@@ -0,0 +1,121 @@
1
+ #------------------------------------------------------------------------------
2
+ # File: tiff_version.config
3
+ #
4
+ # Description: This config file contains the definition for a Composite
5
+ # TIFFVersion tag used to determine the version of a TIFF file
6
+ #
7
+ # Usage: exiftool -config tiff_version.config -tiffversion DIR
8
+ #
9
+ # Requires: ExifTool version 11.50 or later
10
+ #
11
+ # Revisions: 2019/06/06 - Bryan K. Williams (aka StarGeek) Created
12
+ # 2019/06/07 - P. Harvey added test of TIFF format types
13
+ #
14
+ # References: http://jhove.openpreservation.org/modules/tiff/#profiles
15
+ #------------------------------------------------------------------------------
16
+
17
+ # Checks if at least one the values passed are defined.
18
+ sub has_defined {
19
+ for my $i ( @_ ) {
20
+ return 1 if defined $i;
21
+ }
22
+ return 0;
23
+ }
24
+
25
+ %Image::ExifTool::UserDefined = (
26
+ 'Image::ExifTool::Composite' => {
27
+ TIFFVersion => {
28
+ Require => {
29
+ 0 => 'FileType'
30
+ },
31
+ Desire => {
32
+ # Version 5
33
+ 1 => 'EXIF:Artist', # Artist (315/0x013b)
34
+ 2 => 'EXIF:ColorMap', # ColorMap (320/0x0140)
35
+ 3 => 'EXIF:ModifyDate', # DateTime (306/0x0132) Called DateTime by EXIF spec, ModifyDate by exiftool
36
+ 4 => 'EXIF:HostComputer', # HostComputer (316/0x013c)
37
+ 5 => 'EXIF:SubfileType', # NewSubfileType (254/0x00fe) Called NewSubfileType by TIFF spec, SubfileType by exiftool
38
+ 6 => 'EXIF:Predictor', # Predictor (317/0x013d)
39
+ 7 => 'EXIF:PrimaryChromaticities', # PrimaryChromaticities (319/0x013f)
40
+ 8 => 'EXIF:Software', # Software (305/0x0131)
41
+ 9 => 'EXIF:WhitePoint', # WhitePoint (318/0x013e)
42
+ # Version 6
43
+ 10 => 'EXIF:Copyright', # Copyright (33432/0x8298)
44
+ 11 => 'EXIF:DotRange', # DotRange (336/0x0150)
45
+ 12 => 'EXIF:ExtraSamples', # ExtraSamples (338/0x0152)
46
+ 13 => 'EXIF:HalftoneHints', # HalftoneHints (321/0x0141)
47
+ 14 => 'EXIF:InkNames', # InkNames (333/0x014d)
48
+ 15 => 'EXIF:InkSet', # InkSet (332/0x014c)
49
+ 16 => 'EXIF:JPEGACTables', # JPEGACTables (521/0x0209)
50
+ 17 => 'EXIF:JPEGDCTables', # JPEGDCTables (520/0x0208)
51
+ 18 => 'EXIF:ThumbnailOffset', # JPEGInterchangeFormat (513/0x0201)
52
+ 19 => 'EXIF:ThumbnailLength ', # JPEGInterchangeFormatLength (514/0x0202)
53
+ 20 => 'EXIF:JPEGLosslessPredictors', # JPEGLosslessPredictors (517/0x0205)
54
+ 21 => 'EXIF:JPEGPointTransforms', # JPEGPointTransforms (518/0x0206)
55
+ 22 => 'EXIF:JPEGProc', # JPEGProc (512/0x0200)
56
+ 23 => 'EXIF:JPEGRestartInterval', # JPEGRestartInterval (515/0x0203)
57
+ 24 => 'EXIF:JPEGQTables', # JPEGQTables (519/0x0207)
58
+ 25 => 'EXIF:NumberofInks', # NumberOfInks (334/0x014e)
59
+ 26 => 'EXIF:ReferenceBlackWhite', # ReferenceBlackWhite (532/0x0214)
60
+ 27 => 'EXIF:SampleFormat', # SampleFormat (339/0x0153)
61
+ 28 => 'EXIF:SMinSampleValue', # SMinSampleValue (340/0x0154)
62
+ 29 => 'EXIF:SMaxSampleValue', # SMaxSampleValue (341/0x0155)
63
+ 30 => 'EXIF:TargetPrinter', # TargetPrinter (337/0x0151)
64
+ 31 => 'EXIF:TileLength', # TileLength (323/0x0143)
65
+ 32 => 'EXIF:TileOffsets', # TileOffsets (324/0x0144)
66
+ 33 => 'EXIF:TileWidth', # TileWidth (322/0x0142)
67
+ 34 => 'EXIF:TileByteCounts', # TileByteCounts (325/0x0145)
68
+ 35 => 'EXIF:TransferRange', # TransferRange (342/0x0156)
69
+ 36 => 'EXIF:YCbCrCoefficients', # YCbCrCoefficients (529/0x0211)
70
+ 37 => 'EXIF:YCbCrPositioning', # YCbCrPositioning (531/0x0213)
71
+ 38 => 'EXIF:YCbCrSubSampling', # YCbCrSubSampling (530/0x0212)
72
+ # Other tags to check
73
+ 39 => 'EXIF:PhotometricInterpretation', # PhotometricInterpretation (262/0x0106)
74
+ 40 => 'EXIF:Compression', # Compression (259/0x0103)
75
+ },
76
+ ValueConv => q{
77
+ if ($val[0] ne 'TIFF') {
78
+ return undef;
79
+ }
80
+ unless ($$self{SaveFormat}) {
81
+ return '<you must use the API SaveFormat option and ExifTool 11.50 or later>';
82
+ }
83
+ foreach (qw(int8s undef int16s int32s rational64s float double)) {
84
+ return '6.0' if $$self{SaveFormat}{$_};
85
+ }
86
+ if ( $val[39]=~/^(?:C(?:IELab|MYK)|YCbCr)$/ or $val[40] eq 'JPEG (old-style)' or has_defined(@val[10..38]) ) {
87
+ return '6.0';
88
+ }
89
+ if ($val[39]=~/^(?:Transparency Mask|RGB Palette)$/ or $val[40] eq 'LZW' or has_defined(@val[1..9]) ) {
90
+ return '5.0';
91
+ }
92
+ return '4.0';
93
+ },
94
+ },
95
+ },
96
+ );
97
+
98
+ # A couple of shortcuts to test for the existance of certain tags
99
+ %Image::ExifTool::UserDefined::Shortcuts = (
100
+ TiffVersion5Tags => [
101
+ 'EXIF:Artist', 'EXIF:ColorMap', 'EXIF:ModifyDate', 'EXIF:HostComputer', 'EXIF:SubfileType',
102
+ 'EXIF:Predictor', 'EXIF:PrimaryChromaticities', 'EXIF:Software', 'EXIF:WhitePoint',
103
+ ],
104
+ TiffVersion6Tags => [
105
+ 'EXIF:Copyright', 'EXIF:DotRange', 'EXIF:ExtraSamples', 'EXIF:HalftoneHints',
106
+ 'EXIF:InkNames', 'EXIF:InkSet', 'EXIF:JPEGACTables', 'EXIF:JPEGDCTables',
107
+ 'EXIF:ThumbnailOffset', 'EXIF:ThumbnailLength ', 'EXIF:JPEGLosslessPredictors',
108
+ 'EXIF:JPEGPointTransforms', 'EXIF:JPEGProc', 'EXIF:JPEGRestartInterval',
109
+ 'EXIF:JPEGQTables', 'EXIF:NumberofInks', 'EXIF:ReferenceBlackWhite', 'EXIF:SampleFormat',
110
+ 'EXIF:SMinSampleValue', 'EXIF:SMaxSampleValue', 'EXIF:TargetPrinter', 'EXIF:TileLength',
111
+ 'EXIF:TileOffsets', 'EXIF:TileWidth', 'EXIF:TileByteCounts', 'EXIF:TransferRange',
112
+ 'EXIF:YCbCrCoefficients', 'EXIF:YCbCrPositioning', 'EXIF:YCbCrSubSampling',
113
+ ],
114
+ );
115
+
116
+ # Must set undocumented SaveFormat option to provide access to the tag format types
117
+ %Image::ExifTool::UserDefined::Options = (
118
+ SaveFormat => 1,
119
+ );
120
+
121
+ 1; #end