exiftool-vendored.exe 12.62.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/LICENSE +254 -254
- package/bin/exiftool_files/Changes +96 -1
- package/bin/exiftool_files/Makefile.PL +7 -1
- package/bin/exiftool_files/README +50 -46
- package/bin/exiftool_files/config_files/guano.config +161 -0
- package/bin/exiftool_files/exiftool.pl +113 -78
- package/bin/exiftool_files/lib/Image/ExifTool/7Z.pm +793 -0
- package/bin/exiftool_files/lib/Image/ExifTool/Apple.pm +19 -8
- package/bin/exiftool_files/lib/Image/ExifTool/BigTIFF.pm +8 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Canon.pm +33 -12
- package/bin/exiftool_files/lib/Image/ExifTool/CanonRaw.pm +4 -4
- package/bin/exiftool_files/lib/Image/ExifTool/CanonVRD.pm +4 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Exif.pm +31 -14
- package/bin/exiftool_files/lib/Image/ExifTool/FlashPix.pm +8 -2
- package/bin/exiftool_files/lib/Image/ExifTool/FujiFilm.pm +6 -3
- package/bin/exiftool_files/lib/Image/ExifTool/GPS.pm +5 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Geotag.pm +5 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Jpeg2000.pm +226 -28
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/fr.pm +1467 -202
- package/bin/exiftool_files/lib/Image/ExifTool/MPF.pm +2 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Matroska.pm +16 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MinoltaRaw.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +948 -31
- package/bin/exiftool_files/lib/Image/ExifTool/NikonCustom.pm +874 -63
- package/bin/exiftool_files/lib/Image/ExifTool/PDF.pm +23 -5
- package/bin/exiftool_files/lib/Image/ExifTool/PLIST.pm +8 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PLUS.pm +19 -4
- package/bin/exiftool_files/lib/Image/ExifTool/PNG.pm +6 -6
- package/bin/exiftool_files/lib/Image/ExifTool/Pentax.pm +3 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PhaseOne.pm +5 -5
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +91 -30
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTimeStream.pl +20 -19
- package/bin/exiftool_files/lib/Image/ExifTool/README +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/RIFF.pm +11 -9
- package/bin/exiftool_files/lib/Image/ExifTool/Samsung.pm +227 -227
- package/bin/exiftool_files/lib/Image/ExifTool/Shortcuts.pm +2 -1
- package/bin/exiftool_files/lib/Image/ExifTool/SigmaRaw.pm +4 -4
- package/bin/exiftool_files/lib/Image/ExifTool/Sony.pm +229 -30
- package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +4758 -4633
- package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +715 -23
- package/bin/exiftool_files/lib/Image/ExifTool/Validate.pm +17 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WriteExif.pl +9 -7
- package/bin/exiftool_files/lib/Image/ExifTool/WriteQuickTime.pl +21 -9
- package/bin/exiftool_files/lib/Image/ExifTool/WriteXMP.pl +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +36 -12
- package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +14 -2
- package/bin/exiftool_files/lib/Image/ExifTool/XMP2.pl +33 -1
- package/bin/exiftool_files/lib/Image/ExifTool/XMPStruct.pl +96 -28
- package/bin/exiftool_files/lib/Image/ExifTool/ZIP.pm +5 -5
- package/bin/exiftool_files/lib/Image/ExifTool.pm +184 -132
- package/bin/exiftool_files/lib/Image/ExifTool.pod +124 -58
- package/package.json +3 -2
|
@@ -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;
|
|
@@ -290,8 +290,11 @@ my @recommends = qw(
|
|
|
290
290
|
POSIX::strptime
|
|
291
291
|
Time::Local
|
|
292
292
|
Unicode::LineBreak
|
|
293
|
+
Compress::Raw::Lzma
|
|
293
294
|
IO::Compress::RawDeflate
|
|
294
295
|
IO::Uncompress::RawInflate
|
|
296
|
+
IO::Compress::Brotli
|
|
297
|
+
IO::Uncompress::Brotli
|
|
295
298
|
Win32::API
|
|
296
299
|
Win32::FindFile
|
|
297
300
|
Win32API::File
|
|
@@ -736,6 +739,13 @@ for (;;) {
|
|
|
736
739
|
print "ExifTool version $version$str$Image::ExifTool::RELEASE\n";
|
|
737
740
|
printf "Perl version %s%s\n", $], (defined ${^UNICODE} ? " (-C${^UNICODE})" : '');
|
|
738
741
|
print "Platform: $^O\n";
|
|
742
|
+
if ($verbose > 8) {
|
|
743
|
+
print "Current Dir: " . Cwd::getcwd() . "\n" if (eval { require Cwd });
|
|
744
|
+
print "Script Name: $0\n";
|
|
745
|
+
print "Exe Name: $^X\n";
|
|
746
|
+
print "Exe Dir: $Image::ExifTool::exeDir\n";
|
|
747
|
+
print "Exe Path: $exePath\n";
|
|
748
|
+
}
|
|
739
749
|
print "Optional libraries:\n";
|
|
740
750
|
foreach (@recommends) {
|
|
741
751
|
next if /^Win32/ and $^O ne 'MSWin32';
|
|
@@ -817,11 +827,17 @@ for (;;) {
|
|
|
817
827
|
/^(-?)(a|duplicates)$/i and $mt->Options(Duplicates => ($1 ? 0 : 1)), next;
|
|
818
828
|
if ($a eq 'api') {
|
|
819
829
|
my $opt = shift;
|
|
820
|
-
defined $opt
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
830
|
+
if (defined $opt and length $opt) {
|
|
831
|
+
my $val = ($opt =~ s/=(.*)//s) ? $1 : 1;
|
|
832
|
+
# empty string means an undefined value unless ^= is used
|
|
833
|
+
$val = undef unless $opt =~ s/\^$// or length $val;
|
|
834
|
+
$mt->Options($opt => $val);
|
|
835
|
+
} else {
|
|
836
|
+
print "Available API Options:\n";
|
|
837
|
+
my $availableOptions = Image::ExifTool::AvailableOptions();
|
|
838
|
+
printf(" %-17s - %s\n", $$_[0], $$_[2]) foreach @$availableOptions;
|
|
839
|
+
$helped = 1;
|
|
840
|
+
}
|
|
825
841
|
next;
|
|
826
842
|
}
|
|
827
843
|
/^arg(s|format)$/i and $argFormat = 1, next;
|
|
@@ -1463,6 +1479,10 @@ if ($csv and $csv eq 'CSV' and not $isWriting) {
|
|
|
1463
1479
|
$binaryOutput = 0;
|
|
1464
1480
|
$setCharset = 'default' unless defined $setCharset;
|
|
1465
1481
|
}
|
|
1482
|
+
if (%printFmt) {
|
|
1483
|
+
Warn "The -csv option has no effect when -p is used\n";
|
|
1484
|
+
undef $csv;
|
|
1485
|
+
}
|
|
1466
1486
|
require Image::ExifTool::XMP if $setCharset;
|
|
1467
1487
|
}
|
|
1468
1488
|
|
|
@@ -2361,7 +2381,7 @@ TAG: foreach $tag (@foundTags) {
|
|
|
2361
2381
|
next unless defined $val;
|
|
2362
2382
|
if ($structOpt and ref $val) {
|
|
2363
2383
|
# serialize structure if necessary
|
|
2364
|
-
$val = Image::ExifTool::XMP::SerializeStruct($val) unless $xml or $json;
|
|
2384
|
+
$val = Image::ExifTool::XMP::SerializeStruct($et, $val) unless $xml or $json;
|
|
2365
2385
|
} elsif (ref $val eq 'ARRAY') {
|
|
2366
2386
|
if (defined $listItem) {
|
|
2367
2387
|
# take only the specified item
|
|
@@ -2510,7 +2530,7 @@ TAG: foreach $tag (@foundTags) {
|
|
|
2510
2530
|
my $tok = "$group:$tagName";
|
|
2511
2531
|
if ($outFormat > 0) {
|
|
2512
2532
|
if ($structOpt and ref $val) {
|
|
2513
|
-
$val = Image::ExifTool::XMP::SerializeStruct($val);
|
|
2533
|
+
$val = Image::ExifTool::XMP::SerializeStruct($et, $val);
|
|
2514
2534
|
}
|
|
2515
2535
|
if ($escapeHTML) {
|
|
2516
2536
|
$val =~ tr/\0-\x08\x0b\x0c\x0e-\x1f/./;
|
|
@@ -2857,7 +2877,7 @@ sub SetImageInfo($$$)
|
|
|
2857
2877
|
}
|
|
2858
2878
|
unless ($isStdout) {
|
|
2859
2879
|
$outfile = NextUnusedFilename($outfile);
|
|
2860
|
-
if ($et->Exists($outfile) and not $doSetFileName) {
|
|
2880
|
+
if ($et->Exists($outfile, 1) and not $doSetFileName) {
|
|
2861
2881
|
Warn "Error: '${outfile}' already exists - $infile\n";
|
|
2862
2882
|
EFile($infile);
|
|
2863
2883
|
++$countBadWr;
|
|
@@ -2988,7 +3008,7 @@ sub SetImageInfo($$$)
|
|
|
2988
3008
|
$outfile = Image::ExifTool::GetNewFileName(defined $outfile ? $outfile : $file, $newDir);
|
|
2989
3009
|
}
|
|
2990
3010
|
$outfile = NextUnusedFilename($outfile, $infile);
|
|
2991
|
-
if ($et->Exists($outfile)) {
|
|
3011
|
+
if ($et->Exists($outfile, 1)) {
|
|
2992
3012
|
if ($infile eq $outfile) {
|
|
2993
3013
|
undef $outfile; # not changing the file name after all
|
|
2994
3014
|
# (allow for case-insensitive filesystems)
|
|
@@ -4068,6 +4088,8 @@ sub SuggestedExtension($$$)
|
|
|
4068
4088
|
$ext = 'dr4';
|
|
4069
4089
|
} elsif ($$valPt =~ /^(.{10}|.{522})(\x11\x01|\x00\x11)/s) {
|
|
4070
4090
|
$ext = 'pict';
|
|
4091
|
+
} elsif ($$valPt =~ /^\xff\x0a|\0\0\0\x0cJXL \x0d\x0a......ftypjxl/s) {
|
|
4092
|
+
$ext = 'jxl';
|
|
4071
4093
|
} else {
|
|
4072
4094
|
$ext = 'dat';
|
|
4073
4095
|
}
|
|
@@ -4214,7 +4236,7 @@ sub NextUnusedFilename($;$)
|
|
|
4214
4236
|
}
|
|
4215
4237
|
$filename .= substr($fmt, $pos); # add rest of file name
|
|
4216
4238
|
# return now with filename unless file exists
|
|
4217
|
-
return $filename unless ($mt->Exists($filename) and not defined $usedFileName{$filename}) or $usedFileName{$filename};
|
|
4239
|
+
return $filename unless ($mt->Exists($filename, 1) and not defined $usedFileName{$filename}) or $usedFileName{$filename};
|
|
4218
4240
|
if (defined $okfile) {
|
|
4219
4241
|
return $filename if $filename eq $okfile;
|
|
4220
4242
|
my ($fn, $ok) = (AbsPath($filename), AbsPath($okfile));
|
|
@@ -4294,7 +4316,7 @@ sub OpenOutputFile($;@)
|
|
|
4294
4316
|
$outfile .= $textOut;
|
|
4295
4317
|
}
|
|
4296
4318
|
my $mode = '>';
|
|
4297
|
-
if ($mt->Exists($outfile)) {
|
|
4319
|
+
if ($mt->Exists($outfile, 1)) {
|
|
4298
4320
|
unless ($textOverwrite) {
|
|
4299
4321
|
Warn "Output file $outfile already exists for $file\n";
|
|
4300
4322
|
return ();
|
|
@@ -4614,49 +4636,49 @@ DESCRIPTION
|
|
|
4614
4636
|
|
|
4615
4637
|
File Types
|
|
4616
4638
|
------------+-------------+-------------+-------------+------------
|
|
4617
|
-
360 r/w |
|
|
4618
|
-
3FR r |
|
|
4619
|
-
3G2 r/w |
|
|
4620
|
-
3GP r/w |
|
|
4621
|
-
|
|
4622
|
-
|
|
4623
|
-
|
|
4624
|
-
|
|
4625
|
-
|
|
4626
|
-
|
|
4627
|
-
|
|
4628
|
-
|
|
4629
|
-
|
|
4630
|
-
|
|
4631
|
-
|
|
4632
|
-
|
|
4633
|
-
|
|
4634
|
-
|
|
4635
|
-
|
|
4636
|
-
|
|
4637
|
-
|
|
4638
|
-
|
|
4639
|
-
|
|
4640
|
-
|
|
4641
|
-
|
|
4642
|
-
|
|
4643
|
-
|
|
4644
|
-
|
|
4645
|
-
|
|
4646
|
-
|
|
4647
|
-
|
|
4648
|
-
|
|
4649
|
-
|
|
4650
|
-
|
|
4651
|
-
|
|
4652
|
-
|
|
4653
|
-
|
|
4654
|
-
|
|
4655
|
-
|
|
4656
|
-
|
|
4657
|
-
|
|
4658
|
-
|
|
4659
|
-
|
|
4639
|
+
360 r/w | DPX r | ITC r | NUMBERS r | RAW r/w
|
|
4640
|
+
3FR r | DR4 r/w/c | J2C r | O r | RIFF r
|
|
4641
|
+
3G2 r/w | DSS r | JNG r/w | ODP r | RSRC r
|
|
4642
|
+
3GP r/w | DV r | JP2 r/w | ODS r | RTF r
|
|
4643
|
+
7Z r | DVB r/w | JPEG r/w | ODT r | RW2 r/w
|
|
4644
|
+
A r | DVR-MS r | JSON r | OFR r | RWL r/w
|
|
4645
|
+
AA r | DYLIB r | JXL r | OGG r | RWZ r
|
|
4646
|
+
AAE r | EIP r | K25 r | OGV r | RM r
|
|
4647
|
+
AAX r/w | EPS r/w | KDC r | ONP r | SEQ r
|
|
4648
|
+
ACR r | EPUB r | KEY r | OPUS r | SKETCH r
|
|
4649
|
+
AFM r | ERF r/w | LA r | ORF r/w | SO r
|
|
4650
|
+
AI r/w | EXE r | LFP r | ORI r/w | SR2 r/w
|
|
4651
|
+
AIFF r | EXIF r/w/c | LIF r | OTF r | SRF r
|
|
4652
|
+
APE r | EXR r | LNK r | PAC r | SRW r/w
|
|
4653
|
+
ARQ r/w | EXV r/w/c | LRV r/w | PAGES r | SVG r
|
|
4654
|
+
ARW r/w | F4A/V r/w | M2TS r | PBM r/w | SWF r
|
|
4655
|
+
ASF r | FFF r/w | M4A/V r/w | PCD r | THM r/w
|
|
4656
|
+
AVI r | FITS r | MACOS r | PCX r | TIFF r/w
|
|
4657
|
+
AVIF r/w | FLA r | MAX r | PDB r | TORRENT r
|
|
4658
|
+
AZW r | FLAC r | MEF r/w | PDF r/w | TTC r
|
|
4659
|
+
BMP r | FLIF r/w | MIE r/w/c | PEF r/w | TTF r
|
|
4660
|
+
BPG r | FLV r | MIFF r | PFA r | TXT r
|
|
4661
|
+
BTF r | FPF r | MKA r | PFB r | VCF r
|
|
4662
|
+
CHM r | FPX r | MKS r | PFM r | VNT r
|
|
4663
|
+
COS r | GIF r/w | MKV r | PGF r | VRD r/w/c
|
|
4664
|
+
CR2 r/w | GLV r/w | MNG r/w | PGM r/w | VSD r
|
|
4665
|
+
CR3 r/w | GPR r/w | MOBI r | PLIST r | WAV r
|
|
4666
|
+
CRM r/w | GZ r | MODD r | PICT r | WDP r/w
|
|
4667
|
+
CRW r/w | HDP r/w | MOI r | PMP r | WEBP r/w
|
|
4668
|
+
CS1 r/w | HDR r | MOS r/w | PNG r/w | WEBM r
|
|
4669
|
+
CSV r | HEIC r/w | MOV r/w | PPM r/w | WMA r
|
|
4670
|
+
CUR r | HEIF r/w | MP3 r | PPT r | WMV r
|
|
4671
|
+
CZI r | HTML r | MP4 r/w | PPTX r | WPG r
|
|
4672
|
+
DCM r | ICC r/w/c | MPC r | PS r/w | WTV r
|
|
4673
|
+
DCP r/w | ICO r | MPG r | PSB r/w | WV r
|
|
4674
|
+
DCR r | ICS r | MPO r/w | PSD r/w | X3F r/w
|
|
4675
|
+
DFONT r | IDML r | MQV r/w | PSP r | XCF r
|
|
4676
|
+
DIVX r | IIQ r/w | MRC r | QTIF r/w | XLS r
|
|
4677
|
+
DJVU r | IND r/w | MRW r/w | R3D r | XLSX r
|
|
4678
|
+
DLL r | INSP r/w | MXF r | RA r | XMP r/w/c
|
|
4679
|
+
DNG r/w | INSV r | NEF r/w | RAF r/w | ZIP r
|
|
4680
|
+
DOC r | INX r | NKSC r/w | RAM r |
|
|
4681
|
+
DOCX r | ISO r | NRW r/w | RAR r |
|
|
4660
4682
|
|
|
4661
4683
|
Meta Information
|
|
4662
4684
|
----------------------+----------------------+---------------------
|
|
@@ -4867,8 +4889,8 @@ OPTIONS
|
|
|
4867
4889
|
may be used to conditionally delete or replace a tag (see "WRITING
|
|
4868
4890
|
EXAMPLES" for examples). "^=" is used to write an empty string
|
|
4869
4891
|
instead of deleting the tag when no *VALUE* is given, but otherwise
|
|
4870
|
-
it is equivalent to "="
|
|
4871
|
-
|
|
4892
|
+
it is equivalent to "=". (Note that the caret must be quoted on the
|
|
4893
|
+
Windows command line.)
|
|
4872
4894
|
|
|
4873
4895
|
*TAG* may contain one or more leading family 0, 1, 2 or 7 group
|
|
4874
4896
|
names, prefixed by optional family numbers, and separated colons.
|
|
@@ -4939,7 +4961,8 @@ OPTIONS
|
|
|
4939
4961
|
delete JPEG application segments which are not associated with
|
|
4940
4962
|
another deletable group. For example, specifying "-APP14:All=" will
|
|
4941
4963
|
NOT delete the APP14 "Adobe" segment because this is accomplished
|
|
4942
|
-
with "-Adobe:All".
|
|
4964
|
+
with "-Adobe:All". But note that these unnamed APP segments may not
|
|
4965
|
+
be excluded with "--APPxx:all" when deleting all information.
|
|
4943
4966
|
|
|
4944
4967
|
6) When shifting a value, the shift is applied to the original
|
|
4945
4968
|
value of the tag, overriding any other values previously assigned
|
|
@@ -5581,7 +5604,7 @@ OPTIONS
|
|
|
5581
5604
|
|
|
5582
5605
|
produces output like this:
|
|
5583
5606
|
|
|
5584
|
-
-- Generated by ExifTool 12.
|
|
5607
|
+
-- Generated by ExifTool 12.67 --
|
|
5585
5608
|
File: a.jpg - 2003:10:31 15:44:19
|
|
5586
5609
|
(f/5.6, 1/60s, ISO 100)
|
|
5587
5610
|
File: b.jpg - 2006:05:23 11:57:38
|
|
@@ -6110,13 +6133,10 @@ OPTIONS
|
|
|
6110
6133
|
Perl variables, if used, require a double "$", and regular
|
|
6111
6134
|
expressions ending in $/ must use $$/ instead.
|
|
6112
6135
|
|
|
6113
|
-
4) The condition
|
|
6114
|
-
|
|
6115
|
-
|
|
6116
|
-
|
|
6117
|
-
|
|
6118
|
-
exiftool -if EXPR -p '$directory/$filename' -ext nef DIR > nef.txt
|
|
6119
|
-
exiftool -@ nef.txt -srcfile %d%f.xmp ...
|
|
6136
|
+
4) The condition accesses only tags from the file being processed
|
|
6137
|
+
unless the -fileNUM option is used to read an alternate file and
|
|
6138
|
+
the corresponding family 8 group name is specified for the tag. See
|
|
6139
|
+
the -fileNUM option details for more information.
|
|
6120
6140
|
|
|
6121
6141
|
5) The -a option has no effect on the evaluation of the expression,
|
|
6122
6142
|
and the values of duplicate tags are accessible only by specifying
|
|
@@ -6303,11 +6323,12 @@ OPTIONS
|
|
|
6303
6323
|
When reading, causes information to be extracted from .gz and .bz2
|
|
6304
6324
|
compressed images (only one image per archive; requires gzip and
|
|
6305
6325
|
bzip2 to be available). When writing, causes compressed information
|
|
6306
|
-
to be written if supported by the metadata format (eg.
|
|
6307
|
-
textual metadata
|
|
6308
|
-
|
|
6309
|
-
|
|
6310
|
-
|
|
6326
|
+
to be written if supported by the metadata format (eg. PNG supports
|
|
6327
|
+
compressed textual metadata, JXL supports compressed EXIF and XML,
|
|
6328
|
+
and MIE supports any compressed metadata), disables the recommended
|
|
6329
|
+
padding in embedded XMP (saving 2424 bytes when writing XMP in a
|
|
6330
|
+
file), and writes XMP in shorthand format -- the equivalent of
|
|
6331
|
+
setting the API Compress=1 and Compact="NoPadding,Shorthand".
|
|
6311
6332
|
|
|
6312
6333
|
Other options
|
|
6313
6334
|
-@ *ARGFILE*
|
|
@@ -6507,12 +6528,14 @@ OPTIONS
|
|
|
6507
6528
|
improve performance in multi-pass processing by reducing the overhead
|
|
6508
6529
|
required to load exiftool for each invocation.
|
|
6509
6530
|
|
|
6510
|
-
-api *OPT[[^]=[VAL]]*
|
|
6531
|
+
-api [*OPT[[^]=[VAL]]*]
|
|
6511
6532
|
Set ExifTool API option. *OPT* is an API option name. The option
|
|
6512
6533
|
value is set to 1 if *=VAL* is omitted. If *VAL* is omitted, the
|
|
6513
6534
|
option value is set to undef if "=" is used, or an empty string
|
|
6514
|
-
with "^=".
|
|
6515
|
-
|
|
6535
|
+
with "^=". If *OPT* is not specified a list of available options is
|
|
6536
|
+
returned. The option name is not case senstive, but the option
|
|
6537
|
+
values are. See Image::ExifTool Options for option details. This
|
|
6538
|
+
overrides API options set via the config file.
|
|
6516
6539
|
|
|
6517
6540
|
-common_args
|
|
6518
6541
|
Specifies that all arguments following this option are common to
|
|
@@ -6763,6 +6786,15 @@ OPTIONS
|
|
|
6763
6786
|
|
|
6764
6787
|
Note that function names are case sensitive.
|
|
6765
6788
|
|
|
6789
|
+
ExifTool 12.64 adds an API NoDups option which makes the NoDups helper
|
|
6790
|
+
function largely redundant, with all the functionality except the
|
|
6791
|
+
ability to avoid rewriting the file if there are no duplicates, but with
|
|
6792
|
+
the advantage the duplicates may be removed when accumulating list items
|
|
6793
|
+
from multiple sources. An equivalent to the above commands using this
|
|
6794
|
+
feature would be:
|
|
6795
|
+
|
|
6796
|
+
exiftool -tagsfromfile @ -keywords -api nodups a.jpg
|
|
6797
|
+
|
|
6766
6798
|
WINDOWS UNICODE FILE NAMES
|
|
6767
6799
|
In Windows, command-line arguments are specified using the current code
|
|
6768
6800
|
page and are recoded automatically to the system code page. This
|
|
@@ -7210,10 +7242,13 @@ RENAMING EXAMPLES
|
|
|
7210
7242
|
"20060507_118-1861.jpg".
|
|
7211
7243
|
|
|
7212
7244
|
GEOTAGGING EXAMPLES
|
|
7213
|
-
ExifTool implements geotagging via 3 special tags:
|
|
7214
|
-
convenience is also implemented as an exiftool
|
|
7215
|
-
Geotime. The examples below highlight some
|
|
7216
|
-
<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.)
|
|
7217
7252
|
|
|
7218
7253
|
exiftool -geotag track.log a.jpg
|
|
7219
7254
|
Geotag an image ("a.jpg") from position information in a GPS track
|