exiftool_vendored 11.49.0 → 11.50.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of exiftool_vendored might be problematic. Click here for more details.

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