exiftool_vendored 10.58.0 → 10.65.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 +100 -1
- data/bin/MANIFEST +2 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +39 -38
- data/bin/arg_files/exif2iptc.args +3 -0
- data/bin/arg_files/iptc2exif.args +3 -0
- data/bin/config_files/example.config +16 -14
- data/bin/config_files/photoshop_paths.config +10 -0
- data/bin/exiftool +71 -65
- data/bin/lib/Image/ExifTool/APE.pm +5 -0
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +31 -15
- data/bin/lib/Image/ExifTool/Canon.pm +18 -4
- data/bin/lib/Image/ExifTool/CanonCustom.pm +3 -0
- data/bin/lib/Image/ExifTool/Charset/DOSLatin1.pm +49 -0
- data/bin/lib/Image/ExifTool/Charset/DOSLatinUS.pm +49 -0
- data/bin/lib/Image/ExifTool/Charset.pm +8 -5
- data/bin/lib/Image/ExifTool/Exif.pm +37 -18
- data/bin/lib/Image/ExifTool/FLAC.pm +47 -37
- data/bin/lib/Image/ExifTool/FLIR.pm +3 -3
- data/bin/lib/Image/ExifTool/FujiFilm.pm +5 -2
- data/bin/lib/Image/ExifTool/GPS.pm +6 -6
- data/bin/lib/Image/ExifTool/Geotag.pm +1 -1
- data/bin/lib/Image/ExifTool/H264.pm +2 -0
- data/bin/lib/Image/ExifTool/ID3.pm +8 -3
- data/bin/lib/Image/ExifTool/IPTC.pm +1 -1
- data/bin/lib/Image/ExifTool/Import.pm +4 -1
- data/bin/lib/Image/ExifTool/InDesign.pm +11 -7
- data/bin/lib/Image/ExifTool/Kodak.pm +4 -1
- data/bin/lib/Image/ExifTool/Lang/de.pm +31 -31
- data/bin/lib/Image/ExifTool/MWG.pm +12 -4
- data/bin/lib/Image/ExifTool/MakerNotes.pm +3 -3
- data/bin/lib/Image/ExifTool/Matroska.pm +2 -1
- data/bin/lib/Image/ExifTool/Microsoft.pm +3 -3
- data/bin/lib/Image/ExifTool/Minolta.pm +71 -61
- data/bin/lib/Image/ExifTool/Nikon.pm +286 -43
- data/bin/lib/Image/ExifTool/NikonCustom.pm +1049 -0
- data/bin/lib/Image/ExifTool/Olympus.pm +4 -1
- data/bin/lib/Image/ExifTool/PNG.pm +4 -7
- data/bin/lib/Image/ExifTool/PanasonicRaw.pm +24 -1
- data/bin/lib/Image/ExifTool/Pentax.pm +20 -6
- data/bin/lib/Image/ExifTool/Photoshop.pm +24 -3
- data/bin/lib/Image/ExifTool/QuickTime.pm +545 -14
- data/bin/lib/Image/ExifTool/README +16 -9
- data/bin/lib/Image/ExifTool/RIFF.pm +8 -1
- data/bin/lib/Image/ExifTool/Samsung.pm +5 -4
- data/bin/lib/Image/ExifTool/Sigma.pm +9 -1
- data/bin/lib/Image/ExifTool/Sony.pm +327 -153
- data/bin/lib/Image/ExifTool/TagLookup.pm +3273 -3220
- data/bin/lib/Image/ExifTool/TagNames.pod +317 -38
- data/bin/lib/Image/ExifTool/Validate.pm +15 -1
- data/bin/lib/Image/ExifTool/WriteExif.pl +5 -0
- data/bin/lib/Image/ExifTool/WriteIPTC.pl +23 -1
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +8 -2
- data/bin/lib/Image/ExifTool/WriteXMP.pl +7 -0
- data/bin/lib/Image/ExifTool/Writer.pl +96 -18
- data/bin/lib/Image/ExifTool/XMP.pm +20 -11
- data/bin/lib/Image/ExifTool/XMP2.pl +634 -583
- data/bin/lib/Image/ExifTool.pm +124 -17
- data/bin/lib/Image/ExifTool.pod +86 -82
- data/bin/perl-Image-ExifTool.spec +38 -37
- 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: 27a44a58ea12d15a33606f84733a1812f93425ce
|
4
|
+
data.tar.gz: 146f7d7515b8ac7d284a8002cf3fbb2645b7b9e3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f642258f4a9d9f62063d0194623763af4e9e2d419420c6bce9bcc3e2df5d101f2ce895537f45c8a9c65ea35fa1d28f0652a0b338832fa1daa715825d351d7193
|
7
|
+
data.tar.gz: d4f6acbbe47771276b279e978dfd6364be06d785e6684a74f5bc25d826f0d037cfbe1a7995c7a87497988a34a62f60441ddcf1b490035b318424e02d7e47a088
|
data/bin/Changes
CHANGED
@@ -7,13 +7,112 @@ RSS feed: http://owl.phy.queensu.ca/~phil/exiftool/rss.xml
|
|
7
7
|
Note: The most recent production release is Version 10.55. (Other versions are
|
8
8
|
considered development releases, and are not uploaded to CPAN.)
|
9
9
|
|
10
|
+
Oct. 31, 2017 - Version 10.65
|
11
|
+
|
12
|
+
- Added support for DOSLatinUS (cp437) and DOSLatin1 (cp850) character sets
|
13
|
+
- Added Extra ForceWrite tag for forcing metadata in a file to be rewritten
|
14
|
+
- Added write support for RAF images from some newer FujiFilm models
|
15
|
+
- Added a new SonyModelID, Sony LensType and Olympus LensTypes (thanks LibRaw)
|
16
|
+
- Added a new Pentax LensType
|
17
|
+
- Added a new Nikon LensID
|
18
|
+
- Decode more Sony tags for new models (thanks Jos Roost)
|
19
|
+
- Decode Nikon D850 ShotInfo tags and custom settings (thanks Warren Hatch)
|
20
|
+
- Decode Nikon D850 ColorTemperatureAuto (thanks LibRaw)
|
21
|
+
- Decode Photoshop LayerModifyDates and LayerIDs
|
22
|
+
- Improved decoding of Nikon D5/D500/D810 ShotInfo tags
|
23
|
+
- Allow advanced formatting expressions to return a list reference
|
24
|
+
- Fixed problem in Composite:GPSAltitude when derived from an "undef" altitude
|
25
|
+
- Fixed bug which could result in runtime warning when excluding some tags
|
26
|
+
from being extracted
|
27
|
+
|
28
|
+
Oct. 17, 2017 - Version 10.64
|
29
|
+
|
30
|
+
- Added a new Nikon LensID
|
31
|
+
- Added a new SonyModelID
|
32
|
+
- Added a new CanonModelID (thanks LibRaw)
|
33
|
+
- Added some new non-standard CustomRendered values
|
34
|
+
- Decode FrameRate from FLIR SEQ files (thanks Sebastian Hani)
|
35
|
+
- Enhanced shift feature to be able to shift some not-so-simple numerical
|
36
|
+
values (eg. GPSLatitude) with -TAG+=VALUE syntax
|
37
|
+
- Fixed problem with possible malformed UTF-8 when writing IPTC values that
|
38
|
+
require truncation
|
39
|
+
- Fixed incorrect Writable type for XMP-GSpherical:TimeStamp
|
40
|
+
- Fixed incorrect family 2 group name for Nikon HDRInfo tags
|
41
|
+
|
42
|
+
Oct. 4, 2017 - Version 10.63
|
43
|
+
|
44
|
+
- Added a number of new Canon LensTypes (thanks Norbert Wasser for some)
|
45
|
+
- Added a new CanonModelID
|
46
|
+
- Added a new Olympus CameraType
|
47
|
+
- Decode MD5Signature in FLAC StreamInfo (thanks Tim Eliseo)
|
48
|
+
- Improved decoding of HEIC/HEIF metadata
|
49
|
+
- Removed useless write support for QuickTime date/time tags in HEIC/HEIF
|
50
|
+
images
|
51
|
+
- Fixed "Incorrect XMP stream length" problem when writing some INDD files
|
52
|
+
|
53
|
+
Sept. 28, 2017 - Version 10.62
|
54
|
+
|
55
|
+
- Added preliminary support for HEIC/HEIF images
|
56
|
+
- Added support for Google depthmap metadata (XMP-GDepth)
|
57
|
+
- Added some new Sony/Minolta lenses (thanks LibRaw and Jos Roost)
|
58
|
+
- Added a new CanonModelID (thanks Norbert Wasser)
|
59
|
+
- Added a new Nikon LensID (thanks Michael Tapes)
|
60
|
+
- Decode a new Sony tag (thanks Jos Roost)
|
61
|
+
- Decode some new Nikon tags (thanks Warren Hatch)
|
62
|
+
- Decode maker notes from Leica TL2
|
63
|
+
- Enhanced ID3 -v2 output to show frame flags
|
64
|
+
- Fixed problem decoding Nikon D810 camera tilt angles
|
65
|
+
- Fixed problem where SphericalVideoXML metadata was deleted when writing XMP
|
66
|
+
to a QuickTime-format file containing this information
|
67
|
+
|
68
|
+
Aug. 18, 2017 - Version 10.61
|
69
|
+
|
70
|
+
- Added a new Canon LensType (thanks LibRaw)
|
71
|
+
- Added a number of new Sigma, Nikon and Sony lenses (thanks Jos Roost)
|
72
|
+
- Added a new Nikon LensID (thanks Yang You)
|
73
|
+
- Decode a number of new Sony tags (thanks Jos Roost)
|
74
|
+
- Decode Panasonic FocusDistance (thanks David Ellsworth)
|
75
|
+
- Updated to the IPTC video metadata 1.1 specification
|
76
|
+
- Restored the ability to delete JpgFromRaw from RAW images (broken in 10.38)
|
77
|
+
- Fixed problem decoding maker notes from Pentax K-70 AVI videos
|
78
|
+
- Fixed problem conditionally replacing a tag if the value to be deleted was
|
79
|
+
taken from another tag while the new value was assigned directly
|
80
|
+
|
81
|
+
July 21, 2017 - Version 10.60
|
82
|
+
|
83
|
+
- Added two new Sony/Minolta LensTypes (thanks Jos Roost)
|
84
|
+
- Added a new Pentax LensType (thanks Dieter Pearcey)
|
85
|
+
- Added new Composite UniquePathPoints tag to photoshop_paths.config
|
86
|
+
- Extract raw-data JFIF/JFXX thumbnails as ThumbnailTIFF
|
87
|
+
- Improved Sony LensSpec conversion
|
88
|
+
- Updated German translations (thanks Herbert Kauer)
|
89
|
+
- Set family 1 group name of JFXX ThumbnailImage to JFXX instead of JFIF
|
90
|
+
- Fixed problem with %C no longer incrementing properly
|
91
|
+
|
92
|
+
July 7, 2017 - Version 10.59
|
93
|
+
|
94
|
+
- Added a new Canon LensType (thanks LibRaw)
|
95
|
+
- Added a new Nikon LensID
|
96
|
+
- Added "wrong extension" warning to experimental -validate feature
|
97
|
+
- Decode Pentax maker notes in Q-S1 AVI videos
|
98
|
+
- Updated iptc2exif.args and exif2iptc.args to support new EXIF OffsetTime
|
99
|
+
tags (thanks Herb)
|
100
|
+
- Patched potential problem with "Use of uninitialized value $pos" error when
|
101
|
+
importing malformed JSON data
|
102
|
+
- Patched to avoid runtime warning due to invalid Nikon ShutterCount value
|
103
|
+
- Raise an error if -b is used with the -csv option
|
104
|
+
- Changed PNG exIf chunk name to eXIf
|
105
|
+
- Fixed bug introduced in 10.26 which could cause hang when %C is used in an
|
106
|
+
output file name
|
107
|
+
- Fixed MWG:DateTimeOriginal and MWG:CreateDate to return XMP when EXIF and
|
108
|
+
IPTC don't exist
|
109
|
+
|
10
110
|
June 29, 2017 - Version 10.58
|
11
111
|
|
12
112
|
- Added read support for RIFF-format MBWF/RF64 files
|
13
113
|
- Added write support for dji-drone XMP tags
|
14
114
|
- Added a new Canon LensType (thanks Steve Bates)
|
15
115
|
- Added a few new Sony/Minolta LensType values (thanks Jos Roost)
|
16
|
-
- Added a new Canon LensType
|
17
116
|
- Added a couple of new CanonModelID values (thanks LibRaw and Norbert Wasser)
|
18
117
|
- Decode some new FujiFilm tags (thanks Chris Schucker)
|
19
118
|
- Enhanced FileSize print conversion to show in "GB" for large files
|
data/bin/MANIFEST
CHANGED
@@ -207,6 +207,8 @@ lib/Image/ExifTool/Charset.pm
|
|
207
207
|
lib/Image/ExifTool/Charset/Arabic.pm
|
208
208
|
lib/Image/ExifTool/Charset/Baltic.pm
|
209
209
|
lib/Image/ExifTool/Charset/Cyrillic.pm
|
210
|
+
lib/Image/ExifTool/Charset/DOSLatin1.pm
|
211
|
+
lib/Image/ExifTool/Charset/DOSLatinUS.pm
|
210
212
|
lib/Image/ExifTool/Charset/Greek.pm
|
211
213
|
lib/Image/ExifTool/Charset/Hebrew.pm
|
212
214
|
lib/Image/ExifTool/Charset/JIS.pm
|
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
@@ -14,42 +14,43 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
14
14
|
|
15
15
|
File Types
|
16
16
|
------------+-------------+-------------+-------------+------------
|
17
|
-
3FR r |
|
18
|
-
3G2 r/w |
|
19
|
-
3GP r/w |
|
20
|
-
A r |
|
21
|
-
AA r |
|
22
|
-
AAX r/w |
|
23
|
-
ACR r |
|
24
|
-
AFM r |
|
25
|
-
AI r/w |
|
26
|
-
AIFF r |
|
27
|
-
APE r |
|
28
|
-
ARW r/w |
|
29
|
-
ASF r |
|
30
|
-
AVI r |
|
31
|
-
AZW r |
|
32
|
-
BMP r |
|
33
|
-
BPG r |
|
34
|
-
BTF r |
|
35
|
-
CHM r |
|
36
|
-
COS r |
|
37
|
-
CR2 r/w |
|
38
|
-
CRW r/w |
|
39
|
-
CS1 r/w |
|
40
|
-
DCM r |
|
41
|
-
DCP r/w |
|
42
|
-
DCR r |
|
43
|
-
DFONT r |
|
44
|
-
DIVX r |
|
45
|
-
DJVU r |
|
46
|
-
DLL r |
|
47
|
-
DNG r/w |
|
48
|
-
DOC r |
|
49
|
-
DOCX r |
|
50
|
-
DPX r |
|
51
|
-
DR4 r/w/c |
|
52
|
-
DSS r |
|
17
|
+
3FR r | DVB r/w | JSON r | OFR r | RTF r
|
18
|
+
3G2 r/w | DYLIB r | K25 r | OGG r | RW2 r/w
|
19
|
+
3GP r/w | EIP r | KDC r | OGV r | RWL r/w
|
20
|
+
A r | EPS r/w | KEY r | OPUS r | RWZ r
|
21
|
+
AA r | EPUB r | LA r | ORF r/w | RM r
|
22
|
+
AAX r/w | ERF r/w | LFP r | OTF r | SEQ r
|
23
|
+
ACR r | EXE r | LNK r | PAC r | SO r
|
24
|
+
AFM r | EXIF r/w/c | M2TS r | PAGES r | SR2 r/w
|
25
|
+
AI r/w | EXR r | M4A/V r/w | PBM r/w | SRF r
|
26
|
+
AIFF r | EXV r/w/c | MAX r | PCD r | SRW r/w
|
27
|
+
APE r | F4A/V r/w | MEF r/w | PDB r | SVG r
|
28
|
+
ARW r/w | FFF r/w | MIE r/w/c | PDF r/w | SWF r
|
29
|
+
ASF r | FLA r | MIFF r | PEF r/w | THM r/w
|
30
|
+
AVI r | FLAC r | MKA r | PFA r | TIFF r/w
|
31
|
+
AZW r | FLIF r/w | MKS r | PFB r | TORRENT r
|
32
|
+
BMP r | FLV r | MKV r | PFM r | TTC r
|
33
|
+
BPG r | FPF r | MNG r/w | PGF r | TTF r
|
34
|
+
BTF r | FPX r | MOBI r | PGM r/w | VCF r
|
35
|
+
CHM r | GIF r/w | MODD r | PLIST r | VRD r/w/c
|
36
|
+
COS r | GZ r | MOI r | PICT r | VSD r
|
37
|
+
CR2 r/w | HDP r/w | MOS r/w | PMP r | WAV r
|
38
|
+
CRW r/w | HDR r | MOV r/w | PNG r/w | WDP r/w
|
39
|
+
CS1 r/w | HEIC r | MP3 r | PPM r/w | WEBP r
|
40
|
+
DCM r | HEIF r | MP4 r/w | PPT r | WEBM r
|
41
|
+
DCP r/w | HTML r | MPC r | PPTX r | WMA r
|
42
|
+
DCR r | ICC r/w/c | MPG r | PS r/w | WMV r
|
43
|
+
DFONT r | ICS r | MPO r/w | PSB r/w | WV r
|
44
|
+
DIVX r | IDML r | MQV r/w | PSD r/w | X3F r/w
|
45
|
+
DJVU r | IIQ r/w | MRW r/w | PSP r | XCF r
|
46
|
+
DLL r | IND r/w | MXF r | QTIF r/w | XLS r
|
47
|
+
DNG r/w | INX r | NEF r/w | RA r | XLSX r
|
48
|
+
DOC r | ISO r | NRW r/w | RAF r/w | XMP r/w/c
|
49
|
+
DOCX r | ITC r | NUMBERS r | RAM r | ZIP r
|
50
|
+
DPX r | J2C r | O r | RAR r |
|
51
|
+
DR4 r/w/c | JNG r/w | ODP r | RAW r/w |
|
52
|
+
DSS r | JP2 r/w | ODS r | RIFF r |
|
53
|
+
DV r | JPEG r/w | ODT r | RSRC r |
|
53
54
|
|
54
55
|
Meta Information
|
55
56
|
----------------------+----------------------+---------------------
|
@@ -101,8 +102,8 @@ your home directory, then you would type the following commands in a
|
|
101
102
|
terminal window to extract and run ExifTool:
|
102
103
|
|
103
104
|
cd ~/Desktop
|
104
|
-
gzip -dc Image-ExifTool-10.
|
105
|
-
cd Image-ExifTool-10.
|
105
|
+
gzip -dc Image-ExifTool-10.65.tar.gz | tar -xf -
|
106
|
+
cd Image-ExifTool-10.65
|
106
107
|
./exiftool t/images/ExifTool.jpg
|
107
108
|
|
108
109
|
Note: These commands extract meta information from one of the test images.
|
@@ -8,6 +8,7 @@
|
|
8
8
|
# Requires: ExifTool version 6.51 or later
|
9
9
|
#
|
10
10
|
# Revisions: 2011/09/13 - P. Harvey Created
|
11
|
+
# 2017/07/06 - PH Set time zone from new EXIF OffsetTime tags
|
11
12
|
#
|
12
13
|
# Notes: 1) IPTC requires a timezone but EXIF does not support one, so
|
13
14
|
# the local timezone is assumed when writing the IPTC times
|
@@ -23,6 +24,8 @@
|
|
23
24
|
# appropriate date or time part out of the EXIF date/time value
|
24
25
|
-IPTC:DateCreated < EXIF:DateTimeOriginal
|
25
26
|
-IPTC:TimeCreated < EXIF:DateTimeOriginal
|
27
|
+
-IPTC:TimeCreated < Composite:SubSecDateTimeOriginal
|
26
28
|
-IPTC:DigitalCreationDate < EXIF:CreateDate
|
27
29
|
-IPTC:DigitalCreationTime < EXIF:CreateDate
|
30
|
+
-IPTC:DigitalCreationTime < Composite:SubSecCreateDate
|
28
31
|
# end
|
@@ -8,6 +8,7 @@
|
|
8
8
|
# Requires: ExifTool version 7.98 or later
|
9
9
|
#
|
10
10
|
# Revisions: 2011/09/13 - P. Harvey Created
|
11
|
+
# 2017/07/06 - PH Set new EXIF OffsetTime tags
|
11
12
|
#
|
12
13
|
# Notes: These arguments will not delete existing EXIF tags which are
|
13
14
|
# missing from the IPTC. The EXIF tags should be deleted
|
@@ -18,4 +19,6 @@
|
|
18
19
|
-EXIF:ImageDescription < IPTC:Caption-Abstract
|
19
20
|
-EXIF:DateTimeOriginal < Composite:DateTimeCreated
|
20
21
|
-EXIF:CreateDate < Composite:DigitalCreationDateTime
|
22
|
+
-EXIF:OffsetTimeOriginal < IPTC:TimeCreated
|
23
|
+
-EXIF:OffsetTimeDigitized < IPTC:DigitalCreationTime
|
21
24
|
# end
|
@@ -155,13 +155,15 @@
|
|
155
155
|
},
|
156
156
|
# Composite tags are added to the Composite table:
|
157
157
|
'Image::ExifTool::Composite' => {
|
158
|
-
# Composite tags are
|
158
|
+
# Composite tags have values that are derived from the values of
|
159
|
+
# other tags. The Require/Desire elements below specify constituent
|
159
160
|
# tags that must/may exist, and the keys of these hashes are used as
|
160
|
-
# indices in the @val array of the ValueConv expression to access
|
161
|
-
#
|
162
|
-
#
|
163
|
-
#
|
164
|
-
#
|
161
|
+
# indices in the @val array of the ValueConv expression to access the
|
162
|
+
# numerical (-n) values of these tags. Print-converted values are
|
163
|
+
# accessed via the @prt array. All Require'd tags must exist for
|
164
|
+
# the Composite tag to be evaluated. If no Require'd tags are
|
165
|
+
# specified, then at least one of the Desire'd tags must exist. See
|
166
|
+
# the Composite table in Image::ExifTool::Exif for more examples,
|
165
167
|
# and lib/Image/ExifTool/README for all of the details.
|
166
168
|
BaseName => {
|
167
169
|
Require => {
|
@@ -279,14 +281,14 @@
|
|
279
281
|
},
|
280
282
|
List => 'Seq', # structures may also be elements of a list
|
281
283
|
},
|
282
|
-
# Each field in the structure has
|
283
|
-
#
|
284
|
-
#
|
285
|
-
#
|
286
|
-
#
|
287
|
-
#
|
288
|
-
#
|
289
|
-
#
|
284
|
+
# Each field in the structure has a corresponding flattened tag that is
|
285
|
+
# generated automatically with an ID made from a concatenation of the
|
286
|
+
# original structure tag ID and the field name (after capitalizing the
|
287
|
+
# first letter of the field name if necessary). The Name and/or
|
288
|
+
# Description of these flattened tags may be changed if desired, but all
|
289
|
+
# other tag properties are taken from the structure field definition.
|
290
|
+
# The "Flat" flag must be used when setting the Name or Description of a
|
291
|
+
# flattened tag. For example:
|
290
292
|
NewXMPxxxStructX => { Name => 'SomeOtherName', Flat => 1 },
|
291
293
|
);
|
292
294
|
|
@@ -67,6 +67,7 @@
|
|
67
67
|
# 2017/03/19 - PH Added "-" or "+" at the start of closed or open
|
68
68
|
# subpath respectively
|
69
69
|
# 2017/06/03 - PH Added TotalPathPoints
|
70
|
+
# 2017/07/17 - PH Added UniquePathPoints
|
70
71
|
#
|
71
72
|
# References: http://u88.n24.queensu.ca/exiftool/forum/index.php/topic,1621.0.html
|
72
73
|
# http://u88.n24.queensu.ca/exiftool/forum/index.php/topic,3910.0.html
|
@@ -149,6 +150,8 @@ sub PrintPath($$;$$)
|
|
149
150
|
my ($val, $self) = @_;
|
150
151
|
my $count = 0;
|
151
152
|
my $pts = 0;
|
153
|
+
my $uniq = 0;
|
154
|
+
my %uniq;
|
152
155
|
foreach (@$val) {
|
153
156
|
next unless defined $_;
|
154
157
|
++$count;
|
@@ -159,13 +162,20 @@ sub PrintPath($$;$$)
|
|
159
162
|
my $type = Get16u($_, $pos);
|
160
163
|
last if $type == 0x2f23; # (start of path name added by ExifTool)
|
161
164
|
next unless {1=>1,2=>1,4=>1,5=>1}->{$type};
|
165
|
+
my $pt = substr($$_, $pos+10, 8);
|
166
|
+
$uniq{$pt} or ++$uniq, $uniq{$pt} = 1;
|
162
167
|
++$pts;
|
163
168
|
}
|
164
169
|
}
|
165
170
|
$$self{TotalPathPoints} = $pts;
|
171
|
+
$$self{UniquePathPoints} = $uniq;
|
166
172
|
return $count;
|
167
173
|
},
|
168
174
|
},
|
175
|
+
UniquePathPoints => {
|
176
|
+
Require => 'PathCount',
|
177
|
+
ValueConv => '$$self{UniquePathPoints}',
|
178
|
+
},
|
169
179
|
TotalPathPoints => {
|
170
180
|
Require => 'PathCount',
|
171
181
|
ValueConv => '$$self{TotalPathPoints}',
|
data/bin/exiftool
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
use strict;
|
13
13
|
require 5.004;
|
14
14
|
|
15
|
-
my $version = '10.
|
15
|
+
my $version = '10.65';
|
16
16
|
|
17
17
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
18
18
|
my $exeDir;
|
@@ -1314,8 +1314,8 @@ if ($tagOut and ($csv or %printFmt or $tabFormat or $xml or ($verbose and $html)
|
|
1314
1314
|
next;
|
1315
1315
|
}
|
1316
1316
|
|
1317
|
-
if ($
|
1318
|
-
Warn
|
1317
|
+
if ($csv and $csv eq 'CSV' and not $isWriting and ($textOut or $binaryOutput)) {
|
1318
|
+
Warn 'Sorry, ' . ($textOut ? '-w' : '-b') . " may not be combined with -csv\n";
|
1319
1319
|
$rtnVal = 1;
|
1320
1320
|
next;
|
1321
1321
|
}
|
@@ -3171,7 +3171,7 @@ sub ConvertBinary($)
|
|
3171
3171
|
}
|
3172
3172
|
} else {
|
3173
3173
|
# (-b is not valid for HTML output)
|
3174
|
-
my $bOpt = $html ? '' : ', use -b option to extract';
|
3174
|
+
my $bOpt = ($html or ($csv and $csv eq 'CSV')) ? '' : ', use -b option to extract';
|
3175
3175
|
if ($$obj =~ /^Binary data \d+ bytes$/) {
|
3176
3176
|
$obj = "($$obj$bOpt)";
|
3177
3177
|
} else {
|
@@ -3724,15 +3724,16 @@ sub NextUnusedFilename($;$$)
|
|
3724
3724
|
return $fmt unless $fmt =~ /%[-+]?\d*\.?\d*[lun]?[cC]/;
|
3725
3725
|
my %sep = ( '-' => '-', '+' => '_' );
|
3726
3726
|
my ($copy, $alpha) = (0, 'a');
|
3727
|
+
my $seq = $seqFileNum - 1;
|
3727
3728
|
for (;;) {
|
3728
3729
|
my ($filename, $pos) = ('', 0);
|
3729
3730
|
while ($fmt =~ /(%([-+]?)(\d*)(\.?)(\d*)([lun]?)([cC]))/g) {
|
3730
3731
|
$filename .= substr($fmt, $pos, pos($fmt) - $pos - length($1));
|
3731
3732
|
$pos = pos($fmt);
|
3732
3733
|
my ($sign, $wid, $dec, $wid2, $mod, $tok) = ($2, $3 || 0, $4, $5 || 0, $6, $7);
|
3733
|
-
my $
|
3734
|
+
my $diff = 0;
|
3734
3735
|
if ($tok eq 'C') {
|
3735
|
-
$
|
3736
|
+
$diff = $wid;
|
3736
3737
|
$wid = $wid2;
|
3737
3738
|
} else {
|
3738
3739
|
next unless $dec or $copy;
|
@@ -3741,13 +3742,13 @@ sub NextUnusedFilename($;$$)
|
|
3741
3742
|
# add dash or underline separator if '-' or '+' specified
|
3742
3743
|
$filename .= $sep{$sign} if $sign;
|
3743
3744
|
if ($mod and $mod ne 'n') {
|
3744
|
-
my $a = $tok eq 'C' ? Num2Alpha($seq) : $alpha;
|
3745
|
+
my $a = $tok eq 'C' ? Num2Alpha($diff + $seq++) : $alpha;
|
3745
3746
|
my $str = ($wid and $wid > length $a) ? 'a' x ($wid - length($a)) : '';
|
3746
3747
|
$str .= $a;
|
3747
3748
|
$str = uc $str if $mod eq 'u';
|
3748
3749
|
$filename .= $str;
|
3749
3750
|
} else {
|
3750
|
-
my $c = $tok eq 'C' ? $seq : $copy;
|
3751
|
+
my $c = $tok eq 'C' ? ($diff + $seq++) : $copy;
|
3751
3752
|
my $num = $c + ($mod ? 1 : 0);
|
3752
3753
|
$filename .= $wid ? sprintf("%.${wid}d",$num) : $num;
|
3753
3754
|
}
|
@@ -4074,42 +4075,43 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
4074
4075
|
|
4075
4076
|
File Types
|
4076
4077
|
------------+-------------+-------------+-------------+------------
|
4077
|
-
3FR r |
|
4078
|
-
3G2 r/w |
|
4079
|
-
3GP r/w |
|
4080
|
-
A r |
|
4081
|
-
AA r |
|
4082
|
-
AAX r/w |
|
4083
|
-
ACR r |
|
4084
|
-
AFM r |
|
4085
|
-
AI r/w |
|
4086
|
-
AIFF r |
|
4087
|
-
APE r |
|
4088
|
-
ARW r/w |
|
4089
|
-
ASF r |
|
4090
|
-
AVI r |
|
4091
|
-
AZW r |
|
4092
|
-
BMP r |
|
4093
|
-
BPG r |
|
4094
|
-
BTF r |
|
4095
|
-
CHM r |
|
4096
|
-
COS r |
|
4097
|
-
CR2 r/w |
|
4098
|
-
CRW r/w |
|
4099
|
-
CS1 r/w |
|
4100
|
-
DCM r |
|
4101
|
-
DCP r/w |
|
4102
|
-
DCR r |
|
4103
|
-
DFONT r |
|
4104
|
-
DIVX r |
|
4105
|
-
DJVU r |
|
4106
|
-
DLL r |
|
4107
|
-
DNG r/w |
|
4108
|
-
DOC r |
|
4109
|
-
DOCX r |
|
4110
|
-
DPX r |
|
4111
|
-
DR4 r/w/c |
|
4112
|
-
DSS r |
|
4078
|
+
3FR r | DVB r/w | JSON r | OFR r | RTF r
|
4079
|
+
3G2 r/w | DYLIB r | K25 r | OGG r | RW2 r/w
|
4080
|
+
3GP r/w | EIP r | KDC r | OGV r | RWL r/w
|
4081
|
+
A r | EPS r/w | KEY r | OPUS r | RWZ r
|
4082
|
+
AA r | EPUB r | LA r | ORF r/w | RM r
|
4083
|
+
AAX r/w | ERF r/w | LFP r | OTF r | SEQ r
|
4084
|
+
ACR r | EXE r | LNK r | PAC r | SO r
|
4085
|
+
AFM r | EXIF r/w/c | M2TS r | PAGES r | SR2 r/w
|
4086
|
+
AI r/w | EXR r | M4A/V r/w | PBM r/w | SRF r
|
4087
|
+
AIFF r | EXV r/w/c | MAX r | PCD r | SRW r/w
|
4088
|
+
APE r | F4A/V r/w | MEF r/w | PDB r | SVG r
|
4089
|
+
ARW r/w | FFF r/w | MIE r/w/c | PDF r/w | SWF r
|
4090
|
+
ASF r | FLA r | MIFF r | PEF r/w | THM r/w
|
4091
|
+
AVI r | FLAC r | MKA r | PFA r | TIFF r/w
|
4092
|
+
AZW r | FLIF r/w | MKS r | PFB r | TORRENT r
|
4093
|
+
BMP r | FLV r | MKV r | PFM r | TTC r
|
4094
|
+
BPG r | FPF r | MNG r/w | PGF r | TTF r
|
4095
|
+
BTF r | FPX r | MOBI r | PGM r/w | VCF r
|
4096
|
+
CHM r | GIF r/w | MODD r | PLIST r | VRD r/w/c
|
4097
|
+
COS r | GZ r | MOI r | PICT r | VSD r
|
4098
|
+
CR2 r/w | HDP r/w | MOS r/w | PMP r | WAV r
|
4099
|
+
CRW r/w | HDR r | MOV r/w | PNG r/w | WDP r/w
|
4100
|
+
CS1 r/w | HEIC r | MP3 r | PPM r/w | WEBP r
|
4101
|
+
DCM r | HEIF r | MP4 r/w | PPT r | WEBM r
|
4102
|
+
DCP r/w | HTML r | MPC r | PPTX r | WMA r
|
4103
|
+
DCR r | ICC r/w/c | MPG r | PS r/w | WMV r
|
4104
|
+
DFONT r | ICS r | MPO r/w | PSB r/w | WV r
|
4105
|
+
DIVX r | IDML r | MQV r/w | PSD r/w | X3F r/w
|
4106
|
+
DJVU r | IIQ r/w | MRW r/w | PSP r | XCF r
|
4107
|
+
DLL r | IND r/w | MXF r | QTIF r/w | XLS r
|
4108
|
+
DNG r/w | INX r | NEF r/w | RA r | XLSX r
|
4109
|
+
DOC r | ISO r | NRW r/w | RAF r/w | XMP r/w/c
|
4110
|
+
DOCX r | ITC r | NUMBERS r | RAM r | ZIP r
|
4111
|
+
DPX r | J2C r | O r | RAR r |
|
4112
|
+
DR4 r/w/c | JNG r/w | ODP r | RAW r/w |
|
4113
|
+
DSS r | JP2 r/w | ODS r | RIFF r |
|
4114
|
+
DV r | JPEG r/w | ODT r | RSRC r |
|
4113
4115
|
|
4114
4116
|
Meta Information
|
4115
4117
|
----------------------+----------------------+---------------------
|
@@ -4419,8 +4421,9 @@ single file. In this case, C<@> may be used to represent the source file
|
|
4419
4421
|
processing multiple files. Specified tags are then copied from each file in
|
4420
4422
|
turn as it is rewritten. For advanced batch use, the source file name may
|
4421
4423
|
also be specified using a I<FMT> string in which %d, %f and %e represent the
|
4422
|
-
directory, file name and extension of I<FILE>.
|
4423
|
-
|
4424
|
+
directory, file name and extension of I<FILE>. (eg. the current I<FILE>
|
4425
|
+
would be represented by C<%d%f.%e>, with the same effect as C<@>). See the
|
4426
|
+
B<-w> option for I<FMT> string examples.
|
4424
4427
|
|
4425
4428
|
A powerful redirection feature allows a destination tag to be specified for
|
4426
4429
|
each copied tag. With this feature, information may be written to a tag
|
@@ -4486,13 +4489,13 @@ this command:
|
|
4486
4489
|
This is significant in the case where an overlap exists between the copied
|
4487
4490
|
and assigned tags because later operations may override earlier ones.
|
4488
4491
|
|
4489
|
-
5) The normal behaviour of copied tags differs
|
4490
|
-
|
4491
|
-
any previous operations
|
4492
|
-
when copying groups of tags from a file containing redundant
|
4493
|
-
also prevents values of different tags from being copied
|
4494
|
-
when this is the intent. So a B<-addTagsFromFile> option
|
4495
|
-
allows copying of multiple tags into the same list. eg)
|
4492
|
+
5) The normal behaviour of copied tags differs from that of assigned tags
|
4493
|
+
for list-type tags and conditional replacements because each copy operation
|
4494
|
+
on a tag overrides any previous operations. While this avoids duplicate
|
4495
|
+
list items when copying groups of tags from a file containing redundant
|
4496
|
+
information, it also prevents values of different tags from being copied
|
4497
|
+
into the same list when this is the intent. So a B<-addTagsFromFile> option
|
4498
|
+
is provided which allows copying of multiple tags into the same list. eg)
|
4496
4499
|
|
4497
4500
|
exiftool -addtagsfromfile @ '-subject<make' '-subject<model' ...
|
4498
4501
|
|
@@ -4613,6 +4616,8 @@ values are:
|
|
4613
4616
|
Baltic cp1257 Windows Baltic
|
4614
4617
|
Vietnam cp1258 Windows Vietnamese
|
4615
4618
|
Thai cp874 Windows Thai
|
4619
|
+
DOSLatinUS cp437 DOS Latin US
|
4620
|
+
DOSLatin1 cp850 DOS Latin1
|
4616
4621
|
MacRoman cp10000, Roman Macintosh Roman
|
4617
4622
|
MacLatin2 cp10029 Macintosh Latin2 (Central Europe)
|
4618
4623
|
MacCyrillic cp10007 Macintosh Cyrillic
|
@@ -4852,8 +4857,8 @@ variable-width character set.
|
|
4852
4857
|
For list-type tags, this causes only the item with the specified index to be
|
4853
4858
|
extracted. I<INDEX> is 0 for the first item in the list. Negative indices
|
4854
4859
|
may also be used to reference items from the end of the list. Has no effect
|
4855
|
-
on single-valued tags. Also applies to tag values when copying
|
4856
|
-
B<-if> conditions.
|
4860
|
+
on single-valued tags. Also applies to tag values when copying from a tag,
|
4861
|
+
and in B<-if> conditions.
|
4857
4862
|
|
4858
4863
|
=item B<-n> (B<--printConv>)
|
4859
4864
|
|
@@ -4909,7 +4914,7 @@ with this command:
|
|
4909
4914
|
|
4910
4915
|
produces output like this:
|
4911
4916
|
|
4912
|
-
-- Generated by ExifTool 10.
|
4917
|
+
-- Generated by ExifTool 10.65 --
|
4913
4918
|
File: a.jpg - 2003:10:31 15:44:19
|
4914
4919
|
(f/5.6, 1/60s, ISO 100)
|
4915
4920
|
File: b.jpg - 2006:05:23 11:57:38
|
@@ -5040,12 +5045,13 @@ include the leading '.'. For example:
|
|
5040
5045
|
-w dir2/%d%f.txt # write to "dir2", keeping dir structure
|
5041
5046
|
-w a%c.txt # write to "a.txt" or "a1.txt" or "a2.txt"...
|
5042
5047
|
|
5043
|
-
Existing files will not be
|
5044
|
-
|
5045
|
-
|
5046
|
-
B<-w+!> or B<-textOut+!>) to overwrite output files that
|
5047
|
-
the command was run, and append the output from multiple
|
5048
|
-
example, to write one output file for all source files in
|
5048
|
+
Existing files will not be changed unless an exclamation point is added to
|
5049
|
+
the option name (ie. B<-w!> or B<-textOut!>) to overwrite the file, or a
|
5050
|
+
plus sign (ie. B<-w+> or B<-textOut+>) to append to the existing file. Both
|
5051
|
+
may be used (ie. B<-w+!> or B<-textOut+!>) to overwrite output files that
|
5052
|
+
didn't exist before the command was run, and append the output from multiple
|
5053
|
+
source files. For example, to write one output file for all source files in
|
5054
|
+
each directory:
|
5049
5055
|
|
5050
5056
|
exiftool -filename -createdate -T -w+! %d/out.txt -r DIR
|
5051
5057
|
|
@@ -5245,9 +5251,9 @@ especially for PDF files with many embedded images.
|
|
5245
5251
|
Process only files with (B<-ext>) or without (B<--ext>) a specified
|
5246
5252
|
extension. There may be multiple B<-ext> and B<--ext> options. A plus sign
|
5247
5253
|
may be added (ie. B<-ext+>) to add the specified extension to the normally
|
5248
|
-
processed files. EXT may begin with a leading '.',
|
5249
|
-
significant. C<"*"> may be used to process files with any extension
|
5250
|
-
none at all), as in the last three examples:
|
5254
|
+
processed files. EXT may begin with a leading '.', which is ignored. Case
|
5255
|
+
is not significant. C<"*"> may be used to process files with any extension
|
5256
|
+
(or none at all), as in the last three examples:
|
5251
5257
|
|
5252
5258
|
exiftool -ext JPG DIR # process only JPG files
|
5253
5259
|
exiftool --ext cr2 --ext dng DIR # supported files but CR2/DNG
|
@@ -32,6 +32,11 @@ $VERSION = '1.05';
|
|
32
32
|
Title => { },
|
33
33
|
Track => { },
|
34
34
|
Year => { },
|
35
|
+
DURATION => {
|
36
|
+
Name => 'Duration',
|
37
|
+
ValueConv => '$val += 4294967296 if $val < 0 and $val >= -2147483648; $val * 1e-7',
|
38
|
+
PrintConv => 'ConvertDuration($val)',
|
39
|
+
},
|
35
40
|
'Tool Version' => { Name => 'ToolVersion' },
|
36
41
|
'Tool Name' => { Name => 'ToolName' },
|
37
42
|
);
|