exiftool-vendored.pl 13.32.0 → 13.34.1
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.
- package/README.md +2 -2
- package/bin/Changes +43 -4
- package/bin/MANIFEST +5 -0
- package/bin/META.json +1 -1
- package/bin/META.yml +1 -1
- package/bin/README +47 -46
- package/bin/exiftool +100 -83
- package/bin/lib/Image/ExifTool/BuildTagLookup.pm +4 -2
- package/bin/lib/Image/ExifTool/Canon.pm +15 -2
- package/bin/lib/Image/ExifTool/Exif.pm +6 -5
- package/bin/lib/Image/ExifTool/FlashPix.pm +4 -159
- package/bin/lib/Image/ExifTool/FujiFilm.pm +11 -3
- package/bin/lib/Image/ExifTool/Geotag.pm +5 -3
- package/bin/lib/Image/ExifTool/GoPro.pm +14 -2
- package/bin/lib/Image/ExifTool/LNK.pm +4 -1
- package/bin/lib/Image/ExifTool/Lang/cs.pm +0 -1
- package/bin/lib/Image/ExifTool/Lang/de.pm +0 -1
- package/bin/lib/Image/ExifTool/Lang/fr.pm +0 -1
- package/bin/lib/Image/ExifTool/Lang/it.pm +0 -1
- package/bin/lib/Image/ExifTool/Lang/ja.pm +0 -1
- package/bin/lib/Image/ExifTool/Lang/nl.pm +0 -1
- package/bin/lib/Image/ExifTool/Lang/pl.pm +0 -1
- package/bin/lib/Image/ExifTool/Lang/zh_cn.pm +0 -1
- package/bin/lib/Image/ExifTool/Microsoft.pm +158 -1
- package/bin/lib/Image/ExifTool/Minolta.pm +4 -2
- package/bin/lib/Image/ExifTool/Nikon.pm +69 -35
- package/bin/lib/Image/ExifTool/NikonCustom.pm +40 -10
- package/bin/lib/Image/ExifTool/Olympus.pm +253 -34
- package/bin/lib/Image/ExifTool/Panasonic.pm +3 -3
- package/bin/lib/Image/ExifTool/Pentax.pm +168 -14
- package/bin/lib/Image/ExifTool/QuickTime.pm +11 -4
- package/bin/lib/Image/ExifTool/README +2 -1
- package/bin/lib/Image/ExifTool/Sony.pm +43 -17
- package/bin/lib/Image/ExifTool/TNEF.pm +487 -0
- package/bin/lib/Image/ExifTool/TagLookup.pm +4375 -4267
- package/bin/lib/Image/ExifTool/TagNames.pod +244 -16
- package/bin/lib/Image/ExifTool/WriteExif.pl +14 -12
- package/bin/lib/Image/ExifTool/Writer.pl +12 -12
- package/bin/lib/Image/ExifTool.pm +12 -4
- package/bin/lib/Image/ExifTool.pod +50 -44
- package/bin/perl-Image-ExifTool.spec +46 -45
- package/index.js +2 -2
- package/package.json +9 -7
- package/bin/windows_exiftool.txt +0 -2936
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ files are omitted, as they almost double the size of the package and more than
|
|
|
6
6
|
triple the number of files in the package.
|
|
7
7
|
|
|
8
8
|
[](https://www.npmjs.com/package/exiftool-vendored.pl)
|
|
9
|
-
[](https://github.com/photostructure/exiftool-vendored.pl/actions/workflows/build.yml)
|
|
10
10
|
|
|
11
11
|
## Usage
|
|
12
12
|
|
|
@@ -23,4 +23,4 @@ number, if necessary, to follow SemVer.
|
|
|
23
23
|
1. The `check-updates` workflow automatically detects new ExifTool versions and creates PRs
|
|
24
24
|
2. Update PRs use a `-pre` suffix during development (e.g., `13.26.0-pre`)
|
|
25
25
|
3. The `release` workflow removes the `-pre` suffix when publishing to npm
|
|
26
|
-
4. Final npm package versions match the vendored ExifTool version exactly
|
|
26
|
+
4. Final npm package versions match the vendored ExifTool version exactly
|
package/bin/Changes
CHANGED
|
@@ -7,6 +7,45 @@ RSS feed: https://exiftool.org/rss.xml
|
|
|
7
7
|
Note: The most recent production release is Version 13.30. (Other versions are
|
|
8
8
|
considered development releases, and are not uploaded to MetaCPAN.)
|
|
9
9
|
|
|
10
|
+
Aug. 18, 2025 - Version 13.34
|
|
11
|
+
|
|
12
|
+
- Decode a number of new Pentax tags (thanks Karsten Gieselmann)
|
|
13
|
+
- Decode a new Canon tag (thanks Peter Wem, github #344)
|
|
14
|
+
- Updated Sony decoding for the ILME-FX2 and DSC-RX1RM3 (thanks Jos Roost)
|
|
15
|
+
- Minor fixes to decoding of new Olympus tags (thanks Karsten Gieselmann)
|
|
16
|
+
- Reverted change of 13.20 which changed the behaviour when writing
|
|
17
|
+
incorrectly-formatted date/time values
|
|
18
|
+
- Patched to avoid "uninitialized value $module" when using some custom config
|
|
19
|
+
files
|
|
20
|
+
- Fixed issue reading maker notes from some Sony ILCE models
|
|
21
|
+
- API Changes:
|
|
22
|
+
- Added UndefTags option to allow -m
|
|
23
|
+
and/or -f to be used without modifying the value of undef tags in -if
|
|
24
|
+
expressions (which was the behaviour prior to version 12.60)
|
|
25
|
+
|
|
26
|
+
July 25, 2025 - Version 13.33
|
|
27
|
+
|
|
28
|
+
- Added read support for TNEF files (eg. "winmail.dat")
|
|
29
|
+
- Added a new Canon HighlightTonePriority value (github #339)
|
|
30
|
+
- Decode Canon FocusBracketing tag (github #340)
|
|
31
|
+
- Decode more tags for newer Nikon Z models (thanks Warren Hatch)
|
|
32
|
+
- Decode a few more Olympus tags (thanks Karsten Gieselmann)
|
|
33
|
+
- Decode face detection tags for the Pentax K-3III (thanks Karsten Gieselmann)
|
|
34
|
+
- Decode a few more FujiFilm tags (github #343)
|
|
35
|
+
- Handle Olympus RawDev2IFD tag 0x8000 (named it RawDevSubIFD)
|
|
36
|
+
- Improved recognition of some Sony lenses (github #342)
|
|
37
|
+
- Enhanced the -p option to cycle through sub-documents
|
|
38
|
+
- Improved extraction of GoPro timed GPS to use sub-document numbers to
|
|
39
|
+
separate the individual fixes, allowing -p to extract all fixes at
|
|
40
|
+
sub-second resolution (although for earlier models these may not contain
|
|
41
|
+
timestamps)
|
|
42
|
+
- Extract EXIF information from Sigma fp MOV videos
|
|
43
|
+
- Patched to avoid "multi-segment EXIF with external pointers" error when
|
|
44
|
+
writing Olympus OM-1 JPG files converted by some utilities
|
|
45
|
+
- Fixed decoding of Panasonic LongExposureNRUsed (thanks AndrewJ)
|
|
46
|
+
- Fixed long-standing bug when using special characters in the -d option
|
|
47
|
+
argument
|
|
48
|
+
|
|
10
49
|
July 2, 2025 - Version 13.32
|
|
11
50
|
|
|
12
51
|
- Added a new Olympus CameraType (thanks Herb and Albert Shan)
|
|
@@ -19,9 +58,9 @@ July 2, 2025 - Version 13.32
|
|
|
19
58
|
- Extract a couple more EXIF tags
|
|
20
59
|
- Patched to allow a dot (.) in the name of a structure element when writing
|
|
21
60
|
- Fixed "uninitialized value" bug when using -w with the -stay_open feature
|
|
22
|
-
- Fixed bug in -file option when tag names
|
|
23
|
-
|
|
24
|
-
|
|
61
|
+
- Fixed bug in -file option when using tag names to specify the name of the
|
|
62
|
+
alternate file (the tags were taken only from the first input file unless a
|
|
63
|
+
file name formatting code was also specified)
|
|
25
64
|
|
|
26
65
|
June 19, 2025 - Version 13.31
|
|
27
66
|
|
|
@@ -423,7 +462,7 @@ Nov. 12, 2024 - Version 13.03
|
|
|
423
462
|
Nov. 5, 2024 - Version 13.02
|
|
424
463
|
|
|
425
464
|
- Enhanced -j -l output to add optional "fmt" and "hex" fields
|
|
426
|
-
- Enhanced -geotag option to support
|
|
465
|
+
- Enhanced -geotag option to support Google Maps "Export Timeline data" JSON
|
|
427
466
|
format
|
|
428
467
|
- Changed ProductVersion of Windows launcher to match ExifTool version
|
|
429
468
|
- Patched to use empty group name instead of "Copy0" for family 4 group name
|
package/bin/MANIFEST
CHANGED
|
@@ -177,6 +177,7 @@ html/TagNames/SigmaRaw.html
|
|
|
177
177
|
html/TagNames/Sony.html
|
|
178
178
|
html/TagNames/SonyIDC.html
|
|
179
179
|
html/TagNames/Stim.html
|
|
180
|
+
html/TagNames/TNEF.html
|
|
180
181
|
html/TagNames/Text.html
|
|
181
182
|
html/TagNames/Theora.html
|
|
182
183
|
html/TagNames/Torrent.html
|
|
@@ -434,6 +435,7 @@ lib/Image/ExifTool/SigmaRaw.pm
|
|
|
434
435
|
lib/Image/ExifTool/Sony.pm
|
|
435
436
|
lib/Image/ExifTool/SonyIDC.pm
|
|
436
437
|
lib/Image/ExifTool/Stim.pm
|
|
438
|
+
lib/Image/ExifTool/TNEF.pm
|
|
437
439
|
lib/Image/ExifTool/TagInfoXML.pm
|
|
438
440
|
lib/Image/ExifTool/TagLookup.pm
|
|
439
441
|
lib/Image/ExifTool/TagNames.pod
|
|
@@ -887,6 +889,8 @@ t/Sony.t
|
|
|
887
889
|
t/Sony_2.out
|
|
888
890
|
t/Sony_3.out
|
|
889
891
|
t/Sony_5.out
|
|
892
|
+
t/TNEF.t
|
|
893
|
+
t/TNEF_2.out
|
|
890
894
|
t/TestLib.pm
|
|
891
895
|
t/Text.t
|
|
892
896
|
t/Text_2.out
|
|
@@ -1179,6 +1183,7 @@ t/images/Sigma.x3f
|
|
|
1179
1183
|
t/images/SigmaDP2.x3f
|
|
1180
1184
|
t/images/Sony.jpg
|
|
1181
1185
|
t/images/Sony.pmp
|
|
1186
|
+
t/images/TNEF.tnef
|
|
1182
1187
|
t/images/Text.csv
|
|
1183
1188
|
t/images/Text1.txt
|
|
1184
1189
|
t/images/Text2.txt
|
package/bin/META.json
CHANGED
package/bin/META.yml
CHANGED
package/bin/README
CHANGED
|
@@ -14,50 +14,51 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
|
14
14
|
|
|
15
15
|
File Types
|
|
16
16
|
------------+-------------+-------------+-------------+------------
|
|
17
|
-
360 r/w |
|
|
18
|
-
3FR r |
|
|
19
|
-
3G2 r/w |
|
|
20
|
-
3GP r/w |
|
|
21
|
-
7Z r |
|
|
22
|
-
A r |
|
|
23
|
-
AA r |
|
|
24
|
-
AAC r |
|
|
25
|
-
AAE r |
|
|
26
|
-
AAX r/w |
|
|
27
|
-
ACR r |
|
|
28
|
-
AFM r |
|
|
29
|
-
AI r/w |
|
|
30
|
-
AIFF r |
|
|
31
|
-
APE r |
|
|
32
|
-
ARQ r/w |
|
|
33
|
-
ARW r/w |
|
|
34
|
-
ASF r |
|
|
35
|
-
AVI r |
|
|
36
|
-
AVIF r/w |
|
|
37
|
-
AZW r |
|
|
38
|
-
BMP r |
|
|
39
|
-
BPG r |
|
|
40
|
-
BTF r |
|
|
41
|
-
C2PA r |
|
|
42
|
-
CHM r |
|
|
43
|
-
COS r |
|
|
44
|
-
CR2 r/w |
|
|
45
|
-
CR3 r/w |
|
|
46
|
-
CRM r/w |
|
|
47
|
-
CRW r/w |
|
|
48
|
-
CS1 r/w |
|
|
49
|
-
CSV r |
|
|
50
|
-
CUR r |
|
|
51
|
-
CZI r |
|
|
52
|
-
DCM r |
|
|
53
|
-
DCP r/w |
|
|
54
|
-
DCR r |
|
|
55
|
-
DFONT r |
|
|
56
|
-
DIVX r |
|
|
57
|
-
DJVU r |
|
|
58
|
-
DLL r |
|
|
59
|
-
DNG r/w |
|
|
60
|
-
DOC r |
|
|
17
|
+
360 r/w | DPX r | JNG r/w | ODP r | RSRC r
|
|
18
|
+
3FR r | DR4 r/w/c | JP2 r/w | ODS r | RTF r
|
|
19
|
+
3G2 r/w | DSS r | JPEG r/w | ODT r | RW2 r/w
|
|
20
|
+
3GP r/w | DV r | JSON r | OFR r | RWL r/w
|
|
21
|
+
7Z r | DVB r/w | JXL r/w | OGG r | RWZ r
|
|
22
|
+
A r | DVR-MS r | K25 r | OGV r | RM r
|
|
23
|
+
AA r | DYLIB r | KDC r | ONP r | SEQ r
|
|
24
|
+
AAC r | EIP r | KEY r | OPUS r | SKETCH r
|
|
25
|
+
AAE r | EPS r/w | LA r | ORF r/w | SO r
|
|
26
|
+
AAX r/w | EPUB r | LFP r | ORI r/w | SR2 r/w
|
|
27
|
+
ACR r | ERF r/w | LIF r | OTF r | SRF r
|
|
28
|
+
AFM r | EXE r | LNK r | PAC r | SRW r/w
|
|
29
|
+
AI r/w | EXIF r/w/c | LRV r/w | PAGES r | SVG r
|
|
30
|
+
AIFF r | EXR r | M2TS r | PBM r/w | SWF r
|
|
31
|
+
APE r | EXV r/w/c | M4A/V r/w | PCAP r | THM r/w
|
|
32
|
+
ARQ r/w | F4A/V r/w | MACOS r | PCAPNG r | TIFF r/w
|
|
33
|
+
ARW r/w | FFF r/w | MAX r | PCD r | TNEF r
|
|
34
|
+
ASF r | FITS r | MEF r/w | PCX r | TORRENT r
|
|
35
|
+
AVI r | FLA r | MIE r/w/c | PDB r | TTC r
|
|
36
|
+
AVIF r/w | FLAC r | MIFF r | PDF r/w | TTF r
|
|
37
|
+
AZW r | FLIF r/w | MKA r | PEF r/w | TXT r
|
|
38
|
+
BMP r | FLV r | MKS r | PFA r | VCF r
|
|
39
|
+
BPG r | FPF r | MKV r | PFB r | VNT r
|
|
40
|
+
BTF r | FPX r | MNG r/w | PFM r | VRD r/w/c
|
|
41
|
+
C2PA r | GIF r/w | MOBI r | PGF r | VSD r
|
|
42
|
+
CHM r | GLV r/w | MODD r | PGM r/w | WAV r
|
|
43
|
+
COS r | GPR r/w | MOI r | PLIST r | WDP r/w
|
|
44
|
+
CR2 r/w | GZ r | MOS r/w | PICT r | WEBP r/w
|
|
45
|
+
CR3 r/w | HDP r/w | MOV r/w | PMP r | WEBM r
|
|
46
|
+
CRM r/w | HDR r | MP3 r | PNG r/w | WMA r
|
|
47
|
+
CRW r/w | HEIC r/w | MP4 r/w | PPM r/w | WMV r
|
|
48
|
+
CS1 r/w | HEIF r/w | MPC r | PPT r | WPG r
|
|
49
|
+
CSV r | HTML r | MPG r | PPTX r | WTV r
|
|
50
|
+
CUR r | ICC r/w/c | MPO r/w | PS r/w | WV r
|
|
51
|
+
CZI r | ICO r | MQV r/w | PSB r/w | X3F r/w
|
|
52
|
+
DCM r | ICS r | MRC r | PSD r/w | XCF r
|
|
53
|
+
DCP r/w | IDML r | MRW r/w | PSP r | XISF r
|
|
54
|
+
DCR r | IIQ r/w | MXF r | QTIF r/w | XLS r
|
|
55
|
+
DFONT r | IND r/w | NEF r/w | R3D r | XLSX r
|
|
56
|
+
DIVX r | INSP r/w | NKA r | RA r | XMP r/w/c
|
|
57
|
+
DJVU r | INSV r | NKSC r/w | RAF r/w | ZIP r
|
|
58
|
+
DLL r | INX r | NRW r/w | RAM r |
|
|
59
|
+
DNG r/w | ISO r | NUMBERS r | RAR r |
|
|
60
|
+
DOC r | ITC r | NXD r | RAW r/w |
|
|
61
|
+
DOCX r | J2C r | O r | RIFF r |
|
|
61
62
|
|
|
62
63
|
Meta Information
|
|
63
64
|
----------------------+----------------------+---------------------
|
|
@@ -109,8 +110,8 @@ your home directory, then you would type the following commands in a
|
|
|
109
110
|
terminal window to extract and run ExifTool:
|
|
110
111
|
|
|
111
112
|
cd ~/Desktop
|
|
112
|
-
gzip -dc Image-ExifTool-13.
|
|
113
|
-
cd Image-ExifTool-13.
|
|
113
|
+
gzip -dc Image-ExifTool-13.34.tar.gz | tar -xf -
|
|
114
|
+
cd Image-ExifTool-13.34
|
|
114
115
|
./exiftool t/images/ExifTool.jpg
|
|
115
116
|
|
|
116
117
|
Note: These commands extract meta information from one of the test images.
|
package/bin/exiftool
CHANGED
|
@@ -11,7 +11,7 @@ use strict;
|
|
|
11
11
|
use warnings;
|
|
12
12
|
require 5.004;
|
|
13
13
|
|
|
14
|
-
my $version = '13.
|
|
14
|
+
my $version = '13.34';
|
|
15
15
|
|
|
16
16
|
$^W = 1; # enable global warnings
|
|
17
17
|
|
|
@@ -2537,7 +2537,7 @@ T2: foreach $t2 (@tags2) {
|
|
|
2537
2537
|
# print the results for this file
|
|
2538
2538
|
if (%printFmt) {
|
|
2539
2539
|
# output using print format file (-p) option
|
|
2540
|
-
my ($type,
|
|
2540
|
+
my ($type, @doc, $grp, $lastDoc, $cache);
|
|
2541
2541
|
$fileTrailer = '';
|
|
2542
2542
|
# repeat for each embedded document if necessary (only if -ee used)
|
|
2543
2543
|
if ($et->Options('ExtractEmbedded')) {
|
|
@@ -2546,7 +2546,8 @@ T2: foreach $t2 (@tags2) {
|
|
|
2546
2546
|
} else {
|
|
2547
2547
|
$lastDoc = 0;
|
|
2548
2548
|
}
|
|
2549
|
-
for ($doc=0; $doc<=$lastDoc;
|
|
2549
|
+
for ($doc[0]=0; $doc[0]<=$lastDoc; ) {
|
|
2550
|
+
my $doc = join '-', @doc;
|
|
2550
2551
|
my ($skipBody, $opt);
|
|
2551
2552
|
foreach $type (qw(HEAD SECT IF BODY ENDS TAIL)) {
|
|
2552
2553
|
my $prf = $printFmt{$type} or next;
|
|
@@ -2556,7 +2557,7 @@ T2: foreach $t2 (@tags2) {
|
|
|
2556
2557
|
}
|
|
2557
2558
|
next if $type eq 'BODY' and $skipBody;
|
|
2558
2559
|
# silence "IF" warnings and warnings for subdocuments > 1
|
|
2559
|
-
if ($type eq 'IF' or ($doc > 1 and not $$et{OPTIONS}{IgnoreMinorErrors})) {
|
|
2560
|
+
if ($type eq 'IF' or (($doc[0] > 1 or @doc > 1) and not $$et{OPTIONS}{IgnoreMinorErrors})) {
|
|
2560
2561
|
$opt = 'Silent';
|
|
2561
2562
|
} else {
|
|
2562
2563
|
$opt = 'Warn';
|
|
@@ -2595,6 +2596,14 @@ T2: foreach $t2 (@tags2) {
|
|
|
2595
2596
|
print $fp @lines;
|
|
2596
2597
|
}
|
|
2597
2598
|
}
|
|
2599
|
+
# find next available doc-subdoc
|
|
2600
|
+
push @doc, 1;
|
|
2601
|
+
while (@doc > 1) {
|
|
2602
|
+
my $nextDoc = join '-', @doc;
|
|
2603
|
+
last if $$et{HAS_DOC}{$nextDoc};
|
|
2604
|
+
pop @doc;
|
|
2605
|
+
++$doc[-1];
|
|
2606
|
+
}
|
|
2598
2607
|
}
|
|
2599
2608
|
delete $printFmt{HEAD} unless defined $outfile; # print header only once per output file
|
|
2600
2609
|
my $errs = $et->GetInfo('Warning', 'Error');
|
|
@@ -4526,6 +4535,10 @@ sub SuggestedExtension($$$)
|
|
|
4526
4535
|
} elsif ($$valPt =~ /^.{4}ftyp(3gp|mp4|f4v|qt )/s) {
|
|
4527
4536
|
my %movType = ( 'qt ' => 'mov' );
|
|
4528
4537
|
$ext = $movType{$1} || $1;
|
|
4538
|
+
} elsif ($$valPt =~ /^<(!DOCTYPE )?html/i) {
|
|
4539
|
+
$ext = 'html';
|
|
4540
|
+
} elsif ($$valPt =~ /^[\n\r]*\{[\n\r]*\\rtf/) {
|
|
4541
|
+
$ext = 'rtf';
|
|
4529
4542
|
} elsif ($$valPt !~ /^.{0,4096}\0/s) {
|
|
4530
4543
|
$ext = 'txt';
|
|
4531
4544
|
} elsif ($$valPt =~ /^BM.{15}\0/s) {
|
|
@@ -5062,50 +5075,51 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
|
5062
5075
|
|
|
5063
5076
|
File Types
|
|
5064
5077
|
------------+-------------+-------------+-------------+------------
|
|
5065
|
-
360 r/w |
|
|
5066
|
-
3FR r |
|
|
5067
|
-
3G2 r/w |
|
|
5068
|
-
3GP r/w |
|
|
5069
|
-
7Z r |
|
|
5070
|
-
A r |
|
|
5071
|
-
AA r |
|
|
5072
|
-
AAC r |
|
|
5073
|
-
AAE r |
|
|
5074
|
-
AAX r/w |
|
|
5075
|
-
ACR r |
|
|
5076
|
-
AFM r |
|
|
5077
|
-
AI r/w |
|
|
5078
|
-
AIFF r |
|
|
5079
|
-
APE r |
|
|
5080
|
-
ARQ r/w |
|
|
5081
|
-
ARW r/w |
|
|
5082
|
-
ASF r |
|
|
5083
|
-
AVI r |
|
|
5084
|
-
AVIF r/w |
|
|
5085
|
-
AZW r |
|
|
5086
|
-
BMP r |
|
|
5087
|
-
BPG r |
|
|
5088
|
-
BTF r |
|
|
5089
|
-
C2PA r |
|
|
5090
|
-
CHM r |
|
|
5091
|
-
COS r |
|
|
5092
|
-
CR2 r/w |
|
|
5093
|
-
CR3 r/w |
|
|
5094
|
-
CRM r/w |
|
|
5095
|
-
CRW r/w |
|
|
5096
|
-
CS1 r/w |
|
|
5097
|
-
CSV r |
|
|
5098
|
-
CUR r |
|
|
5099
|
-
CZI r |
|
|
5100
|
-
DCM r |
|
|
5101
|
-
DCP r/w |
|
|
5102
|
-
DCR r |
|
|
5103
|
-
DFONT r |
|
|
5104
|
-
DIVX r |
|
|
5105
|
-
DJVU r |
|
|
5106
|
-
DLL r |
|
|
5107
|
-
DNG r/w |
|
|
5108
|
-
DOC r |
|
|
5078
|
+
360 r/w | DPX r | JNG r/w | ODP r | RSRC r
|
|
5079
|
+
3FR r | DR4 r/w/c | JP2 r/w | ODS r | RTF r
|
|
5080
|
+
3G2 r/w | DSS r | JPEG r/w | ODT r | RW2 r/w
|
|
5081
|
+
3GP r/w | DV r | JSON r | OFR r | RWL r/w
|
|
5082
|
+
7Z r | DVB r/w | JXL r/w | OGG r | RWZ r
|
|
5083
|
+
A r | DVR-MS r | K25 r | OGV r | RM r
|
|
5084
|
+
AA r | DYLIB r | KDC r | ONP r | SEQ r
|
|
5085
|
+
AAC r | EIP r | KEY r | OPUS r | SKETCH r
|
|
5086
|
+
AAE r | EPS r/w | LA r | ORF r/w | SO r
|
|
5087
|
+
AAX r/w | EPUB r | LFP r | ORI r/w | SR2 r/w
|
|
5088
|
+
ACR r | ERF r/w | LIF r | OTF r | SRF r
|
|
5089
|
+
AFM r | EXE r | LNK r | PAC r | SRW r/w
|
|
5090
|
+
AI r/w | EXIF r/w/c | LRV r/w | PAGES r | SVG r
|
|
5091
|
+
AIFF r | EXR r | M2TS r | PBM r/w | SWF r
|
|
5092
|
+
APE r | EXV r/w/c | M4A/V r/w | PCAP r | THM r/w
|
|
5093
|
+
ARQ r/w | F4A/V r/w | MACOS r | PCAPNG r | TIFF r/w
|
|
5094
|
+
ARW r/w | FFF r/w | MAX r | PCD r | TNEF r
|
|
5095
|
+
ASF r | FITS r | MEF r/w | PCX r | TORRENT r
|
|
5096
|
+
AVI r | FLA r | MIE r/w/c | PDB r | TTC r
|
|
5097
|
+
AVIF r/w | FLAC r | MIFF r | PDF r/w | TTF r
|
|
5098
|
+
AZW r | FLIF r/w | MKA r | PEF r/w | TXT r
|
|
5099
|
+
BMP r | FLV r | MKS r | PFA r | VCF r
|
|
5100
|
+
BPG r | FPF r | MKV r | PFB r | VNT r
|
|
5101
|
+
BTF r | FPX r | MNG r/w | PFM r | VRD r/w/c
|
|
5102
|
+
C2PA r | GIF r/w | MOBI r | PGF r | VSD r
|
|
5103
|
+
CHM r | GLV r/w | MODD r | PGM r/w | WAV r
|
|
5104
|
+
COS r | GPR r/w | MOI r | PLIST r | WDP r/w
|
|
5105
|
+
CR2 r/w | GZ r | MOS r/w | PICT r | WEBP r/w
|
|
5106
|
+
CR3 r/w | HDP r/w | MOV r/w | PMP r | WEBM r
|
|
5107
|
+
CRM r/w | HDR r | MP3 r | PNG r/w | WMA r
|
|
5108
|
+
CRW r/w | HEIC r/w | MP4 r/w | PPM r/w | WMV r
|
|
5109
|
+
CS1 r/w | HEIF r/w | MPC r | PPT r | WPG r
|
|
5110
|
+
CSV r | HTML r | MPG r | PPTX r | WTV r
|
|
5111
|
+
CUR r | ICC r/w/c | MPO r/w | PS r/w | WV r
|
|
5112
|
+
CZI r | ICO r | MQV r/w | PSB r/w | X3F r/w
|
|
5113
|
+
DCM r | ICS r | MRC r | PSD r/w | XCF r
|
|
5114
|
+
DCP r/w | IDML r | MRW r/w | PSP r | XISF r
|
|
5115
|
+
DCR r | IIQ r/w | MXF r | QTIF r/w | XLS r
|
|
5116
|
+
DFONT r | IND r/w | NEF r/w | R3D r | XLSX r
|
|
5117
|
+
DIVX r | INSP r/w | NKA r | RA r | XMP r/w/c
|
|
5118
|
+
DJVU r | INSV r | NKSC r/w | RAF r/w | ZIP r
|
|
5119
|
+
DLL r | INX r | NRW r/w | RAM r |
|
|
5120
|
+
DNG r/w | ISO r | NUMBERS r | RAR r |
|
|
5121
|
+
DOC r | ITC r | NXD r | RAW r/w |
|
|
5122
|
+
DOCX r | J2C r | O r | RIFF r |
|
|
5109
5123
|
|
|
5110
5124
|
Meta Information
|
|
5111
5125
|
----------------------+----------------------+---------------------
|
|
@@ -5817,12 +5831,12 @@ escaped. The inverse conversion is applied when writing tags.
|
|
|
5817
5831
|
=item B<-f> (B<-forcePrint>)
|
|
5818
5832
|
|
|
5819
5833
|
Force printing of tags even if they don't exist. This option applies to
|
|
5820
|
-
tags specified on the command line, or with the B<-p>, B<-if>
|
|
5821
|
-
|
|
5822
|
-
is set to a dash (C<->) by
|
|
5823
|
-
|
|
5824
|
-
|
|
5825
|
-
B<-csv>=I<CSVFILE> feature.
|
|
5834
|
+
tags specified on the command line, or with the B<-p>, B<-if> (unless the
|
|
5835
|
+
API UndefTags option is set), B<-fileNUM> or B<-tagsFromFile> options. When
|
|
5836
|
+
B<-f> is used, the value of any missing tag is set to a dash (C<->) by
|
|
5837
|
+
default, but this may be configured via the API MissingTagValue option.
|
|
5838
|
+
B<-f> is also used to add a 'flags' attribute to the B<-listx> output, or to
|
|
5839
|
+
allow tags to be deleted when writing with the B<-csv>=I<CSVFILE> feature.
|
|
5826
5840
|
|
|
5827
5841
|
=item B<-g>[I<NUM>][:I<NUM>...] (B<-groupHeadings>)
|
|
5828
5842
|
|
|
@@ -5987,7 +6001,7 @@ translation, follow these steps (you must have Perl installed for this):
|
|
|
5987
6001
|
6. Edit the generated language module lib/Image/ExifTool/Lang/ru.pm, and
|
|
5988
6002
|
search and replace all 'MISSING' strings in the file with your translations.
|
|
5989
6003
|
|
|
5990
|
-
7. Email the module ('ru.pm' in this example) to
|
|
6004
|
+
7. Email the module ('ru.pm' in this example) to exiftool@gmail.com
|
|
5991
6005
|
|
|
5992
6006
|
8. Thank you!!
|
|
5993
6007
|
|
|
@@ -5997,7 +6011,7 @@ For list-type tags, this causes only the item with the specified index to be
|
|
|
5997
6011
|
extracted. I<INDEX> is 0 for the first item in the list. Negative indices
|
|
5998
6012
|
may also be used to reference items from the end of the list. Has no effect
|
|
5999
6013
|
on single-valued tags. Also applies to tag values when copying from a tag,
|
|
6000
|
-
and in B<-if>
|
|
6014
|
+
and in B<-if>, B<-p> and B<-fileNUM> arguments.
|
|
6001
6015
|
|
|
6002
6016
|
=item B<-n> (B<--printConv>)
|
|
6003
6017
|
|
|
@@ -6062,7 +6076,7 @@ with this command:
|
|
|
6062
6076
|
|
|
6063
6077
|
produces output like this:
|
|
6064
6078
|
|
|
6065
|
-
-- Generated by ExifTool 13.
|
|
6079
|
+
-- Generated by ExifTool 13.34 --
|
|
6066
6080
|
File: a.jpg - 2003:10:31 15:44:19
|
|
6067
6081
|
(f/5.6, 1/60s, ISO 100)
|
|
6068
6082
|
File: b.jpg - 2006:05:23 11:57:38
|
|
@@ -6610,11 +6624,8 @@ Notes:
|
|
|
6610
6624
|
|
|
6611
6625
|
1) The B<-n> and B<-b> options also apply to tags used in I<EXPR>.
|
|
6612
6626
|
|
|
6613
|
-
2)
|
|
6614
|
-
|
|
6615
|
-
also specified on the command line. The alternative is to use the
|
|
6616
|
-
C<$GROUP:all> syntax. (eg. Use C<$exif:all> instead of C<$exif> in I<EXPR>
|
|
6617
|
-
to test for the existence of EXIF tags.)
|
|
6627
|
+
2) The API RequestTags option is automatically set for all tags used in the
|
|
6628
|
+
B<-if> condition.
|
|
6618
6629
|
|
|
6619
6630
|
3) Tags in the string are interpolated in a similar way to B<-p> before the
|
|
6620
6631
|
expression is evaluated. In this interpolation, C<$/> is converted to a
|
|
@@ -6636,8 +6647,11 @@ C<$Copy1:TAG>, C<$Copy2:TAG>, etc).
|
|
|
6636
6647
|
command when B<-execute> was used, and may be used like any other tag in the
|
|
6637
6648
|
condition (ie. "$OK").
|
|
6638
6649
|
|
|
6639
|
-
7) The
|
|
6640
|
-
B<-
|
|
6650
|
+
7) The values of undefined tags in the expression are affected by the B<-f>
|
|
6651
|
+
and B<-m> options unless the API UndefTags option is also set.
|
|
6652
|
+
|
|
6653
|
+
8) The condition fails if a Perl error occurs. This could happen for
|
|
6654
|
+
instance if an undefined value (eg. a missing tag) is used improperly.
|
|
6641
6655
|
|
|
6642
6656
|
=item B<-m> (B<-ignoreMinorErrors>)
|
|
6643
6657
|
|
|
@@ -6649,8 +6663,9 @@ so ExifTool leaves it up to you to make the final decision. Minor errors
|
|
|
6649
6663
|
and warnings are indicated by "[minor]" at the start of the message.
|
|
6650
6664
|
Warnings which affect processing when ignored are indicated by "[Minor]"
|
|
6651
6665
|
(with a capital "M"). Note that this causes missing values in
|
|
6652
|
-
B<-tagsFromFile>, B<-p> and B<-
|
|
6653
|
-
rather than an undefined value
|
|
6666
|
+
B<-tagsFromFile>, B<-p>, B<-if> and B<-fileNUM> strings to be set to an
|
|
6667
|
+
empty string rather than an undefined value (but this may be avoided for
|
|
6668
|
+
B<-if> using the API UndefTags option).
|
|
6654
6669
|
|
|
6655
6670
|
=item B<-o> I<OUTFILE> or I<FMT> (B<-out>)
|
|
6656
6671
|
|
|
@@ -7262,11 +7277,11 @@ Set user parameter. I<PARAM> is an arbitrary user parameter name. This is
|
|
|
7262
7277
|
an interface to the API UserParam option (see the
|
|
7263
7278
|
L<Image::ExifTool Options|Image::ExifTool/Options> documentation), and
|
|
7264
7279
|
provides a method to access user-defined parameters in arguments to the
|
|
7265
|
-
B<-if> and B<-
|
|
7266
|
-
tag (C<#>) to I<PARAM> (eg. C<-userParam MyTag#=yes>) also
|
|
7267
|
-
parameter to be extracted as a normal tag in the UserParam group.
|
|
7268
|
-
to the B<-api> option, the parameter value is set to 1 if I<=VAL>
|
|
7269
|
-
omitted, undef if just I<VAL> is omitted with C<=>, or an empty string if
|
|
7280
|
+
B<-if>, B<-p> and B<-fileNUM> options as if they were any other tag.
|
|
7281
|
+
Appending a hash tag (C<#>) to I<PARAM> (eg. C<-userParam MyTag#=yes>) also
|
|
7282
|
+
causes the parameter to be extracted as a normal tag in the UserParam group.
|
|
7283
|
+
Similar to the B<-api> option, the parameter value is set to 1 if I<=VAL>
|
|
7284
|
+
is omitted, undef if just I<VAL> is omitted with C<=>, or an empty string if
|
|
7270
7285
|
I<VAL> is omitted with C<^=>.
|
|
7271
7286
|
|
|
7272
7287
|
exiftool -p '$test from $filename' -userparam test=Hello FILE
|
|
@@ -7276,18 +7291,20 @@ I<VAL> is omitted with C<^=>.
|
|
|
7276
7291
|
=head3 Advanced formatting feature
|
|
7277
7292
|
|
|
7278
7293
|
An advanced formatting feature allows modification of the value of any tag
|
|
7279
|
-
interpolated within a B<-if> or B<-
|
|
7280
|
-
redirection string. Tag names within these strings are
|
|
7281
|
-
symbol, and an arbitrary Perl expression may be applied
|
|
7282
|
-
placing braces around the tag name and inserting the
|
|
7283
|
-
name, separated by a semicolon (ie. C<${TAG;EXPR}>).
|
|
7284
|
-
the value of the tag through the default input
|
|
7285
|
-
access to the full ExifTool API through the
|
|
7286
|
-
(C<$self>) and the tag key (C<$tag>). It may
|
|
7287
|
-
including translation (C<tr///>) and
|
|
7288
|
-
note that braces within the
|
|
7289
|
-
|
|
7290
|
-
|
|
7294
|
+
interpolated within a B<-if>, B<-p> or B<-fileNUM> argument, or a
|
|
7295
|
+
B<-tagsFromFile> redirection string. Tag names within these strings are
|
|
7296
|
+
prefixed by a C<$> symbol, and an arbitrary Perl expression may be applied
|
|
7297
|
+
to the tag value by placing braces around the tag name and inserting the
|
|
7298
|
+
expression after the name, separated by a semicolon (ie. C<${TAG;EXPR}>).
|
|
7299
|
+
The expression acts on the value of the tag through the default input
|
|
7300
|
+
variable (C<$_>), and has access to the full ExifTool API through the
|
|
7301
|
+
current ExifTool object (C<$self>) and the tag key (C<$tag>). It may
|
|
7302
|
+
contain any valid Perl code, including translation (C<tr///>) and
|
|
7303
|
+
substitution (C<s///>) operations, but note that braces within the
|
|
7304
|
+
expression must be balanced. If the expression does not modify C<$_> the
|
|
7305
|
+
original tag value is returned. The example below prints the camera Make
|
|
7306
|
+
with spaces translated to underlines, and multiple consecutive underlines
|
|
7307
|
+
replaced by a single underline:
|
|
7291
7308
|
|
|
7292
7309
|
exiftool -p '${make;tr/ /_/;s/__+/_/g}' image.jpg
|
|
7293
7310
|
|
|
@@ -2338,7 +2338,8 @@ sub WriteTagNames($$)
|
|
|
2338
2338
|
my ($hid, $showGrp);
|
|
2339
2339
|
# widths of the different columns in the POD documentation
|
|
2340
2340
|
my ($wID,$wTag,$wReq,$wGrp) = (8,36,24,10);
|
|
2341
|
-
my ($composite, $derived, $notes, $longTags, $
|
|
2341
|
+
my ($composite, $derived, $notes, $longTags, $prefix);
|
|
2342
|
+
my $wasLong = 0;
|
|
2342
2343
|
if ($short eq 'Shortcuts') {
|
|
2343
2344
|
$derived = '<th>Refers To</th>';
|
|
2344
2345
|
$composite = 2;
|
|
@@ -2396,7 +2397,7 @@ sub WriteTagNames($$)
|
|
|
2396
2397
|
$wID -= $longTag - $wTag;
|
|
2397
2398
|
$wTag = $longTag;
|
|
2398
2399
|
}
|
|
2399
|
-
|
|
2400
|
+
++$wasLong if $wID <= $self->{LONG_ID}->{$tableName};
|
|
2400
2401
|
}
|
|
2401
2402
|
} elsif ($composite) {
|
|
2402
2403
|
$wTag += $wID - $wReq;
|
|
@@ -2471,6 +2472,7 @@ sub WriteTagNames($$)
|
|
|
2471
2472
|
if ($over <= $wTag - length($$tagNames[0])) {
|
|
2472
2473
|
$wTag2 -= $over;
|
|
2473
2474
|
$w += $over;
|
|
2475
|
+
--$wasLong;
|
|
2474
2476
|
} else {
|
|
2475
2477
|
# put tag name on next line if ID is too long
|
|
2476
2478
|
$idStr = " $tagIDstr\n " . (' ' x $w);
|
|
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
|
|
|
88
88
|
sub ProcessExifInfo($$$);
|
|
89
89
|
sub SwapWords($);
|
|
90
90
|
|
|
91
|
-
$VERSION = '4.
|
|
91
|
+
$VERSION = '4.95';
|
|
92
92
|
|
|
93
93
|
# Note: Removed 'USM' from 'L' lenses since it is redundant - PH
|
|
94
94
|
# (or is it? Ref 32 shows 5 non-USM L-type lenses)
|
|
@@ -2151,6 +2151,7 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
|
|
|
2151
2151
|
TagTable => 'Image::ExifTool::Canon::RawBurstInfo',
|
|
2152
2152
|
}
|
|
2153
2153
|
},
|
|
2154
|
+
# 0x4049 - related to croping (forum13491) - "8 0 0 0" = no crop, "8 1 0 1" = crop enabled
|
|
2154
2155
|
0x4059 => { #forum16111
|
|
2155
2156
|
Name => 'LevelInfo',
|
|
2156
2157
|
SubDirectory => {
|
|
@@ -2621,6 +2622,10 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
|
|
|
2621
2622
|
# 47 - related to aspect ratio: 100=4:3,70=1:1/16:9,90=3:2,60=4:5 (PH G12)
|
|
2622
2623
|
# (roughly image area in percent - 4:3=100%,1:1/16:9=75%,3:2=89%,4:5=60%)
|
|
2623
2624
|
# 48 - 3 for CR2/CR3, 4 or 7 for JPG, -1 for edited JPG (see forum16127)
|
|
2625
|
+
50 => { #github340
|
|
2626
|
+
Name => 'FocusBracketing',
|
|
2627
|
+
PrintConv => { 0 => 'Disable', 1 => 'Enable' },
|
|
2628
|
+
},
|
|
2624
2629
|
51 => { #forum16036 (EOS R models)
|
|
2625
2630
|
Name => 'Clarity',
|
|
2626
2631
|
PrintConv => {
|
|
@@ -8935,7 +8940,7 @@ my %ciMaxFocal = (
|
|
|
8935
8940
|
},
|
|
8936
8941
|
3 => {
|
|
8937
8942
|
Name => 'HighlightTonePriority',
|
|
8938
|
-
PrintConv =>
|
|
8943
|
+
PrintConv => { %offOn, 2 => 'Enhanced' }, #github339 (Enhanced)
|
|
8939
8944
|
},
|
|
8940
8945
|
4 => {
|
|
8941
8946
|
Name => 'LongExposureNoiseReduction',
|
|
@@ -9327,6 +9332,14 @@ my %filterConv = (
|
|
|
9327
9332
|
3 => 'Vehicles',
|
|
9328
9333
|
},
|
|
9329
9334
|
},
|
|
9335
|
+
21 => { #github344 (R6)
|
|
9336
|
+
Name => 'SubjectSwitching',
|
|
9337
|
+
PrintConv => {
|
|
9338
|
+
0 => 'Initial Priority',
|
|
9339
|
+
1 => 'On Subject',
|
|
9340
|
+
2 => 'Switch Subject',
|
|
9341
|
+
},
|
|
9342
|
+
},
|
|
9330
9343
|
24 => { #forum16068
|
|
9331
9344
|
Name => 'EyeDetection',
|
|
9332
9345
|
PrintConv => \%offOn,
|