exiftool-vendored.exe 12.65.0 → 12.67.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.
- package/bin/exiftool_files/Changes +20 -0
- package/bin/exiftool_files/README +2 -2
- package/bin/exiftool_files/exiftool.pl +11 -7
- package/bin/exiftool_files/lib/Image/ExifTool/Apple.pm +6 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Canon.pm +31 -13
- package/bin/exiftool_files/lib/Image/ExifTool/FujiFilm.pm +4 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Geotag.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +10 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PLUS.pm +19 -4
- package/bin/exiftool_files/lib/Image/ExifTool/Pentax.pm +3 -1
- package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +2 -1
- package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +10 -6
- package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +1 -0
- package/bin/exiftool_files/lib/Image/ExifTool/XMP2.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool.pm +10 -6
- package/bin/exiftool_files/lib/Image/ExifTool.pod +15 -5
- package/package.json +2 -2
|
@@ -7,6 +7,26 @@ RSS feed: https://exiftool.org/rss.xml
|
|
|
7
7
|
Note: The most recent production release is Version 12.60. (Other versions are
|
|
8
8
|
considered development releases, and are not uploaded to MetaCPAN.)
|
|
9
9
|
|
|
10
|
+
Sept. 19, 2023 - Version 12.67
|
|
11
|
+
|
|
12
|
+
- Added a new Pentax LensType (thanks dmont)
|
|
13
|
+
- Added a new FujiFilm FilmMode and FaceElementTypes values (thanks Greybeard)
|
|
14
|
+
- Fixed error writing new DataMining tag where URI prefix wasn't being
|
|
15
|
+
properly added to the value
|
|
16
|
+
|
|
17
|
+
Sept. 19, 2023 - Version 12.66
|
|
18
|
+
|
|
19
|
+
- Added a few new Canon LensType values (thanks Norbert Wasser)
|
|
20
|
+
- Added conversions for a few Apple:ImageCaptureType values
|
|
21
|
+
- Added new XMP tag for PLUS version 2.0.1
|
|
22
|
+
- Added a new CanonModelID (thanks Laurent Clevy)
|
|
23
|
+
- Decode another tag from Canon 1DS raw images (Hubert Figuiere, github #219)
|
|
24
|
+
- Decode JPGCompression for newer Nikon models (thanks Warren Hatch)
|
|
25
|
+
- Fixed bug introduced in 12.65 where duplicate tags were not returned even
|
|
26
|
+
when the groups where specified explicitly
|
|
27
|
+
- API Changes:
|
|
28
|
+
- Added WindowsWideFile option
|
|
29
|
+
|
|
10
30
|
Aug. 10, 2023 - Version 12.65
|
|
11
31
|
|
|
12
32
|
- Added a new QuickTime Keys tag
|
|
@@ -108,8 +108,8 @@ your home directory, then you would type the following commands in a
|
|
|
108
108
|
terminal window to extract and run ExifTool:
|
|
109
109
|
|
|
110
110
|
cd ~/Desktop
|
|
111
|
-
gzip -dc Image-ExifTool-12.
|
|
112
|
-
cd Image-ExifTool-12.
|
|
111
|
+
gzip -dc Image-ExifTool-12.67.tar.gz | tar -xf -
|
|
112
|
+
cd Image-ExifTool-12.67
|
|
113
113
|
./exiftool t/images/ExifTool.jpg
|
|
114
114
|
|
|
115
115
|
Note: These commands extract meta information from one of the test images.
|
|
@@ -11,7 +11,7 @@ use strict;
|
|
|
11
11
|
use warnings;
|
|
12
12
|
require 5.004;
|
|
13
13
|
|
|
14
|
-
my $version = '12.
|
|
14
|
+
my $version = '12.67';
|
|
15
15
|
|
|
16
16
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
|
17
17
|
my $exePath;
|
|
@@ -5604,7 +5604,7 @@ OPTIONS
|
|
|
5604
5604
|
|
|
5605
5605
|
produces output like this:
|
|
5606
5606
|
|
|
5607
|
-
-- Generated by ExifTool 12.
|
|
5607
|
+
-- Generated by ExifTool 12.67 --
|
|
5608
5608
|
File: a.jpg - 2003:10:31 15:44:19
|
|
5609
5609
|
(f/5.6, 1/60s, ISO 100)
|
|
5610
5610
|
File: b.jpg - 2006:05:23 11:57:38
|
|
@@ -6533,7 +6533,8 @@ OPTIONS
|
|
|
6533
6533
|
value is set to 1 if *=VAL* is omitted. If *VAL* is omitted, the
|
|
6534
6534
|
option value is set to undef if "=" is used, or an empty string
|
|
6535
6535
|
with "^=". If *OPT* is not specified a list of available options is
|
|
6536
|
-
returned.
|
|
6536
|
+
returned. The option name is not case senstive, but the option
|
|
6537
|
+
values are. See Image::ExifTool Options for option details. This
|
|
6537
6538
|
overrides API options set via the config file.
|
|
6538
6539
|
|
|
6539
6540
|
-common_args
|
|
@@ -7241,10 +7242,13 @@ RENAMING EXAMPLES
|
|
|
7241
7242
|
"20060507_118-1861.jpg".
|
|
7242
7243
|
|
|
7243
7244
|
GEOTAGGING EXAMPLES
|
|
7244
|
-
ExifTool implements geotagging via 3 special tags:
|
|
7245
|
-
convenience is also implemented as an exiftool
|
|
7246
|
-
Geotime. The examples below highlight some
|
|
7247
|
-
<https://exiftool.org/geotag.html> for
|
|
7245
|
+
ExifTool implements geotagging from GPS log files via 3 special tags:
|
|
7246
|
+
Geotag (which for convenience is also implemented as an exiftool
|
|
7247
|
+
option), Geosync and Geotime. The examples below highlight some
|
|
7248
|
+
geotagging features. See <https://exiftool.org/geotag.html> for
|
|
7249
|
+
additional documentation. (Note that geotagging from known GPS
|
|
7250
|
+
coordinates is done by writing the GPS tags directly rather than using
|
|
7251
|
+
the -geotag option.)
|
|
7248
7252
|
|
|
7249
7253
|
exiftool -geotag track.log a.jpg
|
|
7250
7254
|
Geotag an image ("a.jpg") from position information in a GPS track
|
|
@@ -16,7 +16,7 @@ use vars qw($VERSION);
|
|
|
16
16
|
use Image::ExifTool::Exif;
|
|
17
17
|
use Image::ExifTool::PLIST;
|
|
18
18
|
|
|
19
|
-
$VERSION = '1.
|
|
19
|
+
$VERSION = '1.11';
|
|
20
20
|
|
|
21
21
|
sub ConvertPLIST($$);
|
|
22
22
|
|
|
@@ -123,8 +123,12 @@ sub ConvertPLIST($$);
|
|
|
123
123
|
0x0014 => { # (StillImageCaptureType, ref 2)
|
|
124
124
|
Name => 'ImageCaptureType',
|
|
125
125
|
Writable => 'int32s',
|
|
126
|
-
Unknown => 1, # (don't know what the values mean)
|
|
127
126
|
# seen: 1,2,3,4,5,10,12
|
|
127
|
+
PrintConv => { #forum15096
|
|
128
|
+
1 => 'ProRAW',
|
|
129
|
+
2 => 'Portrait',
|
|
130
|
+
10 => 'Photo',
|
|
131
|
+
},
|
|
128
132
|
},
|
|
129
133
|
0x0015 => { # (ImageGroupIdentifier, ref 2)
|
|
130
134
|
Name => 'ImageUniqueID',
|
|
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
|
|
|
88
88
|
sub ProcessExifInfo($$$);
|
|
89
89
|
sub SwapWords($);
|
|
90
90
|
|
|
91
|
-
$VERSION = '4.
|
|
91
|
+
$VERSION = '4.68';
|
|
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)
|
|
@@ -476,7 +476,6 @@ $VERSION = '4.67';
|
|
|
476
476
|
255.1 => 'Sigma 180mm f/2.8 EX DG OS HSM APO Macro', #50
|
|
477
477
|
255.2 => 'Tamron SP 70-200mm f/2.8 Di VC USD', #exiv issue 1202 (A009)
|
|
478
478
|
255.3 => 'Yongnuo YN 50mm f/1.8', #50
|
|
479
|
-
313 => 'Canon RF 28mm F2.8 STM', #42
|
|
480
479
|
368 => 'Sigma 14-24mm f/2.8 DG HSM | A or other Sigma Lens', #IB (A018)
|
|
481
480
|
368.1 => 'Sigma 20mm f/1.4 DG HSM | A', #50 (newer firmware)
|
|
482
481
|
368.2 => 'Sigma 50mm f/1.4 DG HSM | A', #50
|
|
@@ -609,18 +608,24 @@ $VERSION = '4.67';
|
|
|
609
608
|
'61182.33' => 'Canon RF 400mm F2.8L IS USM + RF1.4x', #IB
|
|
610
609
|
'61182.34' => 'Canon RF 400mm F2.8L IS USM + RF2x', #IB
|
|
611
610
|
'61182.35' => 'Canon RF 600mm F4L IS USM', #GiaZopatti
|
|
612
|
-
'61182.36' => 'Canon RF
|
|
613
|
-
'61182.37' => 'Canon RF
|
|
614
|
-
'61182.38' => 'Canon RF
|
|
615
|
-
'61182.39' => 'Canon RF 800mm F5.6L IS USM
|
|
616
|
-
'61182.40' => 'Canon RF
|
|
617
|
-
'61182.41' => 'Canon RF
|
|
618
|
-
'61182.42' => 'Canon RF 1200mm F8L IS USM
|
|
619
|
-
'61182.43' => 'Canon RF
|
|
620
|
-
'61182.44' => 'Canon RF
|
|
621
|
-
'61182.45' => 'Canon RF
|
|
611
|
+
'61182.36' => 'Canon RF 600mm F4L IS USM + RF1.4x', #42
|
|
612
|
+
'61182.37' => 'Canon RF 600mm F4L IS USM + RF2x', #42
|
|
613
|
+
'61182.38' => 'Canon RF 15-30mm F4.5-6.3 IS STM', #42
|
|
614
|
+
'61182.39' => 'Canon RF 800mm F5.6L IS USM', #42
|
|
615
|
+
'61182.40' => 'Canon RF 800mm F5.6L IS USM + RF1.4x', #42
|
|
616
|
+
'61182.41' => 'Canon RF 800mm F5.6L IS USM + RF2x', #42
|
|
617
|
+
'61182.42' => 'Canon RF 1200mm F8L IS USM', #42
|
|
618
|
+
'61182.43' => 'Canon RF 1200mm F8L IS USM + RF1.4x', #42
|
|
619
|
+
'61182.44' => 'Canon RF 1200mm F8L IS USM + RF2x', #42
|
|
620
|
+
'61182.45' => 'Canon RF 135mm F1.8 L IS USM', #42
|
|
621
|
+
'61182.46' => 'Canon RF 24-50mm F4.5-6.3 IS STM', #42
|
|
622
|
+
'61182.47' => 'Canon RF-S 55-210mm F5-7.1 IS STM', #42
|
|
623
|
+
'61182.48' => 'Canon RF 100-300mm F2.8L IS USM', #42
|
|
624
|
+
'61182.49' => 'Canon RF 100-300mm F2.8L IS USM + RF1.4x', #42
|
|
625
|
+
'61182.50' => 'Canon RF 100-300mm F2.8L IS USM + RF2x', #42
|
|
626
|
+
'61182.51' => 'Canon RF 28mm F2.8 STM', #42
|
|
622
627
|
# we need the RFLensType values for the following...
|
|
623
|
-
'61182.
|
|
628
|
+
'61182.52' => 'Canon RF 5.2mm F2.8L Dual Fisheye 3D VR', #PH (NC)
|
|
624
629
|
65535 => 'n/a',
|
|
625
630
|
);
|
|
626
631
|
|
|
@@ -985,6 +990,7 @@ $VERSION = '4.67';
|
|
|
985
990
|
0x80000481 => 'EOS R6 Mark II', #42
|
|
986
991
|
0x80000487 => 'EOS R8', #42
|
|
987
992
|
0x80000491 => 'PowerShot V10', #25
|
|
993
|
+
0x80000498 => 'EOS R100', #25
|
|
988
994
|
0x80000520 => 'EOS D2000C', #IB
|
|
989
995
|
0x80000560 => 'EOS D6000C', #PH (guess)
|
|
990
996
|
);
|
|
@@ -1698,6 +1704,12 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
|
|
|
1698
1704
|
# Writable => 'int32u',
|
|
1699
1705
|
# Protected => 2,
|
|
1700
1706
|
},
|
|
1707
|
+
0x82 => { #github219 (found on 1DS)
|
|
1708
|
+
Name => 'RawDataLength',
|
|
1709
|
+
# (can't yet write 1DS raw files)
|
|
1710
|
+
# Writable => 'int32u',
|
|
1711
|
+
# Protected => 2,
|
|
1712
|
+
},
|
|
1701
1713
|
0x83 => { #PH
|
|
1702
1714
|
Name => 'OriginalDecisionDataOffset',
|
|
1703
1715
|
Writable => 'int32u',
|
|
@@ -6859,6 +6871,8 @@ my %ciMaxFocal = (
|
|
|
6859
6871
|
290 => 'Canon RF 400mm F2.8L IS USM + RF1.4x', #IB
|
|
6860
6872
|
291 => 'Canon RF 400mm F2.8L IS USM + RF2x', #IB
|
|
6861
6873
|
292 => 'Canon RF 600mm F4L IS USM', #GiaZopatti
|
|
6874
|
+
293 => 'Canon RF 600mm F4L IS USM + RF1.4x', #42
|
|
6875
|
+
294 => 'Canon RF 600mm F4L IS USM + RF2x', #42
|
|
6862
6876
|
295 => 'Canon RF 800mm F5.6L IS USM', #42
|
|
6863
6877
|
296 => 'Canon RF 800mm F5.6L IS USM + RF1.4x', #42
|
|
6864
6878
|
297 => 'Canon RF 800mm F5.6L IS USM + RF2x', #42
|
|
@@ -6869,6 +6883,10 @@ my %ciMaxFocal = (
|
|
|
6869
6883
|
303 => 'Canon RF 135mm F1.8 L IS USM', #42
|
|
6870
6884
|
304 => 'Canon RF 24-50mm F4.5-6.3 IS STM', #42
|
|
6871
6885
|
305 => 'Canon RF-S 55-210mm F5-7.1 IS STM', #42
|
|
6886
|
+
306 => 'Canon RF 100-300mm F2.8L IS USM', #42
|
|
6887
|
+
307 => 'Canon RF 100-300mm F2.8L IS USM + RF1.4x', #42
|
|
6888
|
+
308 => 'Canon RF 100-300mm F2.8L IS USM + RF2x', #42
|
|
6889
|
+
313 => 'Canon RF 28mm F2.8 STM', #42
|
|
6872
6890
|
# Note: add new RF lenses to %canonLensTypes with ID 61182
|
|
6873
6891
|
},
|
|
6874
6892
|
},
|
|
@@ -31,7 +31,7 @@ use vars qw($VERSION);
|
|
|
31
31
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
32
32
|
use Image::ExifTool::Exif;
|
|
33
33
|
|
|
34
|
-
$VERSION = '1.
|
|
34
|
+
$VERSION = '1.89';
|
|
35
35
|
|
|
36
36
|
sub ProcessFujiDir($$$);
|
|
37
37
|
sub ProcessFaceRec($$$);
|
|
@@ -670,6 +670,7 @@ my %faceCategories = (
|
|
|
670
670
|
0x800 => 'Classic Negative', #forum10536
|
|
671
671
|
0x900 => 'Bleach Bypass', #forum10890
|
|
672
672
|
0xa00 => 'Nostalgic Neg', #forum12085
|
|
673
|
+
0xb00 => 'Reala ACE', #forum15190
|
|
673
674
|
},
|
|
674
675
|
},
|
|
675
676
|
0x1402 => { #2
|
|
@@ -897,6 +898,8 @@ my %faceCategories = (
|
|
|
897
898
|
25 => 'Aircraft Cockpit',
|
|
898
899
|
26 => 'Train Front',
|
|
899
900
|
27 => 'Train Cockpit',
|
|
901
|
+
28 => 'Animal Head (28)', #forum15192
|
|
902
|
+
29 => 'Animal Body (29)', #forum15192
|
|
900
903
|
},'REPEAT'],
|
|
901
904
|
},
|
|
902
905
|
# 0x4202 int8u[-1] - number of cooredinates in each rectangle? (ref 11)
|
|
@@ -1109,7 +1109,7 @@ sub SetGeoValues($$;$)
|
|
|
1109
1109
|
$iExt = $i1;
|
|
1110
1110
|
}
|
|
1111
1111
|
if (abs($time - $tn) > $geoMaxExtSecs) {
|
|
1112
|
-
$err or $err = 'Time is too far from nearest GPS fix';
|
|
1112
|
+
$err or $err = 'Time is too far from nearest GPS fix'.' '.abs($time-$tn).' '.$geoMaxExtSecs;
|
|
1113
1113
|
$et->VPrint(2, ' Nearest fix: ', PrintFixTime($tn), "\n") if $verbose > 2;
|
|
1114
1114
|
$fix = { } if $$geotag{DateTimeOnly};
|
|
1115
1115
|
} else {
|
|
@@ -65,7 +65,7 @@ use Image::ExifTool::Exif;
|
|
|
65
65
|
use Image::ExifTool::GPS;
|
|
66
66
|
use Image::ExifTool::XMP;
|
|
67
67
|
|
|
68
|
-
$VERSION = '4.
|
|
68
|
+
$VERSION = '4.25';
|
|
69
69
|
|
|
70
70
|
sub LensIDConv($$$);
|
|
71
71
|
sub ProcessNikonAVI($$$);
|
|
@@ -1983,6 +1983,14 @@ my %base64coord = (
|
|
|
1983
1983
|
Writable => 'rational64s',
|
|
1984
1984
|
Count => 2,
|
|
1985
1985
|
},
|
|
1986
|
+
0x0044 => { #28
|
|
1987
|
+
Name => 'JPGCompression',
|
|
1988
|
+
RawConv => '($val) ? $val : undef', # undef for raw files
|
|
1989
|
+
PrintConv => {
|
|
1990
|
+
1 => 'Size Priority',
|
|
1991
|
+
3 => 'Optimal Quality',
|
|
1992
|
+
},
|
|
1993
|
+
},
|
|
1986
1994
|
0x0045 => { #IB
|
|
1987
1995
|
Name => 'CropArea',
|
|
1988
1996
|
Notes => 'left, top, width, height',
|
|
@@ -9808,6 +9816,7 @@ my %nikonFocalConversions = (
|
|
|
9808
9816
|
290 => { Name => 'PhotoShootingMenuBank', PrintConv => \%banksZ9 },
|
|
9809
9817
|
292 => { Name => 'ExtendedMenuBanks', PrintConv => \%offOn }, # single tag from both Photo & Video menus
|
|
9810
9818
|
328 => { Name => 'PhotoShootingMenuBankImageArea', PrintConv => \%imageAreaZ9 },
|
|
9819
|
+
#334 JPGCompression 0 => 'Size Priority', 1 => 'Optimal Quality',
|
|
9811
9820
|
342 => { Name => 'AutoISO', PrintConv => \%offOn },
|
|
9812
9821
|
344 => {
|
|
9813
9822
|
Name => 'ISOAutoHiLimit',
|
|
@@ -14,7 +14,7 @@ use strict;
|
|
|
14
14
|
use vars qw($VERSION);
|
|
15
15
|
use Image::ExifTool::XMP;
|
|
16
16
|
|
|
17
|
-
$VERSION = '1.
|
|
17
|
+
$VERSION = '1.02';
|
|
18
18
|
|
|
19
19
|
sub ValidateMediaSummary($);
|
|
20
20
|
|
|
@@ -2311,12 +2311,13 @@ my %mediaMatrix = (
|
|
|
2311
2311
|
GROUPS => { 0 => 'XMP', 1 => 'XMP-plus', 2 => 'Author' },
|
|
2312
2312
|
NAMESPACE => 'plus',
|
|
2313
2313
|
NOTES => q{
|
|
2314
|
-
PLUS (Picture Licensing Universal System) License Data Format
|
|
2314
|
+
PLUS (Picture Licensing Universal System) License Data Format 2.0.1 XMP
|
|
2315
2315
|
tags. Note that all controlled-vocabulary tags in this table (ie. tags with
|
|
2316
2316
|
a fixed set of values) have raw values which begin with
|
|
2317
2317
|
"http://ns.useplus.org/ldf/vocab/", but to reduce clutter this prefix has
|
|
2318
|
-
been removed from the values shown below
|
|
2319
|
-
the
|
|
2318
|
+
been removed from the values shown below, and from the values read and
|
|
2319
|
+
written with the -n option. See L<http://ns.useplus.org/> for the complete
|
|
2320
|
+
specification.
|
|
2320
2321
|
},
|
|
2321
2322
|
Version => { Name => 'PLUSVersion' },
|
|
2322
2323
|
Licensee => {
|
|
@@ -2529,6 +2530,20 @@ my %mediaMatrix = (
|
|
|
2529
2530
|
Custom8 => { List => 'Bag', Writable => 'lang-alt' },
|
|
2530
2531
|
Custom9 => { List => 'Bag', Writable => 'lang-alt' },
|
|
2531
2532
|
Custom10 => { List => 'Bag', Writable => 'lang-alt' },
|
|
2533
|
+
DataMining => {
|
|
2534
|
+
%plusVocab,
|
|
2535
|
+
PrintConv => {
|
|
2536
|
+
'DMI-UNSPECIFIED' => 'Unspecified - no prohibition defined',
|
|
2537
|
+
'DMI-ALLOWED' => 'Allowed',
|
|
2538
|
+
'DMI-PROHIBITED-AIMLTRAINING' => 'Prohibited for AI/ML training',
|
|
2539
|
+
'DMI-PROHIBITED-GENAIMLTRAINING' => 'Prohibited for Generative AI/ML training',
|
|
2540
|
+
'DMI-PROHIBITED-EXCEPTSEARCHENGINEINDEXING' => 'Prohibited except for search engine indexing',
|
|
2541
|
+
'DMI-PROHIBITED' => 'Prohibited',
|
|
2542
|
+
'DMI-PROHIBITED-SEECONSTRAINT' => 'Prohibited, see plus:OtherConstraints',
|
|
2543
|
+
'DMI-PROHIBITED-SEEEMBEDDEDRIGHTSEXPR' => 'Prohibited, see iptcExt:EmbdEncRightsExpr',
|
|
2544
|
+
'DMI-PROHIBITED-SEELINKEDRIGHTSEXPR' => 'Prohibited, see iptcExt:LinkedEncRightsExpr',
|
|
2545
|
+
},
|
|
2546
|
+
},
|
|
2532
2547
|
);
|
|
2533
2548
|
|
|
2534
2549
|
#------------------------------------------------------------------------------
|
|
@@ -58,7 +58,7 @@ use Image::ExifTool::Exif;
|
|
|
58
58
|
use Image::ExifTool::GPS;
|
|
59
59
|
use Image::ExifTool::HP;
|
|
60
60
|
|
|
61
|
-
$VERSION = '3.
|
|
61
|
+
$VERSION = '3.43';
|
|
62
62
|
|
|
63
63
|
sub CryptShutterCount($$);
|
|
64
64
|
sub PrintFilter($$$);
|
|
@@ -175,6 +175,7 @@ sub DecodeAFPoints($$$$;$);
|
|
|
175
175
|
'4 2' => 'smc PENTAX-FA 80-320mm F4.5-5.6',
|
|
176
176
|
'4 3' => 'smc PENTAX-FA 43mm F1.9 Limited',
|
|
177
177
|
'4 6' => 'smc PENTAX-FA 35-80mm F4-5.6',
|
|
178
|
+
'4 7' => 'Irix 45mm F1.4', #27
|
|
178
179
|
'4 8' => 'Irix 150mm F2.8 Macro', #exiv2 issue 1084
|
|
179
180
|
'4 9' => 'Irix 11mm F4 Firefly', #27
|
|
180
181
|
'4 10' => 'Irix 15mm F2.4', #27
|
|
@@ -265,6 +266,7 @@ sub DecodeAFPoints($$$$;$);
|
|
|
265
266
|
'6 14' => 'smc PENTAX-FA* Macro 200mm F4 ED[IF]',
|
|
266
267
|
'7 0' => 'smc PENTAX-DA 21mm F3.2 AL Limited', #13
|
|
267
268
|
'7 58' => 'smc PENTAX-D FA Macro 100mm F2.8 WR', #PH - this bit of information cost me $600 ;)
|
|
269
|
+
# '7 58' also 'HD PENTAX-D FA MACRO 100mm F2.8 ED AW' (ref 27)
|
|
268
270
|
'7 75' => 'Tamron SP AF 70-200mm F2.8 Di LD [IF] Macro (A001)', #(Anton Bondar)
|
|
269
271
|
'7 201' => 'smc Pentax-DA L 50-200mm F4-5.6 ED WR', #(Bruce Rusk)
|
|
270
272
|
'7 202' => 'smc PENTAX-DA L 18-55mm F3.5-5.6 AL WR', #29
|
|
@@ -2165,6 +2165,7 @@ my %tagLookup = (
|
|
|
2165
2165
|
'darkpedestal' => { 138 => 0xc7f },
|
|
2166
2166
|
'datacompressionmethod' => { 133 => 0x6e },
|
|
2167
2167
|
'dataimprint' => { 181 => 0x34 },
|
|
2168
|
+
'datamining' => { 327 => 'DataMining' },
|
|
2168
2169
|
'dataonscreen' => { 514 => 'DataOnScreen' },
|
|
2169
2170
|
'dataonscreenregion' => { 514 => [\'DataOnScreen','DataOnScreenRegion'] },
|
|
2170
2171
|
'dataonscreenregiond' => { 514 => [\'DataOnScreen','DataOnScreenRegionD'] },
|
|
@@ -3765,7 +3766,7 @@ my %tagLookup = (
|
|
|
3765
3766
|
'jpeghandling' => { 500 => 'JPEGHandling', 502 => 'JPEGHandling' },
|
|
3766
3767
|
'jpegquality' => { 10 => 0x66, 340 => 0x43, 342 => 0x3034, 440 => 0xb047 },
|
|
3767
3768
|
'jpegsize' => { 342 => 0x303a },
|
|
3768
|
-
'jpgcompression' => { 225 => 0x24 },
|
|
3769
|
+
'jpgcompression' => { 225 => 0x24, 234 => 0x44 },
|
|
3769
3770
|
'jpgfromraw' => { 97 => 0x2007, 114 => 'Exif-JpgFromRaw', 345 => 0x2e },
|
|
3770
3771
|
'jpgfromrawlength' => { 119 => [0x117,0x202] },
|
|
3771
3772
|
'jpgfromrawstart' => { 119 => [0x111,0x201] },
|
|
@@ -12,7 +12,7 @@ meta information extracted from or written to a file.
|
|
|
12
12
|
=head1 TAG TABLES
|
|
13
13
|
|
|
14
14
|
The tables listed below give the names of all tags recognized by ExifTool.
|
|
15
|
-
They contain a total of
|
|
15
|
+
They contain a total of 26993 tags, with 16973 unique tag names.
|
|
16
16
|
|
|
17
17
|
B<Tag ID>, B<Index#> or B<Sequence> is given in the first column of each
|
|
18
18
|
table. A B<Tag ID> is the computer-readable equivalent of a tag name, and
|
|
@@ -5557,7 +5557,7 @@ These tags belong to the ExifTool XMP-prism family 1 group.
|
|
|
5557
5557
|
|
|
5558
5558
|
PRISM Rights Language 2.1 namespace tags. These tags have been deprecated
|
|
5559
5559
|
since the release of the PRISM Usage Rights 3.0. (see
|
|
5560
|
-
L<
|
|
5560
|
+
L<https://www.w3.org/submissions/2020/SUBM-prism-20200910/prism-image.html>)
|
|
5561
5561
|
|
|
5562
5562
|
These tags belong to the ExifTool XMP-prl family 1 group.
|
|
5563
5563
|
|
|
@@ -6570,12 +6570,13 @@ GeoTiffAsciiParams.
|
|
|
6570
6570
|
|
|
6571
6571
|
=head3 PLUS XMP Tags
|
|
6572
6572
|
|
|
6573
|
-
PLUS (Picture Licensing Universal System) License Data Format
|
|
6573
|
+
PLUS (Picture Licensing Universal System) License Data Format 2.0.1 XMP
|
|
6574
6574
|
tags. Note that all controlled-vocabulary tags in this table (ie. tags with
|
|
6575
6575
|
a fixed set of values) have raw values which begin with
|
|
6576
6576
|
"http://ns.useplus.org/ldf/vocab/", but to reduce clutter this prefix has
|
|
6577
|
-
been removed from the values shown below
|
|
6578
|
-
the
|
|
6577
|
+
been removed from the values shown below, and from the values read and
|
|
6578
|
+
written with the -n option. See L<http://ns.useplus.org/> for the complete
|
|
6579
|
+
specification.
|
|
6579
6580
|
|
|
6580
6581
|
These tags belong to the ExifTool XMP-plus family 1 group.
|
|
6581
6582
|
|
|
@@ -6599,6 +6600,7 @@ These tags belong to the ExifTool XMP-plus family 1 group.
|
|
|
6599
6600
|
Custom7 lang-alt+
|
|
6600
6601
|
Custom8 lang-alt+
|
|
6601
6602
|
Custom9 lang-alt+
|
|
6603
|
+
DataMining string
|
|
6602
6604
|
EndUser EndUser Struct+
|
|
6603
6605
|
EndUserID string_+
|
|
6604
6606
|
EndUserName string_+
|
|
@@ -7188,7 +7190,7 @@ Tags extracted from the maker notes of iPhone images.
|
|
|
7188
7190
|
0x000c FocusDistanceRange rational64s[2]
|
|
7189
7191
|
0x000f OISMode int32s
|
|
7190
7192
|
0x0011 ContentIdentifier string
|
|
7191
|
-
0x0014 ImageCaptureType
|
|
7193
|
+
0x0014 ImageCaptureType int32s
|
|
7192
7194
|
0x0015 ImageUniqueID string
|
|
7193
7195
|
0x0017 LivePhotoVideoIndex yes
|
|
7194
7196
|
0x0019 ImageProcessingFlags? int32s
|
|
@@ -7516,6 +7518,7 @@ Unknown only to reduce the volume of the normal output.
|
|
|
7516
7518
|
0x0038 BatteryType undef
|
|
7517
7519
|
0x003c AFInfo3 Canon AFInfo2
|
|
7518
7520
|
0x0081 RawDataOffset no
|
|
7521
|
+
0x0082 RawDataLength no
|
|
7519
7522
|
0x0083 OriginalDecisionDataOffset int32u*
|
|
7520
7523
|
0x0090 CustomFunctions1D CanonCustom Functions1D
|
|
7521
7524
|
0x0091 PersonalFunctions CanonCustom PersonalFuncs
|
|
@@ -13764,6 +13767,7 @@ DiMAGE X and Xt.
|
|
|
13764
13767
|
0x003d BlackLevel int16u[4]
|
|
13765
13768
|
0x003e ImageSizeRAW yes
|
|
13766
13769
|
0x003f WhiteBalanceFineTune rational64s[2]
|
|
13770
|
+
0x0044 JPGCompression yes
|
|
13767
13771
|
0x0045 CropArea int16u[4]
|
|
13768
13772
|
0x004e NikonSettings NikonSettings
|
|
13769
13773
|
0x004f ColorTemperatureAuto int16u
|
|
@@ -1320,6 +1320,7 @@ sub SetNewValuesFromFile($$;@)
|
|
|
1320
1320
|
Unknown => $$options{Unknown},
|
|
1321
1321
|
UserParam => $$options{UserParam},
|
|
1322
1322
|
Validate => $$options{Validate},
|
|
1323
|
+
WindowsWideFile => $$options{WindowsWideFile},
|
|
1323
1324
|
XAttrTags => $$options{XAttrTags},
|
|
1324
1325
|
XMPAutoConv => $$options{XMPAutoConv},
|
|
1325
1326
|
);
|
|
@@ -1063,7 +1063,7 @@ my %prismPublicationDate = (
|
|
|
1063
1063
|
NOTES => q{
|
|
1064
1064
|
PRISM Rights Language 2.1 namespace tags. These tags have been deprecated
|
|
1065
1065
|
since the release of the PRISM Usage Rights 3.0. (see
|
|
1066
|
-
L<
|
|
1066
|
+
L<https://www.w3.org/submissions/2020/SUBM-prism-20200910/prism-image.html>)
|
|
1067
1067
|
},
|
|
1068
1068
|
geography => { List => 'Bag' },
|
|
1069
1069
|
industry => { List => 'Bag' },
|
|
@@ -29,15 +29,15 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
|
|
|
29
29
|
%jpegMarker %specialTags %fileTypeLookup $testLen $exeDir
|
|
30
30
|
%static_vars);
|
|
31
31
|
|
|
32
|
-
$VERSION = '12.
|
|
32
|
+
$VERSION = '12.67';
|
|
33
33
|
$RELEASE = '';
|
|
34
34
|
@ISA = qw(Exporter);
|
|
35
35
|
%EXPORT_TAGS = (
|
|
36
36
|
# all public non-object-oriented functions:
|
|
37
37
|
Public => [qw(
|
|
38
|
-
ImageInfo GetTagName GetShortcuts GetAllTags
|
|
39
|
-
GetAllGroups GetDeleteGroups GetFileType CanWrite
|
|
40
|
-
AddUserDefinedTags
|
|
38
|
+
ImageInfo AvailableOptions GetTagName GetShortcuts GetAllTags
|
|
39
|
+
GetWritableTags GetAllGroups GetDeleteGroups GetFileType CanWrite
|
|
40
|
+
CanCreate AddUserDefinedTags
|
|
41
41
|
)],
|
|
42
42
|
# exports not part of the public API, but used by ExifTool modules:
|
|
43
43
|
DataAccess => [qw(
|
|
@@ -1133,6 +1133,7 @@ my @availableOptions = (
|
|
|
1133
1133
|
[ 'UserParam', { }, 'user parameters for additional user-defined tag values' ],
|
|
1134
1134
|
[ 'Validate', undef, 'perform additional validation' ],
|
|
1135
1135
|
[ 'Verbose', 0, 'print verbose messages (0-5, higher # = more verbose)' ],
|
|
1136
|
+
[ 'WindowsWideFile', undef, 'force the use of Windows wide-character file routines' ], # (see forum15208)
|
|
1136
1137
|
[ 'WriteMode', 'wcg', 'enable all write modes by default' ],
|
|
1137
1138
|
[ 'XAttrTags', undef, 'extract MacOS extended attribute tags' ],
|
|
1138
1139
|
[ 'XMPAutoConv', 1, 'automatic conversion of unknown XMP tag values' ],
|
|
@@ -4305,6 +4306,7 @@ sub EncodeFileName($$;$)
|
|
|
4305
4306
|
{
|
|
4306
4307
|
my ($self, $file, $force) = @_;
|
|
4307
4308
|
my $enc = $$self{OPTIONS}{CharsetFileName};
|
|
4309
|
+
$force = 1 if $$self{OPTIONS}{WindowsWideFile};
|
|
4308
4310
|
if ($enc) {
|
|
4309
4311
|
if ($file =~ /[\x80-\xff]/ or $force) {
|
|
4310
4312
|
# encode for use in Windows Unicode functions if necessary
|
|
@@ -4740,13 +4742,16 @@ sub CopyAltInfo($$$)
|
|
|
4740
4742
|
# Notes: index lists are returned in increasing order
|
|
4741
4743
|
sub SetFoundTags($)
|
|
4742
4744
|
{
|
|
4745
|
+
local $_;
|
|
4743
4746
|
my $self = shift;
|
|
4744
4747
|
my $options = $$self{OPTIONS};
|
|
4745
4748
|
my $reqTags = $$self{REQUESTED_TAGS} || [ ];
|
|
4746
4749
|
my $duplicates = $$options{Duplicates};
|
|
4747
4750
|
my $exclude = $$options{Exclude};
|
|
4748
4751
|
my $fileOrder = $$self{FILE_ORDER};
|
|
4749
|
-
my @groupOptions
|
|
4752
|
+
my @groupOptions;
|
|
4753
|
+
# ignore empty group options
|
|
4754
|
+
$$options{$_} and push @groupOptions, $_ foreach sort grep /^Group/, keys %$options;
|
|
4750
4755
|
my $doDups = $duplicates || $exclude || @groupOptions;
|
|
4751
4756
|
my ($tag, $rtnTags, @byValue, @wildTags);
|
|
4752
4757
|
|
|
@@ -4911,7 +4916,6 @@ sub SetFoundTags($)
|
|
|
4911
4916
|
$groupList = [ $$options{$groupOpt} ];
|
|
4912
4917
|
}
|
|
4913
4918
|
foreach (@$groupList) {
|
|
4914
|
-
next unless defined $_;
|
|
4915
4919
|
# groups have priority in order they were specified
|
|
4916
4920
|
++$wantOrder;
|
|
4917
4921
|
my ($groupName, $want);
|
|
@@ -391,12 +391,14 @@ ExifTool may be returned:
|
|
|
391
391
|
Get/set ExifTool options. This function can be called to set the default
|
|
392
392
|
options for an ExifTool object. Options set this way are in effect for
|
|
393
393
|
all function calls but may be overridden by options passed as arguments
|
|
394
|
-
to some functions. Option names are not case sensitive
|
|
394
|
+
to some functions. Option names are not case sensitive, but option values
|
|
395
|
+
are.
|
|
395
396
|
|
|
396
397
|
The default option values may be changed by defining a
|
|
397
398
|
%Image::ExifTool::UserDefined::Options hash. See the ExifTool_config file
|
|
398
|
-
in the full ExifTool distribution for examples.
|
|
399
|
-
same
|
|
399
|
+
in the full ExifTool distribution for examples. Unless otherwise noted, a
|
|
400
|
+
default of undef has the same effect as a value of 0 for options with
|
|
401
|
+
numerical values.
|
|
400
402
|
|
|
401
403
|
# exclude the 'OwnerName' tag from returned information
|
|
402
404
|
$exifTool->Options(Exclude => 'OwnerName');
|
|
@@ -1081,6 +1083,14 @@ details about the tags. Level 3 adds a hex dump of the tag data, but with
|
|
|
1081
1083
|
limits on the number of bytes dumped. Levels 4 and 5 remove the dump limit
|
|
1082
1084
|
on tag values and JPEG segment data respectively.
|
|
1083
1085
|
|
|
1086
|
+
=item WindowsWideFile
|
|
1087
|
+
|
|
1088
|
+
Force the use of wide-character Windows I/O functions when the
|
|
1089
|
+
L</CharsetFileName> option is used. This may be necessary when files are on
|
|
1090
|
+
a network drive and the current directory name contains Unicode characters.
|
|
1091
|
+
By default, the wide-character functions are used only if the specified file
|
|
1092
|
+
path contains Unicode characters.
|
|
1093
|
+
|
|
1084
1094
|
=item WriteMode
|
|
1085
1095
|
|
|
1086
1096
|
Set tag write/create mode. Value is a string of one or more characters from
|
|
@@ -1155,7 +1165,7 @@ ExtractEmbedded, FastScan, FixBase, HtmlDump, HtmlDumpBase,
|
|
|
1155
1165
|
IgnoreMinorErrors, IgnoreTags, Lang, LargeFileSupport, MakerNotes,
|
|
1156
1166
|
MDItemTags, NoPDFList, Password, QuickTimeUTC (enforced 1904 time zero),
|
|
1157
1167
|
RequestAll, RequestTags, SaveFormat, SavePath, ScanForXMP, Struct, TextOut,
|
|
1158
|
-
Unknown, Verbose, XAttrTags and XMPAutoConv.
|
|
1168
|
+
Unknown, Verbose, WindowsWideFile, XAttrTags and XMPAutoConv.
|
|
1159
1169
|
|
|
1160
1170
|
=item Return Value:
|
|
1161
1171
|
|
|
@@ -1294,7 +1304,7 @@ The following ExifTool options are effective in the call to L</WriteInfo>:
|
|
|
1294
1304
|
|
|
1295
1305
|
ByteOrder, Charset, CharsetEXIF, CharsetFileName, CharsetIPTC, Compact,
|
|
1296
1306
|
Compress, FixBase, IgnoreMinorErrors, NoMultiExif, NoPDFList, Password,
|
|
1297
|
-
QuickTimeHandler, QuickTimePad, Verbose and WriteMode.
|
|
1307
|
+
QuickTimeHandler, QuickTimePad, Verbose, WindowsWideFile and WriteMode.
|
|
1298
1308
|
|
|
1299
1309
|
=head2 GetTagList
|
|
1300
1310
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "exiftool-vendored.exe",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.67.0",
|
|
4
4
|
"description": "Vendored win32 ExifTool for Node.js",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"homepage": "https://github.com/mceachen/exiftool-vendored.exe#readme",
|
|
@@ -43,6 +43,6 @@
|
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"mocha": "^10.2.0",
|
|
45
45
|
"prettier": "^3.0.3",
|
|
46
|
-
"release-it": "^16.1
|
|
46
|
+
"release-it": "^16.2.1"
|
|
47
47
|
}
|
|
48
48
|
}
|