exiftool_vendored 12.80.0 → 12.81.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 +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
|
},
|