exiftool_vendored 11.71.0 → 11.75.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.
- checksums.yaml +4 -4
- data/bin/Changes +39 -0
- data/bin/MANIFEST +17 -4
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +23 -26
- data/bin/config_files/convert_regions.config +139 -5
- data/bin/exiftool +21 -21
- data/bin/fmt_files/gpx.fmt +2 -1
- data/bin/fmt_files/gpx_wpt.fmt +2 -1
- data/bin/fmt_files/kml.fmt +2 -2
- data/bin/fmt_files/kml_track.fmt +46 -0
- data/bin/lib/Image/ExifTool.pm +42 -33
- data/bin/lib/Image/ExifTool.pod +21 -21
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +2 -2
- data/bin/lib/Image/ExifTool/Canon.pm +2 -1
- data/bin/lib/Image/ExifTool/CanonCustom.pm +30 -4
- data/bin/lib/Image/ExifTool/Exif.pm +36 -63
- data/bin/lib/Image/ExifTool/FujiFilm.pm +1 -0
- data/bin/lib/Image/ExifTool/Lang/ru.pm +4233 -503
- data/bin/lib/Image/ExifTool/MakerNotes.pm +6 -12
- data/bin/lib/Image/ExifTool/Nikon.pm +2 -1
- data/bin/lib/Image/ExifTool/Olympus.pm +2 -1
- data/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
- data/bin/lib/Image/ExifTool/Parrot.pm +751 -0
- data/bin/lib/Image/ExifTool/Photoshop.pm +12 -11
- data/bin/lib/Image/ExifTool/QuickTime.pm +18 -5
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +316 -44
- data/bin/lib/Image/ExifTool/Shortcuts.pm +1 -2
- data/bin/lib/Image/ExifTool/Sigma.pm +72 -55
- data/bin/lib/Image/ExifTool/TagLookup.pm +73 -7
- data/bin/lib/Image/ExifTool/TagNames.pod +249 -18
- data/bin/lib/Image/ExifTool/Text.pm +160 -0
- data/bin/lib/Image/ExifTool/WriteXMP.pl +1 -2
- data/bin/lib/Image/ExifTool/Writer.pl +1 -1
- data/bin/lib/Image/ExifTool/XMP.pm +19 -26
- data/bin/lib/Image/ExifTool/XMP2.pl +46 -9
- data/bin/lib/Image/ExifTool/XMPStruct.pl +14 -4
- data/bin/perl-Image-ExifTool.spec +19 -19
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +6 -7
- data/bin/config_files/blueskysea.config +0 -101
- data/bin/config_files/dji.config +0 -131
- data/bin/config_files/mini0806.config +0 -99
- data/bin/config_files/thinkware.config +0 -144
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 916afc91f8aba69fd7ffbac7df145937993a1fcb
|
|
4
|
+
data.tar.gz: 3ed8d285daa9ce5b22f965fb92780dd1e8fa0899
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: cd3cb7c499f9ec1c8b9849cec96214428f8d44cd74e6c991d8570b2bd0ab8b523ac4f52caa6c507fd177404d3d4e65a1ca65e959719a8788dd22187dc8867f21
|
|
7
|
+
data.tar.gz: 2fa0d6559cc17806860c2125d211ef02cea3b553f77f380683bcb3a4d0a3e9d8b249a1b37eee4f63aa470734405956dd98fc94b5ae22d8e0c692fa32eb48de99
|
data/bin/Changes
CHANGED
|
@@ -7,6 +7,45 @@ RSS feed: http://owl.phy.queensu.ca/~phil/exiftool/rss.xml
|
|
|
7
7
|
Note: The most recent production release is Version 11.70. (Other versions are
|
|
8
8
|
considered development releases, and are not uploaded to CPAN.)
|
|
9
9
|
|
|
10
|
+
Nov. 4, 2019 - Version 11.75
|
|
11
|
+
|
|
12
|
+
- Added ability to read some basic characteristics of TXT files
|
|
13
|
+
- Added kml_track.fmt to the fmt_files of the full distribution
|
|
14
|
+
- Added built-in support for decoding GPS from the four video subtitle text
|
|
15
|
+
formats that were previously handled by separate config files, and removed
|
|
16
|
+
these config files from the distribution
|
|
17
|
+
- Derive GPSDateTime from CreateDate and SampleTime if not already available
|
|
18
|
+
when extracting timed GPS metadata from QuickTime-format videos
|
|
19
|
+
- Changed family 2 groups of some Extra tags
|
|
20
|
+
|
|
21
|
+
Oct. 29, 2019 - Version 11.74
|
|
22
|
+
|
|
23
|
+
- Added support for new XMP IPTC Extension version 1.5 tags
|
|
24
|
+
- Added a new Nikon LensID (thanks LibRaw)
|
|
25
|
+
- Decode GPS track from Auto-Vox dashcam MOV videos
|
|
26
|
+
- Improved Russian translations (thanks Andrei Korzhyts and Alexander)
|
|
27
|
+
- Enhanced convert_regions.config to support new IPTC Extension 1.5 ImageRegion
|
|
28
|
+
- Changed the way the FlatName element works when used in a structure element
|
|
29
|
+
(the structure name is now added as a prefix to the flattened tag name)
|
|
30
|
+
- Patched gpx.fmt and gpx_wpt.fmt to support sub-seconds in GPSDateTime value
|
|
31
|
+
|
|
32
|
+
Oct. 23, 2019 - Version 11.73
|
|
33
|
+
|
|
34
|
+
- Decode timed metadata from Parrot drone videos
|
|
35
|
+
- Patched dji.config file to properly handle time zones
|
|
36
|
+
- Fixed bug which caused runtime error when reading timed metadata from Cobra
|
|
37
|
+
Dash Cam AVI videos
|
|
38
|
+
|
|
39
|
+
Oct. 22, 2019 - Version 11.72
|
|
40
|
+
|
|
41
|
+
- Added warning messages for corrupted Photoshop document data
|
|
42
|
+
- Added a new Olympus CameraType
|
|
43
|
+
- Added a new Canon LensType
|
|
44
|
+
- Decode more Sigma tags
|
|
45
|
+
- Improved Russian translations (thanks Alexander)
|
|
46
|
+
- Updated decoding of some CanonCustom settings for recent models
|
|
47
|
+
- Documented DNG OpcodeList values
|
|
48
|
+
|
|
10
49
|
Oct. 16, 2019 - Version 11.71
|
|
11
50
|
|
|
12
51
|
- Added a new Sony LensType (thanks Jos Roost)
|
data/bin/MANIFEST
CHANGED
|
@@ -17,24 +17,21 @@ arg_files/xmp2iptc.args
|
|
|
17
17
|
arg_files/xmp2pdf.args
|
|
18
18
|
config_files/age.config
|
|
19
19
|
config_files/bibble.config
|
|
20
|
-
config_files/blueskysea.config
|
|
21
20
|
config_files/convert_regions.config
|
|
22
|
-
config_files/dji.config
|
|
23
21
|
config_files/example.config
|
|
24
22
|
config_files/fotoware.config
|
|
25
23
|
config_files/gps2utm.config
|
|
26
|
-
config_files/mini0806.config
|
|
27
24
|
config_files/nksc.config
|
|
28
25
|
config_files/photoshop_paths.config
|
|
29
26
|
config_files/picasa_faces.config
|
|
30
27
|
config_files/rotate_regions.config
|
|
31
|
-
config_files/thinkware.config
|
|
32
28
|
config_files/tiff_version.config
|
|
33
29
|
config_files/time_zone.config
|
|
34
30
|
exiftool
|
|
35
31
|
fmt_files/gpx.fmt
|
|
36
32
|
fmt_files/gpx_wpt.fmt
|
|
37
33
|
fmt_files/kml.fmt
|
|
34
|
+
fmt_files/kml_track.fmt
|
|
38
35
|
html/ExifTool.html
|
|
39
36
|
html/MIE1.1-20070121.pdf
|
|
40
37
|
html/Shift.html
|
|
@@ -132,6 +129,7 @@ html/TagNames/PSP.html
|
|
|
132
129
|
html/TagNames/Palm.html
|
|
133
130
|
html/TagNames/Panasonic.html
|
|
134
131
|
html/TagNames/PanasonicRaw.html
|
|
132
|
+
html/TagNames/Parrot.html
|
|
135
133
|
html/TagNames/Pentax.html
|
|
136
134
|
html/TagNames/PhaseOne.html
|
|
137
135
|
html/TagNames/PhotoCD.html
|
|
@@ -159,6 +157,7 @@ html/TagNames/SigmaRaw.html
|
|
|
159
157
|
html/TagNames/Sony.html
|
|
160
158
|
html/TagNames/SonyIDC.html
|
|
161
159
|
html/TagNames/Stim.html
|
|
160
|
+
html/TagNames/Text.html
|
|
162
161
|
html/TagNames/Theora.html
|
|
163
162
|
html/TagNames/Torrent.html
|
|
164
163
|
html/TagNames/Unknown.html
|
|
@@ -351,6 +350,7 @@ lib/Image/ExifTool/PSP.pm
|
|
|
351
350
|
lib/Image/ExifTool/Palm.pm
|
|
352
351
|
lib/Image/ExifTool/Panasonic.pm
|
|
353
352
|
lib/Image/ExifTool/PanasonicRaw.pm
|
|
353
|
+
lib/Image/ExifTool/Parrot.pm
|
|
354
354
|
lib/Image/ExifTool/Pentax.pm
|
|
355
355
|
lib/Image/ExifTool/PhaseOne.pm
|
|
356
356
|
lib/Image/ExifTool/PhotoCD.pm
|
|
@@ -384,6 +384,7 @@ lib/Image/ExifTool/Stim.pm
|
|
|
384
384
|
lib/Image/ExifTool/TagInfoXML.pm
|
|
385
385
|
lib/Image/ExifTool/TagLookup.pm
|
|
386
386
|
lib/Image/ExifTool/TagNames.pod
|
|
387
|
+
lib/Image/ExifTool/Text.pm
|
|
387
388
|
lib/Image/ExifTool/Theora.pm
|
|
388
389
|
lib/Image/ExifTool/Torrent.pm
|
|
389
390
|
lib/Image/ExifTool/Unknown.pm
|
|
@@ -785,6 +786,12 @@ t/Sony_2.out
|
|
|
785
786
|
t/Sony_3.out
|
|
786
787
|
t/Sony_5.out
|
|
787
788
|
t/TestLib.pm
|
|
789
|
+
t/Text.t
|
|
790
|
+
t/Text_2.out
|
|
791
|
+
t/Text_3.out
|
|
792
|
+
t/Text_4.out
|
|
793
|
+
t/Text_5.out
|
|
794
|
+
t/Text_6.out
|
|
788
795
|
t/Torrent.t
|
|
789
796
|
t/Torrent_2.out
|
|
790
797
|
t/Unknown.t
|
|
@@ -891,6 +898,7 @@ t/XMP_5.out
|
|
|
891
898
|
t/XMP_50.out
|
|
892
899
|
t/XMP_52.out
|
|
893
900
|
t/XMP_53.out
|
|
901
|
+
t/XMP_54.out
|
|
894
902
|
t/XMP_6.out
|
|
895
903
|
t/XMP_7.out
|
|
896
904
|
t/XMP_8.out
|
|
@@ -1048,6 +1056,11 @@ t/images/Sigma.x3f
|
|
|
1048
1056
|
t/images/SigmaDP2.x3f
|
|
1049
1057
|
t/images/Sony.jpg
|
|
1050
1058
|
t/images/Sony.pmp
|
|
1059
|
+
t/images/Text1.txt
|
|
1060
|
+
t/images/Text2.txt
|
|
1061
|
+
t/images/Text3.txt
|
|
1062
|
+
t/images/Text4.txt
|
|
1063
|
+
t/images/Text5.txt
|
|
1051
1064
|
t/images/Torrent.torrent
|
|
1052
1065
|
t/images/Unknown.jpg
|
|
1053
1066
|
t/images/VCard.ics
|
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
|
@@ -35,24 +35,24 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
|
35
35
|
BPG r | FLIF r/w | MKA r | PFB r | TORRENT r
|
|
36
36
|
BTF r | FLV r | MKS r | PFM r | TTC r
|
|
37
37
|
CHM r | FPF r | MKV r | PGF r | TTF r
|
|
38
|
-
COS r | FPX r | MNG r/w | PGM r/w |
|
|
39
|
-
CR2 r/w | GIF r/w | MOBI r | PLIST r |
|
|
40
|
-
CR3 r/w | GPR r/w | MODD r | PICT r |
|
|
41
|
-
CRM r/w | GZ r | MOI r | PMP r |
|
|
42
|
-
CRW r/w | HDP r/w | MOS r/w | PNG r/w |
|
|
43
|
-
CS1 r/w | HDR r | MOV r/w | PPM r/w |
|
|
44
|
-
DCM r | HEIC r/w | MP3 r | PPT r |
|
|
45
|
-
DCP r/w | HEIF r/w | MP4 r/w | PPTX r |
|
|
46
|
-
DCR r | HTML r | MPC r | PS r/w |
|
|
47
|
-
DFONT r | ICC r/w/c | MPG r | PSB r/w |
|
|
48
|
-
DIVX r | ICS r | MPO r/w | PSD r/w |
|
|
49
|
-
DJVU r | IDML r | MQV r/w | PSP r |
|
|
50
|
-
DLL r | IIQ r/w | MRW r/w | QTIF r/w |
|
|
51
|
-
DNG r/w | IND r/w | MXF r | R3D r |
|
|
52
|
-
DOC r | INSV r | NEF r/w | RA r |
|
|
53
|
-
DOCX r | INX r | NRW r/w | RAF r/w |
|
|
54
|
-
DPX r | ISO r | NUMBERS r | RAM r |
|
|
55
|
-
DR4 r/w/c | ITC r | O r | RAR r |
|
|
38
|
+
COS r | FPX r | MNG r/w | PGM r/w | TXT r
|
|
39
|
+
CR2 r/w | GIF r/w | MOBI r | PLIST r | VCF r
|
|
40
|
+
CR3 r/w | GPR r/w | MODD r | PICT r | VRD r/w/c
|
|
41
|
+
CRM r/w | GZ r | MOI r | PMP r | VSD r
|
|
42
|
+
CRW r/w | HDP r/w | MOS r/w | PNG r/w | WAV r
|
|
43
|
+
CS1 r/w | HDR r | MOV r/w | PPM r/w | WDP r/w
|
|
44
|
+
DCM r | HEIC r/w | MP3 r | PPT r | WEBP r
|
|
45
|
+
DCP r/w | HEIF r/w | MP4 r/w | PPTX r | WEBM r
|
|
46
|
+
DCR r | HTML r | MPC r | PS r/w | WMA r
|
|
47
|
+
DFONT r | ICC r/w/c | MPG r | PSB r/w | WMV r
|
|
48
|
+
DIVX r | ICS r | MPO r/w | PSD r/w | WTV r
|
|
49
|
+
DJVU r | IDML r | MQV r/w | PSP r | WV r
|
|
50
|
+
DLL r | IIQ r/w | MRW r/w | QTIF r/w | X3F r/w
|
|
51
|
+
DNG r/w | IND r/w | MXF r | R3D r | XCF r
|
|
52
|
+
DOC r | INSV r | NEF r/w | RA r | XLS r
|
|
53
|
+
DOCX r | INX r | NRW r/w | RAF r/w | XLSX r
|
|
54
|
+
DPX r | ISO r | NUMBERS r | RAM r | XMP r/w/c
|
|
55
|
+
DR4 r/w/c | ITC r | O r | RAR r | ZIP r
|
|
56
56
|
|
|
57
57
|
Meta Information
|
|
58
58
|
----------------------+----------------------+---------------------
|
|
@@ -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.75.tar.gz | tar -xf -
|
|
108
|
+
cd Image-ExifTool-11.75
|
|
109
109
|
./exiftool t/images/ExifTool.jpg
|
|
110
110
|
|
|
111
111
|
Note: These commands extract meta information from one of the test images.
|
|
@@ -190,25 +190,22 @@ distribution package:
|
|
|
190
190
|
config_files/ - Sample ExifTool configuration files:
|
|
191
191
|
age.config - Calculate Age of person in photo
|
|
192
192
|
bibble.config - Definitions for writing Bibble XMP tags
|
|
193
|
-
|
|
194
|
-
convert_regions.config - Convert between MWG and MP face regions
|
|
195
|
-
dji.config - Composite tags for metadata in DJI videos
|
|
193
|
+
convert_regions.config - Convert between MWG, MP and IPTC regions
|
|
196
194
|
example.config - General example showing config features
|
|
197
195
|
fotoware.config - Definitions for writing Fotoware XMP tags
|
|
198
196
|
gps2utm.config - Generate UTM coordinate tags from GPS info
|
|
199
|
-
mini0806.config - Decode timed GPS from Mini 0806 videos
|
|
200
197
|
nksc.config - Decode tags in Nikon ViewNX NKSC files
|
|
201
198
|
photoshop_paths.config - For extracting or copying Photoshop paths
|
|
202
199
|
picasa_faces.config - Convert from Picasa to MWG/MP face regions
|
|
203
200
|
rotate_regions.config - Rotate MWG and MP region tags
|
|
204
|
-
thinkware.config - Decode text from Thinkware dashcam videos
|
|
205
201
|
tiff_version.config - Determine the version of a TIFF file
|
|
206
202
|
time_zone.config - Calcuate time zone from EXIF tags
|
|
207
203
|
exiftool - The exiftool application (Perl script)
|
|
208
204
|
fmt_files/ - Output formatting example files:
|
|
209
205
|
gpx.fmt - Format file for creating GPX track
|
|
210
206
|
gpx_wpt.fmt - Format file for creating GPX waypoints
|
|
211
|
-
kml.fmt - Format file for creating KML
|
|
207
|
+
kml.fmt - Format file for creating KML placemarks
|
|
208
|
+
kml_track.fmt - Format file for creating KML track
|
|
212
209
|
html/ - HTML documentation
|
|
213
210
|
html/TagNames/ - HTML tag name documentation
|
|
214
211
|
lib/ - ExifTool Perl library modules
|
|
@@ -2,22 +2,27 @@
|
|
|
2
2
|
# File: convert_regions.config
|
|
3
3
|
#
|
|
4
4
|
# Description: User-defined Composite tag definitions to allow conversion of
|
|
5
|
-
# face regions between Microsoft Windows Live Photo Gallery (WLPG)
|
|
6
|
-
#
|
|
5
|
+
# face regions between Microsoft Windows Live Photo Gallery (WLPG),
|
|
6
|
+
# Metadata Working Group (MWG), and IPTC Extension formats
|
|
7
7
|
#
|
|
8
|
-
# Usage: 1) Convert from MP WLPG regions to MWG regions:
|
|
8
|
+
# Usage: 1) Convert from MP WLPG or IPTC regions to MWG regions:
|
|
9
9
|
#
|
|
10
10
|
# exiftool -config convert_regions.config "-regioninfo<myregion" FILE
|
|
11
11
|
#
|
|
12
|
-
# 2) Convert from MWG to WLPG regions:
|
|
12
|
+
# 2) Convert from MWG or IPTC to MP WLPG regions:
|
|
13
13
|
#
|
|
14
14
|
# exiftool -config convert_regions.config "-regioninfomp<myregionmp" FILE
|
|
15
15
|
#
|
|
16
|
-
#
|
|
16
|
+
# 3) Convert from MWG or MP WLPG to IPTC regions:
|
|
17
|
+
#
|
|
18
|
+
# exiftool -config convert_regions.config "-imageregion<myregioniptc" FILE
|
|
19
|
+
#
|
|
20
|
+
# Requires: ExifTool version 11.74 or later
|
|
17
21
|
#
|
|
18
22
|
# Revisions: 2012/12/27 - P. Harvey Created
|
|
19
23
|
# 2013/02/20 - PH Don't add ignored MP faces
|
|
20
24
|
# 2017/02/13 - PH Handle MP regions without Rectangle or Name entries
|
|
25
|
+
# 2019/10/26 - PH Added support for the new IPTC ImageRegion
|
|
21
26
|
#
|
|
22
27
|
# References: http://www.metadataworkinggroup.org/specs/
|
|
23
28
|
#------------------------------------------------------------------------------
|
|
@@ -63,6 +68,45 @@
|
|
|
63
68
|
},
|
|
64
69
|
},
|
|
65
70
|
|
|
71
|
+
# create an MWG RegionInfo structure from an IPTC ImageRegion list
|
|
72
|
+
MyRegion2 => {
|
|
73
|
+
Name => 'MyRegion',
|
|
74
|
+
Require => {
|
|
75
|
+
0 => 'ImageRegion',
|
|
76
|
+
1 => 'ImageWidth',
|
|
77
|
+
2 => 'ImageHeight',
|
|
78
|
+
},
|
|
79
|
+
ValueConv => q{
|
|
80
|
+
my ($rgn, @newRgns);
|
|
81
|
+
my $rgns = ref $val[0] eq 'ARRAY' ? $val[0] : [ $val[0] ];
|
|
82
|
+
foreach $rgn (@$rgns) {
|
|
83
|
+
my %newRgn = ( Type => 'Face' );
|
|
84
|
+
if ($$rgn{RegionBoundary} and $$rgn{RegionBoundary}{RbShape} eq 'rectangle') {
|
|
85
|
+
my @rect = @{$$rgn{RegionBoundary}}{'RbX','RbY','RbW','RbH'};
|
|
86
|
+
if ($$rgn{RegionBoundary}{RbUnit} eq 'pixel') {
|
|
87
|
+
$rect[0] /= $val[1], $rect[2] /= $val[1];
|
|
88
|
+
$rect[1] /= $val[2]; $rect[3] /= $val[2];
|
|
89
|
+
}
|
|
90
|
+
$newRgn{Area} = {
|
|
91
|
+
X => $rect[0] + $rect[2]/2,
|
|
92
|
+
Y => $rect[1] + $rect[3]/2,
|
|
93
|
+
W => $rect[2],
|
|
94
|
+
H => $rect[3],
|
|
95
|
+
Unit => 'normalized',
|
|
96
|
+
};
|
|
97
|
+
} else {
|
|
98
|
+
next unless defined $$rgn{Name};
|
|
99
|
+
}
|
|
100
|
+
$newRgn{Name} = $$rgn{Name} if defined $$rgn{Name};
|
|
101
|
+
push @newRgns, \%newRgn;
|
|
102
|
+
}
|
|
103
|
+
return {
|
|
104
|
+
AppliedToDimensions => { W => $val[1], H => $val[2], Unit => 'pixel' },
|
|
105
|
+
RegionList => \@newRgns,
|
|
106
|
+
};
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
|
|
66
110
|
# create a Microsoft RegionInfoMP structure from an MWG RegionInfo structure
|
|
67
111
|
MyRegionMP => {
|
|
68
112
|
Require => 'RegionInfo',
|
|
@@ -83,6 +127,96 @@
|
|
|
83
127
|
return { Regions => \@newRgns };
|
|
84
128
|
},
|
|
85
129
|
},
|
|
130
|
+
|
|
131
|
+
# create a Microsoft RegionInfoMP structure from an IPTC ImageRegion list
|
|
132
|
+
MyRegionMP2 => {
|
|
133
|
+
Name => 'MyRegionMP',
|
|
134
|
+
Require => {
|
|
135
|
+
0 => 'ImageRegion',
|
|
136
|
+
1 => 'ImageWidth',
|
|
137
|
+
2 => 'ImageHeight',
|
|
138
|
+
},
|
|
139
|
+
ValueConv => q{
|
|
140
|
+
my ($rgn, @newRgns);
|
|
141
|
+
my $rgns = ref $val[0] eq 'ARRAY' ? $val[0] : [ $val[0] ];
|
|
142
|
+
foreach $rgn (@$rgns) {
|
|
143
|
+
my %newRgn;
|
|
144
|
+
if ($$rgn{RegionBoundary} and $$rgn{RegionBoundary}{RbShape} eq 'rectangle') {
|
|
145
|
+
my @rect = @{$$rgn{RegionBoundary}}{'RbX','RbY','RbW','RbH'};
|
|
146
|
+
if ($$rgn{RegionBoundary}{RbUnit} eq 'pixel') {
|
|
147
|
+
$rect[0] /= $val[1], $rect[2] /= $val[1];
|
|
148
|
+
$rect[1] /= $val[2]; $rect[3] /= $val[2];
|
|
149
|
+
}
|
|
150
|
+
$newRgn{Rectangle} = join(', ', @rect);
|
|
151
|
+
} else {
|
|
152
|
+
next unless defined $$rgn{Name};
|
|
153
|
+
}
|
|
154
|
+
$newRgn{PersonDisplayName} = $$rgn{Name} if defined $$rgn{Name};
|
|
155
|
+
push @newRgns, \%newRgn;
|
|
156
|
+
}
|
|
157
|
+
return { Regions => \@newRgns };
|
|
158
|
+
},
|
|
159
|
+
},
|
|
160
|
+
|
|
161
|
+
# create an IPTC ImageRegion list from an MWG RegionInfo structure
|
|
162
|
+
MyRegionIPTC => {
|
|
163
|
+
Require => 'RegionInfo',
|
|
164
|
+
ValueConv => q{
|
|
165
|
+
my ($rgn, @newRgns);
|
|
166
|
+
foreach $rgn (@{$val[0]{RegionList}}) {
|
|
167
|
+
next unless $$rgn{Area} or defined $$rgn{Name};
|
|
168
|
+
my %newRgn;
|
|
169
|
+
if ($$rgn{Area}) {
|
|
170
|
+
my @rect = @{$$rgn{Area}}{'X','Y','W','H'};
|
|
171
|
+
$rect[0] -= $rect[2]/2;
|
|
172
|
+
$rect[1] -= $rect[3]/2;
|
|
173
|
+
$newRgn{RegionBoundary} = {
|
|
174
|
+
RbShape => 'rectangle',
|
|
175
|
+
RbUnit => 'relative',
|
|
176
|
+
RbX => $rect[0],
|
|
177
|
+
RbY => $rect[1],
|
|
178
|
+
RbW => $rect[2],
|
|
179
|
+
RbH => $rect[3],
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
$newRgn{Name} = $$rgn{Name} if defined $$rgn{Name};
|
|
183
|
+
push @newRgns, \%newRgn;
|
|
184
|
+
}
|
|
185
|
+
return \@newRgns;
|
|
186
|
+
},
|
|
187
|
+
},
|
|
188
|
+
|
|
189
|
+
# create an IPTC ImageRegion list from a Microsoft RegionInfoMP structure
|
|
190
|
+
MyRegionIPTC2 => {
|
|
191
|
+
Name => 'MyRegionIPTC',
|
|
192
|
+
Require => 'RegionInfoMP',
|
|
193
|
+
ValueConv => q{
|
|
194
|
+
my ($rgn, @newRgns);
|
|
195
|
+
foreach $rgn (@{$val[0]{Regions}}) {
|
|
196
|
+
my $name = $$rgn{PersonDisplayName};
|
|
197
|
+
next unless $$rgn{Rectangle} or defined $name;
|
|
198
|
+
my %newRgn;
|
|
199
|
+
if (defined $name) {
|
|
200
|
+
# don't add ignored faces
|
|
201
|
+
next if $name eq 'ffffffffffffffff';
|
|
202
|
+
$newRgn{Name} = $name;
|
|
203
|
+
}
|
|
204
|
+
if ($$rgn{Rectangle}) {
|
|
205
|
+
my @rect = split /\s*,\s*/, $$rgn{Rectangle};
|
|
206
|
+
$newRgn{RegionBoundary} = {
|
|
207
|
+
RbShape => 'rectangle',
|
|
208
|
+
RbUnit => 'relative',
|
|
209
|
+
RbX => $rect[0],
|
|
210
|
+
RbY => $rect[1],
|
|
211
|
+
RbW => $rect[2],
|
|
212
|
+
RbH => $rect[3],
|
|
213
|
+
} if @rect == 4;
|
|
214
|
+
}
|
|
215
|
+
push @newRgns, \%newRgn;
|
|
216
|
+
}
|
|
217
|
+
return \@newRgns;
|
|
218
|
+
},
|
|
219
|
+
},
|
|
86
220
|
},
|
|
87
221
|
);
|
|
88
222
|
|
data/bin/exiftool
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
use strict;
|
|
11
11
|
require 5.004;
|
|
12
12
|
|
|
13
|
-
my $version = '11.
|
|
13
|
+
my $version = '11.75';
|
|
14
14
|
|
|
15
15
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
|
16
16
|
my $exeDir;
|
|
@@ -4305,24 +4305,24 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
|
4305
4305
|
BPG r | FLIF r/w | MKA r | PFB r | TORRENT r
|
|
4306
4306
|
BTF r | FLV r | MKS r | PFM r | TTC r
|
|
4307
4307
|
CHM r | FPF r | MKV r | PGF r | TTF r
|
|
4308
|
-
COS r | FPX r | MNG r/w | PGM r/w |
|
|
4309
|
-
CR2 r/w | GIF r/w | MOBI r | PLIST r |
|
|
4310
|
-
CR3 r/w | GPR r/w | MODD r | PICT r |
|
|
4311
|
-
CRM r/w | GZ r | MOI r | PMP r |
|
|
4312
|
-
CRW r/w | HDP r/w | MOS r/w | PNG r/w |
|
|
4313
|
-
CS1 r/w | HDR r | MOV r/w | PPM r/w |
|
|
4314
|
-
DCM r | HEIC r/w | MP3 r | PPT r |
|
|
4315
|
-
DCP r/w | HEIF r/w | MP4 r/w | PPTX r |
|
|
4316
|
-
DCR r | HTML r | MPC r | PS r/w |
|
|
4317
|
-
DFONT r | ICC r/w/c | MPG r | PSB r/w |
|
|
4318
|
-
DIVX r | ICS r | MPO r/w | PSD r/w |
|
|
4319
|
-
DJVU r | IDML r | MQV r/w | PSP r |
|
|
4320
|
-
DLL r | IIQ r/w | MRW r/w | QTIF r/w |
|
|
4321
|
-
DNG r/w | IND r/w | MXF r | R3D r |
|
|
4322
|
-
DOC r | INSV r | NEF r/w | RA r |
|
|
4323
|
-
DOCX r | INX r | NRW r/w | RAF r/w |
|
|
4324
|
-
DPX r | ISO r | NUMBERS r | RAM r |
|
|
4325
|
-
DR4 r/w/c | ITC r | O r | RAR r |
|
|
4308
|
+
COS r | FPX r | MNG r/w | PGM r/w | TXT r
|
|
4309
|
+
CR2 r/w | GIF r/w | MOBI r | PLIST r | VCF r
|
|
4310
|
+
CR3 r/w | GPR r/w | MODD r | PICT r | VRD r/w/c
|
|
4311
|
+
CRM r/w | GZ r | MOI r | PMP r | VSD r
|
|
4312
|
+
CRW r/w | HDP r/w | MOS r/w | PNG r/w | WAV r
|
|
4313
|
+
CS1 r/w | HDR r | MOV r/w | PPM r/w | WDP r/w
|
|
4314
|
+
DCM r | HEIC r/w | MP3 r | PPT r | WEBP r
|
|
4315
|
+
DCP r/w | HEIF r/w | MP4 r/w | PPTX r | WEBM r
|
|
4316
|
+
DCR r | HTML r | MPC r | PS r/w | WMA r
|
|
4317
|
+
DFONT r | ICC r/w/c | MPG r | PSB r/w | WMV r
|
|
4318
|
+
DIVX r | ICS r | MPO r/w | PSD r/w | WTV r
|
|
4319
|
+
DJVU r | IDML r | MQV r/w | PSP r | WV r
|
|
4320
|
+
DLL r | IIQ r/w | MRW r/w | QTIF r/w | X3F r/w
|
|
4321
|
+
DNG r/w | IND r/w | MXF r | R3D r | XCF r
|
|
4322
|
+
DOC r | INSV r | NEF r/w | RA r | XLS r
|
|
4323
|
+
DOCX r | INX r | NRW r/w | RAF r/w | XLSX r
|
|
4324
|
+
DPX r | ISO r | NUMBERS r | RAM r | XMP r/w/c
|
|
4325
|
+
DR4 r/w/c | ITC r | O r | RAR r | ZIP r
|
|
4326
4326
|
|
|
4327
4327
|
Meta Information
|
|
4328
4328
|
----------------------+----------------------+---------------------
|
|
@@ -5153,7 +5153,7 @@ Multiple B<-p> options may be used, each contributing a line (or more) of
|
|
|
5153
5153
|
text to the output. Lines beginning with C<#[HEAD]> and C<#[TAIL]> are
|
|
5154
5154
|
output before the first processed file and after the last processed file
|
|
5155
5155
|
respectively. Lines beginning with C<#[SECT]> and C<#[ENDS]> are output
|
|
5156
|
-
|
|
5156
|
+
before and after each section of files. A section is defined as a group of
|
|
5157
5157
|
consecutive files with the same section header (eg. files are grouped by
|
|
5158
5158
|
directory if C<#[SECT]> contains C<$directory>). Lines beginning with
|
|
5159
5159
|
C<#[BODY]> and lines not beginning with C<#> are output for each processed
|
|
@@ -5173,7 +5173,7 @@ with this command:
|
|
|
5173
5173
|
|
|
5174
5174
|
produces output like this:
|
|
5175
5175
|
|
|
5176
|
-
-- Generated by ExifTool 11.
|
|
5176
|
+
-- Generated by ExifTool 11.75 --
|
|
5177
5177
|
File: a.jpg - 2003:10:31 15:44:19
|
|
5178
5178
|
(f/5.6, 1/60s, ISO 100)
|
|
5179
5179
|
File: b.jpg - 2006:05:23 11:57:38
|