exiftool_vendored 12.65.0 → 12.67.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/Changes +20 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +2 -2
- data/bin/exiftool +11 -7
- data/bin/lib/Image/ExifTool/Apple.pm +6 -2
- data/bin/lib/Image/ExifTool/Canon.pm +31 -13
- data/bin/lib/Image/ExifTool/FujiFilm.pm +4 -1
- data/bin/lib/Image/ExifTool/Geotag.pm +1 -1
- data/bin/lib/Image/ExifTool/Nikon.pm +10 -1
- data/bin/lib/Image/ExifTool/PLUS.pm +19 -4
- data/bin/lib/Image/ExifTool/Pentax.pm +3 -1
- data/bin/lib/Image/ExifTool/TagLookup.pm +2 -1
- data/bin/lib/Image/ExifTool/TagNames.pod +10 -6
- data/bin/lib/Image/ExifTool/Writer.pl +1 -0
- data/bin/lib/Image/ExifTool/XMP2.pl +1 -1
- data/bin/lib/Image/ExifTool.pm +10 -6
- data/bin/lib/Image/ExifTool.pod +15 -5
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7a6389f7140433c97eea74b3a6b428d8c5d940dc4d295741a9a69027ee561079
|
4
|
+
data.tar.gz: b28eb642d02cf914b516e1e5e2a40588548b7ab77158a1cf78ee6b76334ad682
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0b6f0e36a66b21a6e6d9635484cba7d0ad9f94aabfede322548a0f7e31e100aa0c75766f4c0248fba3be575e734ef698b270086b5a35ba3c5164118090cc02f6
|
7
|
+
data.tar.gz: 15859db49991094833a0e8cb4ac64604b8235abc48fdb0baea28f4d4c6a1260c9b241be4e4b4ceabc4ca840eb4da9386546f843913702488109ab2393fb1465f
|
data/bin/Changes
CHANGED
@@ -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
|
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
@@ -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.
|
data/bin/exiftool
CHANGED
@@ -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;
|
@@ -5582,7 +5582,7 @@ with this command:
|
|
5582
5582
|
|
5583
5583
|
produces output like this:
|
5584
5584
|
|
5585
|
-
-- Generated by ExifTool 12.
|
5585
|
+
-- Generated by ExifTool 12.67 --
|
5586
5586
|
File: a.jpg - 2003:10:31 15:44:19
|
5587
5587
|
(f/5.6, 1/60s, ISO 100)
|
5588
5588
|
File: b.jpg - 2006:05:23 11:57:38
|
@@ -6527,7 +6527,8 @@ load exiftool for each invocation.
|
|
6527
6527
|
Set ExifTool API option. I<OPT> is an API option name. The option value is
|
6528
6528
|
set to 1 if I<=VAL> is omitted. If I<VAL> is omitted, the option value is
|
6529
6529
|
set to undef if C<=> is used, or an empty string with C<^=>. If I<OPT> is
|
6530
|
-
not specified a list of available options is returned.
|
6530
|
+
not specified a list of available options is returned. The option name is
|
6531
|
+
not case senstive, but the option values are. See
|
6531
6532
|
L<Image::ExifTool Options|Image::ExifTool/Options> for option details. This
|
6532
6533
|
overrides API options set via the config file.
|
6533
6534
|
|
@@ -7323,10 +7324,13 @@ CreateDate and FileNumber tags, in the form "20060507_118-1861.jpg".
|
|
7323
7324
|
|
7324
7325
|
=head1 GEOTAGGING EXAMPLES
|
7325
7326
|
|
7326
|
-
ExifTool implements geotagging via 3 special tags: Geotag
|
7327
|
-
convenience is also implemented as an exiftool option), Geosync
|
7328
|
-
The examples below highlight some geotagging features. See
|
7329
|
-
L<https://exiftool.org/geotag.html> for additional documentation.
|
7327
|
+
ExifTool implements geotagging from GPS log files via 3 special tags: Geotag
|
7328
|
+
(which for convenience is also implemented as an exiftool option), Geosync
|
7329
|
+
and Geotime. The examples below highlight some geotagging features. See
|
7330
|
+
L<https://exiftool.org/geotag.html> for additional documentation. (Note
|
7331
|
+
that geotagging from known GPS coordinates is done by writing the
|
7332
|
+
L<GPS tags|Image::ExifTool::TagNames/GPS Tags> directly rather than using
|
7333
|
+
the B<-geotag> option.)
|
7330
7334
|
|
7331
7335
|
=over 5
|
7332
7336
|
|
@@ -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' },
|
data/bin/lib/Image/ExifTool.pm
CHANGED
@@ -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);
|
data/bin/lib/Image/ExifTool.pod
CHANGED
@@ -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
|
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: exiftool_vendored
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 12.
|
4
|
+
version: 12.67.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew McEachen
|
8
8
|
- Sergey Morozov
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2023-
|
12
|
+
date: 2023-09-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: exiftool
|
@@ -312,7 +312,7 @@ licenses:
|
|
312
312
|
- MIT
|
313
313
|
metadata:
|
314
314
|
rubygems_mfa_required: 'true'
|
315
|
-
post_install_message:
|
315
|
+
post_install_message:
|
316
316
|
rdoc_options: []
|
317
317
|
require_paths:
|
318
318
|
- lib
|
@@ -327,8 +327,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
327
327
|
- !ruby/object:Gem::Version
|
328
328
|
version: '0'
|
329
329
|
requirements: []
|
330
|
-
rubygems_version: 3.
|
331
|
-
signing_key:
|
330
|
+
rubygems_version: 3.3.3
|
331
|
+
signing_key:
|
332
332
|
specification_version: 4
|
333
333
|
summary: Vendored version of exiftool
|
334
334
|
test_files: []
|