exiftool_vendored 12.80.0 → 12.81.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/Changes +26 -0
- data/bin/MANIFEST +2 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +3 -2
- data/bin/exiftool +25 -9
- data/bin/lib/Image/ExifTool/CanonVRD.pm +2 -2
- data/bin/lib/Image/ExifTool/FujiFilm.pm +13 -7
- data/bin/lib/Image/ExifTool/Geolocation.pm +294 -134
- data/bin/lib/Image/ExifTool/Geotag.pm +9 -4
- data/bin/lib/Image/ExifTool/M2TS.pm +32 -4
- data/bin/lib/Image/ExifTool/MakerNotes.pm +2 -2
- data/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
- data/bin/lib/Image/ExifTool/Nikon.pm +329 -21
- data/bin/lib/Image/ExifTool/NikonCustom.pm +55 -1
- data/bin/lib/Image/ExifTool/Olympus.pm +1 -0
- data/bin/lib/Image/ExifTool/OpenEXR.pm +21 -3
- data/bin/lib/Image/ExifTool/PNG.pm +3 -3
- data/bin/lib/Image/ExifTool/QuickTime.pm +12 -1
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +1 -1
- data/bin/lib/Image/ExifTool/Sony.pm +1 -1
- data/bin/lib/Image/ExifTool/TagLookup.pm +4791 -4776
- data/bin/lib/Image/ExifTool/TagNames.pod +542 -383
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +28 -8
- data/bin/lib/Image/ExifTool/Writer.pl +8 -2
- data/bin/lib/Image/ExifTool/XMP.pm +1 -0
- data/bin/lib/Image/ExifTool.pm +51 -37
- data/bin/lib/Image/ExifTool.pod +6 -0
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7ba2444c39547a29d2fc1571e6dd379717eacc8bd4ddabe6eb65fd5129b8b072
|
|
4
|
+
data.tar.gz: 72c5c28b89791790a889835831e94c5dc27eb7b635b8a35b4e8d2c2775684b2a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 38d482929aafd323864314e3dd10f08c43b3798bc345457342010cad7a032fe193a5a6d39daf82666cb7b56c0da7db1da78794811c7ad0fbde63f256e674be6d
|
|
7
|
+
data.tar.gz: a7826bccc3d66f967e5978c4b689a846a510c66f005812283170791a3a1cb24ddaa7ed52d9cc6b86d9ac3f5eabf83cfa950c9a03a907a3974e67c90e9d38b647
|
data/bin/Changes
CHANGED
|
@@ -7,6 +7,29 @@ RSS feed: https://exiftool.org/rss.xml
|
|
|
7
7
|
Note: The most recent production release is Version 12.76. (Other versions are
|
|
8
8
|
considered development releases, and are not uploaded to MetaCPAN.)
|
|
9
9
|
|
|
10
|
+
Mar. 27, 2024 - Version 12.81
|
|
11
|
+
|
|
12
|
+
- Added ability to read EXIF and XMP from EXR images
|
|
13
|
+
- Added ability to delete unknown trailer when writing MOV/MP4 videos
|
|
14
|
+
- Added ability to write a couple of Stable Diffusion PNG tags
|
|
15
|
+
- Added ability to write one of the Microsoft Xtra Description tags (github
|
|
16
|
+
#248)
|
|
17
|
+
- Added support for using alternate city names in reverse Geolocation
|
|
18
|
+
- Added support for reading timed GPS from DOD LS600W TS videos
|
|
19
|
+
- Added support for new version of Canon DR4 files
|
|
20
|
+
- Added a number of new iTunesInfo tags
|
|
21
|
+
- Added a new Olympus LensType
|
|
22
|
+
- Allow regular expressions to be used when writing Geolocate tag
|
|
23
|
+
- Decode a number of new Nikon tags (thanks Warren Hatch)
|
|
24
|
+
- Enhanced writing of Geolocate tag to also write Keys:LocationName
|
|
25
|
+
- Cache the results of the last reverse geolocation search to speed batch
|
|
26
|
+
processing when multiple files have the same search parameters
|
|
27
|
+
- Patched problem that could cause runtime errors with some invaid tag names
|
|
28
|
+
- Fixed a couple of newly added FujiFilm tags
|
|
29
|
+
- Fixed decoding of FujiFilm AFAreaZoneSize
|
|
30
|
+
- API Changes:
|
|
31
|
+
- Added GeolocAltNames option
|
|
32
|
+
|
|
10
33
|
Mar. 19, 2024 - Version 12.80
|
|
11
34
|
|
|
12
35
|
- Added GeolocationFeatureCode tag
|
|
@@ -19,6 +42,8 @@ Mar. 19, 2024 - Version 12.80
|
|
|
19
42
|
- Improved accuracy of Geolocation distance/bearing calculations
|
|
20
43
|
- Changed structure of Geolocation database (now version 1.02)
|
|
21
44
|
- Minor change to key format for user-defined Geolocation name translations
|
|
45
|
+
- Ignore API Geolocation option when copying tags if none of the Geolocation
|
|
46
|
+
tags are being copied
|
|
22
47
|
- Fixed case/spacing of "C2PA" in some CBOR tag descriptions
|
|
23
48
|
- Fixed bug extracting binary data from EXR files
|
|
24
49
|
- API Changes:
|
|
@@ -29,6 +54,7 @@ Mar. 15, 2024 - Version 12.79
|
|
|
29
54
|
- Improvements to new Geolocation feature:
|
|
30
55
|
- Added reverse Geolocation ability (obtain GPS coordinates from city
|
|
31
56
|
name), with support for regular expressions
|
|
57
|
+
- Added ability to geolocate while geotagging
|
|
32
58
|
- Added -listgeo option to list the Geolocation database
|
|
33
59
|
- Added the ability to include user-defined cities in the Geolocation
|
|
34
60
|
database
|
data/bin/MANIFEST
CHANGED
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
|
@@ -109,8 +109,8 @@ your home directory, then you would type the following commands in a
|
|
|
109
109
|
terminal window to extract and run ExifTool:
|
|
110
110
|
|
|
111
111
|
cd ~/Desktop
|
|
112
|
-
gzip -dc Image-ExifTool-12.
|
|
113
|
-
cd Image-ExifTool-12.
|
|
112
|
+
gzip -dc Image-ExifTool-12.81.tar.gz | tar -xf -
|
|
113
|
+
cd Image-ExifTool-12.81
|
|
114
114
|
./exiftool t/images/ExifTool.jpg
|
|
115
115
|
|
|
116
116
|
Note: These commands extract meta information from one of the test images.
|
|
@@ -238,6 +238,7 @@ information:
|
|
|
238
238
|
html/ExifTool.html - API documentation
|
|
239
239
|
html/TagNames/index.html - Tag name documentation
|
|
240
240
|
html/geotag.html - Geotag feature
|
|
241
|
+
html/geolocation.html - Geolocation feature
|
|
241
242
|
html/faq.html - Frequently asked questions
|
|
242
243
|
html/filename.html - Renaming/moving files
|
|
243
244
|
html/metafiles.html - Working with metadata sidecar files
|
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.81';
|
|
15
15
|
|
|
16
16
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
|
17
17
|
my $exePath;
|
|
@@ -723,17 +723,22 @@ for (;;) {
|
|
|
723
723
|
require Image::ExifTool::Geolocation;
|
|
724
724
|
my ($i, $entry);
|
|
725
725
|
print "Geolocation database:\n" unless $quiet;
|
|
726
|
-
|
|
726
|
+
my $isAlt = $mt->Options('GeolocAltNames') ? ',AltNames' : '';
|
|
727
|
+
$isAlt = '' if $isAlt and not Image::ExifTool::Geolocation::ReadAltNames();
|
|
728
|
+
print "City,Region,Subregion,CountryCode,Country,TimeZone,FeatureCode,Population,Latitude,Longitude$isAlt\n";
|
|
727
729
|
Image::ExifTool::Geolocation::SortDatabase('City') if $sortOpt;
|
|
728
730
|
my $minPop = $mt->Options('GeolocMinPop');
|
|
729
731
|
my $feature = $mt->Options('GeolocFeature') || '';
|
|
730
732
|
my $neg = $feature =~ s/^-//;
|
|
731
733
|
my %fcodes = map { lc($_) => 1 } split /\s*,\s*/, $feature;
|
|
734
|
+
my @isUTF8 = (0,1,2,4); # items that need converting from UTF8
|
|
735
|
+
push @isUTF8, 10 if $isAlt;
|
|
732
736
|
for ($i=0; ; ++$i) {
|
|
733
|
-
my @entry = Image::ExifTool::Geolocation::GetEntry($i,$langOpt) or last;
|
|
737
|
+
my @entry = Image::ExifTool::Geolocation::GetEntry($i,$langOpt,1) or last;
|
|
738
|
+
push @entry, Image::ExifTool::Geolocation::GetAltNames($i,1) if $isAlt;
|
|
734
739
|
next if $minPop and $entry[7] < $minPop;
|
|
735
740
|
next if %fcodes and $neg ? $fcodes{lc $entry[6]} : not $fcodes{lc $entry[6]};
|
|
736
|
-
$_ = defined $_ ? $mt->Decode($_, 'UTF8') : '' foreach @entry[
|
|
741
|
+
$_ = defined $_ ? $mt->Decode($_, 'UTF8') : '' foreach @entry[@isUTF8];
|
|
737
742
|
print join(',', @entry), "\n";
|
|
738
743
|
}
|
|
739
744
|
} else { # 'g(\d*)'
|
|
@@ -1365,11 +1370,11 @@ for (;;) {
|
|
|
1365
1370
|
$useMWG = 1;
|
|
1366
1371
|
} elsif (/^([-\w]+:)*(filename|directory|testname)\b/i) {
|
|
1367
1372
|
$doSetFileName = 1;
|
|
1368
|
-
} elsif (/^([-\w]+:)*(geotag|geotime|geosync)\b/i) {
|
|
1373
|
+
} elsif (/^([-\w]+:)*(geotag|geotime|geosync|geolocate)\b/i) {
|
|
1369
1374
|
if (lc $2 eq 'geotime') {
|
|
1370
1375
|
$addGeotime = '';
|
|
1371
1376
|
} else {
|
|
1372
|
-
# add geotag/geosync commands first
|
|
1377
|
+
# add geotag/geosync/geolocate commands first
|
|
1373
1378
|
unshift @newValues, pop @newValues;
|
|
1374
1379
|
if (lc $2 eq 'geotag' and (not defined $addGeotime or $addGeotime) and length $val) {
|
|
1375
1380
|
$addGeotime = ($1 || '') . 'Geotime<DateTimeOriginal#';
|
|
@@ -5657,7 +5662,7 @@ with this command:
|
|
|
5657
5662
|
|
|
5658
5663
|
produces output like this:
|
|
5659
5664
|
|
|
5660
|
-
-- Generated by ExifTool 12.
|
|
5665
|
+
-- Generated by ExifTool 12.81 --
|
|
5661
5666
|
File: a.jpg - 2003:10:31 15:44:19
|
|
5662
5667
|
(f/5.6, 1/60s, ISO 100)
|
|
5663
5668
|
File: b.jpg - 2006:05:23 11:57:38
|
|
@@ -6435,8 +6440,9 @@ otherwise family 0 is assumed. The B<-l> option may be combined with
|
|
|
6435
6440
|
B<-listf>, B<-listr> or B<-listwf> to add file descriptions to the list.
|
|
6436
6441
|
The B<-lang> option may be combined with B<-listx> to output descriptions in
|
|
6437
6442
|
a single language, and the B<-sort> and/or B<-lang> options may be combined
|
|
6438
|
-
with B<-listgeo>. Also, the API GeolocMinPop
|
|
6439
|
-
apply to the B<-listgeo> output. Here are some
|
|
6443
|
+
with B<-listgeo>. Also, the API GeolocMinPop, GeolocFeature and
|
|
6444
|
+
GeolocAltNames options apply to the B<-listgeo> output. Here are some
|
|
6445
|
+
examples:
|
|
6440
6446
|
|
|
6441
6447
|
-list # list all tag names
|
|
6442
6448
|
-list -EXIF:All # list all EXIF tags
|
|
@@ -6538,6 +6544,10 @@ examples. Also see "geotag.html" in the full ExifTool distribution and the
|
|
|
6538
6544
|
L<Image::ExifTool Options|Image::ExifTool/Options> for more details and for
|
|
6539
6545
|
information about geotag configuration options.
|
|
6540
6546
|
|
|
6547
|
+
The API Geolocation option may be set to the value "geotag" to also write
|
|
6548
|
+
the name, province/state and country of the nearest city while geotagging.
|
|
6549
|
+
See L<https://exiftool.org/geolocation.html> for details.
|
|
6550
|
+
|
|
6541
6551
|
=item B<-globalTimeShift> I<SHIFT>
|
|
6542
6552
|
|
|
6543
6553
|
Shift all formatted date/time values by the specified amount when reading.
|
|
@@ -7435,6 +7445,12 @@ Geotag an image (C<a.jpg>) from position information in a GPS track log
|
|
|
7435
7445
|
DateTimeOriginal is used for geotagging. Local system time is assumed
|
|
7436
7446
|
unless DateTimeOriginal contains a timezone.
|
|
7437
7447
|
|
|
7448
|
+
=item exiftool -geotag track.log -geolocate=geotag a.jpg
|
|
7449
|
+
|
|
7450
|
+
Geotag an image and also write geolocation information of the nearest city
|
|
7451
|
+
(city name, state/province and country). Read here for more details about
|
|
7452
|
+
the Geolocation feature: L<https://exiftool.org/geolocation.html#Write>
|
|
7453
|
+
|
|
7438
7454
|
=item exiftool -geotag t.log -geotime='2009:04:02 13:41:12-05:00' a.jpg
|
|
7439
7455
|
|
|
7440
7456
|
Geotag an image with the GPS position for a specific time.
|
|
@@ -23,7 +23,7 @@ use vars qw($VERSION);
|
|
|
23
23
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
24
24
|
use Image::ExifTool::Canon;
|
|
25
25
|
|
|
26
|
-
$VERSION = '1.
|
|
26
|
+
$VERSION = '1.39';
|
|
27
27
|
|
|
28
28
|
sub ProcessCanonVRD($$;$);
|
|
29
29
|
sub WriteCanonVRD($$;$);
|
|
@@ -1758,7 +1758,7 @@ sub ProcessDR4($$;$)
|
|
|
1758
1758
|
} else {
|
|
1759
1759
|
# load DR4 file into memory
|
|
1760
1760
|
my $buff;
|
|
1761
|
-
$raf->Read($buff, 8) == 8 and $buff
|
|
1761
|
+
$raf->Read($buff, 8) == 8 and $buff =~ /^IIII[\x04|\x05]\0\x04\0/ or return 0;
|
|
1762
1762
|
$et->SetFileType();
|
|
1763
1763
|
$raf->Seek(0, 2) or return $err = 1;
|
|
1764
1764
|
$dirLen = $raf->Tell();
|
|
@@ -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.93';
|
|
35
35
|
|
|
36
36
|
sub ProcessFujiDir($$$);
|
|
37
37
|
sub ProcessFaceRec($$$);
|
|
@@ -550,8 +550,9 @@ my %faceCategories = (
|
|
|
550
550
|
3 => 'Electronic Front Curtain', #10
|
|
551
551
|
},
|
|
552
552
|
},
|
|
553
|
-
0x1051 => { Name => '
|
|
554
|
-
0x1052 => { Name => '
|
|
553
|
+
0x1051 => { Name => 'Cropped', Writable => 'int8u', PrintConv => { 0 => 'No', 1 => 'Yes' } }, #forum15784
|
|
554
|
+
0x1052 => { Name => 'CropTopLeft', Writable => 'int32u' }, #forum15784
|
|
555
|
+
0x1053 => { Name => 'CropSize', Writable => 'int32u' }, #forum15784
|
|
555
556
|
# 0x1100 - This may not work well for newer cameras (ref forum12682)
|
|
556
557
|
0x1100 => [{
|
|
557
558
|
Name => 'AutoBracketing',
|
|
@@ -1033,14 +1034,19 @@ my %faceCategories = (
|
|
|
1033
1034
|
},
|
|
1034
1035
|
0.5 => {
|
|
1035
1036
|
Name => 'AFAreaZoneSize',
|
|
1036
|
-
Mask =>
|
|
1037
|
+
Mask => 0xff0000,
|
|
1037
1038
|
PrintConv => {
|
|
1038
1039
|
0 => 'n/a',
|
|
1039
1040
|
OTHER => sub {
|
|
1040
1041
|
my ($val, $inv) = @_;
|
|
1041
|
-
|
|
1042
|
-
$
|
|
1043
|
-
|
|
1042
|
+
my ($w, $h);
|
|
1043
|
+
if ($inv) {
|
|
1044
|
+
my ($w, $h) = $val =~ /(\d+)/g;
|
|
1045
|
+
return 0 unless $w and $h;
|
|
1046
|
+
return((($h << 5) & 0xf0) | ($w & 0x0f));
|
|
1047
|
+
}
|
|
1048
|
+
($w, $h) = ($val & 0x0f, $val >> 5);
|
|
1049
|
+
return "$w x $h";
|
|
1044
1050
|
},
|
|
1045
1051
|
},
|
|
1046
1052
|
},
|