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.
- checksums.yaml +4 -4
- data/bin/Changes +16 -1
- data/bin/MANIFEST +2 -0
- data/bin/META.json +4 -3
- data/bin/META.yml +15 -14
- data/bin/README +7 -5
- data/bin/config_files/rotate_regions.config +173 -0
- data/bin/config_files/tiff_version.config +121 -0
- data/bin/exiftool +16 -15
- data/bin/lib/Image/ExifTool.pm +26 -19
- data/bin/lib/Image/ExifTool.pod +5 -2
- data/bin/lib/Image/ExifTool/Audible.pm +2 -2
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +25 -21
- data/bin/lib/Image/ExifTool/Canon.pm +13 -9
- data/bin/lib/Image/ExifTool/CanonVRD.pm +4 -4
- data/bin/lib/Image/ExifTool/DjVu.pm +1 -2
- data/bin/lib/Image/ExifTool/EXE.pm +1 -1
- data/bin/lib/Image/ExifTool/Exif.pm +44 -6
- data/bin/lib/Image/ExifTool/FLIR.pm +1 -1
- data/bin/lib/Image/ExifTool/FlashPix.pm +12 -9
- data/bin/lib/Image/ExifTool/GPS.pm +3 -3
- data/bin/lib/Image/ExifTool/GoPro.pm +4 -4
- data/bin/lib/Image/ExifTool/H264.pm +2 -2
- data/bin/lib/Image/ExifTool/HP.pm +1 -1
- data/bin/lib/Image/ExifTool/Kodak.pm +1 -1
- data/bin/lib/Image/ExifTool/MIE.pm +3 -3
- data/bin/lib/Image/ExifTool/MPF.pm +2 -2
- data/bin/lib/Image/ExifTool/MWG.pm +1 -1
- data/bin/lib/Image/ExifTool/MacOS.pm +2 -2
- data/bin/lib/Image/ExifTool/Matroska.pm +1 -1
- data/bin/lib/Image/ExifTool/Minolta.pm +58 -56
- data/bin/lib/Image/ExifTool/Nikon.pm +1 -1
- data/bin/lib/Image/ExifTool/Olympus.pm +2 -2
- data/bin/lib/Image/ExifTool/OpenEXR.pm +2 -2
- data/bin/lib/Image/ExifTool/PDF.pm +4 -4
- data/bin/lib/Image/ExifTool/PICT.pm +3 -3
- data/bin/lib/Image/ExifTool/PNG.pm +2 -2
- data/bin/lib/Image/ExifTool/Pentax.pm +1 -1
- data/bin/lib/Image/ExifTool/Photoshop.pm +1 -2
- data/bin/lib/Image/ExifTool/PostScript.pm +4 -4
- data/bin/lib/Image/ExifTool/QuickTime.pm +37 -15
- data/bin/lib/Image/ExifTool/RIFF.pm +3 -2
- data/bin/lib/Image/ExifTool/RSRC.pm +1 -1
- data/bin/lib/Image/ExifTool/Samsung.pm +1 -1
- data/bin/lib/Image/ExifTool/Sony.pm +4 -2
- data/bin/lib/Image/ExifTool/TagInfoXML.pm +2 -2
- data/bin/lib/Image/ExifTool/TagLookup.pm +9 -7
- data/bin/lib/Image/ExifTool/TagNames.pod +31 -21
- data/bin/lib/Image/ExifTool/VCard.pm +1 -1
- data/bin/lib/Image/ExifTool/Validate.pm +2 -2
- data/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +1 -1
- data/bin/lib/Image/ExifTool/Writer.pl +11 -6
- data/bin/lib/Image/ExifTool/XMP.pm +3 -7
- data/bin/lib/Image/ExifTool/XMPStruct.pl +2 -1
- data/bin/lib/Image/ExifTool/ZIP.pm +1 -1
- data/bin/lib/Image/ExifTool/iWork.pm +1 -1
- data/bin/perl-Image-ExifTool.spec +3 -3
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e698f7b3e0b0d832195da16b3303c8c913fc39ff
|
4
|
+
data.tar.gz: 56345fda76bb7c49c0fc8d262d53d27f2aec9e55
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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.
|
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" :
|
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.
|
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.
|
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.
|
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
|
45
|
-
DCP r/w | HEIF 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.
|
108
|
-
cd Image-ExifTool-11.
|
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 -
|
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
|