exiftool_vendored 12.60.0 → 12.62.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 +35 -0
- data/bin/MANIFEST +7 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +45 -44
- data/bin/exiftool +100 -73
- data/bin/lib/Image/ExifTool/BMP.pm +0 -1
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +4 -4
- data/bin/lib/Image/ExifTool/FlashPix.pm +2 -1
- data/bin/lib/Image/ExifTool/Jpeg2000.pm +31 -6
- data/bin/lib/Image/ExifTool/MinoltaRaw.pm +2 -2
- data/bin/lib/Image/ExifTool/Nikon.pm +3 -3
- data/bin/lib/Image/ExifTool/PDF.pm +17 -8
- data/bin/lib/Image/ExifTool/QuickTime.pm +10 -7
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +51 -21
- data/bin/lib/Image/ExifTool/Sony.pm +16 -10
- data/bin/lib/Image/ExifTool/TagLookup.pm +9 -0
- data/bin/lib/Image/ExifTool/TagNames.pod +34 -5
- data/bin/lib/Image/ExifTool/WPG.pm +296 -0
- data/bin/lib/Image/ExifTool/WritePDF.pl +7 -8
- data/bin/lib/Image/ExifTool/Writer.pl +12 -4
- data/bin/lib/Image/ExifTool/XMP.pm +17 -5
- data/bin/lib/Image/ExifTool/ZIP.pm +159 -41
- data/bin/lib/Image/ExifTool.pm +118 -50
- data/bin/lib/Image/ExifTool.pod +51 -42
- data/bin/perl-Image-ExifTool.spec +44 -43
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b9425d3689f85ae893c11f1e1ebb63d8392eefe696b6ff685a35536da9b2b79c
|
4
|
+
data.tar.gz: a343f14b8c717420458456579562c12d399c0687865a6e54ea5df8945b096e66
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 559fb2be9a0a2c441ff8e12fd13dd077825c71655a9e99407f602e2ecaae8f997cb9475b3bb5a79dddec1897a9f22ef3c9d9506b8df885da5ee4dfc9baad1a7d
|
7
|
+
data.tar.gz: bcd3a86f5375904081c86ef8c4904bf6cf5283d4f67519df0d05711b456ab63721dd0412fe6c46d7c2774919e0f4b13a00e8eb745253937c252a86fac423182e
|
data/bin/Changes
CHANGED
@@ -7,6 +7,41 @@ 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
|
+
May 3, 2023 - Version 12.62
|
11
|
+
|
12
|
+
- Added basic read support for WPG images
|
13
|
+
- Added ImageDataMD5 support for HEIC images
|
14
|
+
- Added support for RAR version 5.0 compressed files (thanks Amir Gooran)
|
15
|
+
- Added a few new XMP-aux tags (thanks John Ellis)
|
16
|
+
- Made Composite tags available for use in -fileNUM argument
|
17
|
+
- Better handling of FlashPix VT_EMPTY value
|
18
|
+
- Fixed "Can't write" error when specifying a .webp file for the -o option
|
19
|
+
- API Changes:
|
20
|
+
- Added NoWarning option
|
21
|
+
|
22
|
+
Apr. 24, 2023 - Version 12.61
|
23
|
+
|
24
|
+
- Added ImageDataMD5 support for J2C and JXL images
|
25
|
+
- Added support for PDF 2.0 (specification is finally freely available)
|
26
|
+
- Added ability to extract timed Accelerometer data from Azdome GS63H MP4
|
27
|
+
videos which don't contain GPS
|
28
|
+
- Added some new Sony lenses (thanks Jos Roost)
|
29
|
+
- Decode some new tags for the Sony ZV-E1 (thanks Jos Roost)
|
30
|
+
- Decode more tags for the Nikon Z30 (thanks Xavier)
|
31
|
+
- Enhanced -fileNUM option to allow tags from the main file to be used in the
|
32
|
+
file name string
|
33
|
+
- Validate sample offset and size when calculating ImageDataMD5 for MP4 videos
|
34
|
+
(note: may change ImageDataMD5 value for videos where audio data runs past
|
35
|
+
end of media data)
|
36
|
+
- Return error when attempting to write a fragmented JXL file
|
37
|
+
- Improved robustness for determining image size for corrupted JPEG
|
38
|
+
- Patched to allow Insta360 GPS records of unexpected length and tweaked
|
39
|
+
verification algorithm to determine validity of these records
|
40
|
+
- Fixed bug introduced in 12.57 where -progress:%f gave runtime warnings
|
41
|
+
- Fixed "--" option to ignore subsequent -common_args option
|
42
|
+
- Fixed incorrect ImageDataMD5 for Sony A100 ARW images
|
43
|
+
- Fixed problem reading new XMP-et:OriginalImageMD5 tag
|
44
|
+
|
10
45
|
Apr. 5, 2023 - Version 12.60 (production release)
|
11
46
|
|
12
47
|
- Added a new Sony FileFormat value
|
data/bin/MANIFEST
CHANGED
@@ -176,6 +176,7 @@ html/TagNames/Torrent.html
|
|
176
176
|
html/TagNames/Unknown.html
|
177
177
|
html/TagNames/VCard.html
|
178
178
|
html/TagNames/Vorbis.html
|
179
|
+
html/TagNames/WPG.html
|
179
180
|
html/TagNames/WTV.html
|
180
181
|
html/TagNames/XMP.html
|
181
182
|
html/TagNames/ZIP.html
|
@@ -416,6 +417,7 @@ lib/Image/ExifTool/Unknown.pm
|
|
416
417
|
lib/Image/ExifTool/VCard.pm
|
417
418
|
lib/Image/ExifTool/Validate.pm
|
418
419
|
lib/Image/ExifTool/Vorbis.pm
|
420
|
+
lib/Image/ExifTool/WPG.pm
|
419
421
|
lib/Image/ExifTool/WTV.pm
|
420
422
|
lib/Image/ExifTool/WriteCanonRaw.pl
|
421
423
|
lib/Image/ExifTool/WriteExif.pl
|
@@ -856,6 +858,8 @@ t/VCard_2.out
|
|
856
858
|
t/VCard_3.out
|
857
859
|
t/Vorbis.t
|
858
860
|
t/Vorbis_2.out
|
861
|
+
t/WPG.t
|
862
|
+
t/WPG_2.out
|
859
863
|
t/WTV.t
|
860
864
|
t/WTV_2.out
|
861
865
|
t/Writer.t
|
@@ -965,6 +969,7 @@ t/ZIP_4.out
|
|
965
969
|
t/ZIP_5.out
|
966
970
|
t/ZIP_6.out
|
967
971
|
t/ZIP_7.out
|
972
|
+
t/ZIP_8.out
|
968
973
|
t/ZISRAW.t
|
969
974
|
t/ZISRAW_2.out
|
970
975
|
t/images/AFCP.jpg
|
@@ -1132,6 +1137,7 @@ t/images/Unknown.jpg
|
|
1132
1137
|
t/images/VCard.ics
|
1133
1138
|
t/images/VCard.vcf
|
1134
1139
|
t/images/Vorbis.ogg
|
1140
|
+
t/images/WPG.wpg
|
1135
1141
|
t/images/WTV.wtv
|
1136
1142
|
t/images/Writer.jpg
|
1137
1143
|
t/images/XMP.inx
|
@@ -1148,6 +1154,7 @@ t/images/XMP7.xmp
|
|
1148
1154
|
t/images/XMP8.xmp
|
1149
1155
|
t/images/XMP9.xmp
|
1150
1156
|
t/images/ZIP.gz
|
1157
|
+
t/images/ZIP.rar
|
1151
1158
|
t/images/ZIP.zip
|
1152
1159
|
t/images/ZISRAW.czi
|
1153
1160
|
t/images/iWork.numbers
|
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
@@ -14,48 +14,49 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
14
14
|
|
15
15
|
File Types
|
16
16
|
------------+-------------+-------------+-------------+------------
|
17
|
-
360 r/w |
|
18
|
-
3FR r |
|
19
|
-
3G2 r/w |
|
20
|
-
3GP r/w |
|
21
|
-
A r |
|
22
|
-
AA r |
|
23
|
-
AAE r |
|
24
|
-
AAX r/w |
|
25
|
-
ACR r |
|
26
|
-
AFM r |
|
27
|
-
AI r/w |
|
28
|
-
AIFF r |
|
29
|
-
APE r |
|
30
|
-
ARQ r/w |
|
31
|
-
ARW r/w |
|
32
|
-
ASF r |
|
33
|
-
AVI r |
|
34
|
-
AVIF r/w |
|
35
|
-
AZW r |
|
36
|
-
BMP r |
|
37
|
-
BPG r |
|
38
|
-
BTF r |
|
39
|
-
CHM r |
|
40
|
-
COS r |
|
41
|
-
CR2 r/w |
|
42
|
-
CR3 r/w |
|
43
|
-
CRM r/w |
|
44
|
-
CRW r/w |
|
45
|
-
CS1 r/w |
|
46
|
-
CSV r |
|
47
|
-
CUR r |
|
48
|
-
CZI r |
|
49
|
-
DCM r |
|
50
|
-
DCP r/w |
|
51
|
-
DCR r |
|
52
|
-
DFONT r |
|
53
|
-
DIVX r |
|
54
|
-
DJVU r |
|
55
|
-
DLL r |
|
56
|
-
DNG r/w |
|
57
|
-
DOC r |
|
58
|
-
DOCX r |
|
17
|
+
360 r/w | DR4 r/w/c | JNG r/w | ODP r | RSRC r
|
18
|
+
3FR r | DSS r | JP2 r/w | ODS r | RTF r
|
19
|
+
3G2 r/w | DV r | JPEG r/w | ODT r | RW2 r/w
|
20
|
+
3GP r/w | DVB r/w | JSON r | OFR r | RWL r/w
|
21
|
+
A r | DVR-MS r | JXL r | OGG r | RWZ r
|
22
|
+
AA r | DYLIB r | K25 r | OGV r | RM r
|
23
|
+
AAE r | EIP r | KDC r | ONP r | SEQ r
|
24
|
+
AAX r/w | EPS r/w | KEY r | OPUS r | SKETCH r
|
25
|
+
ACR r | EPUB r | LA r | ORF r/w | SO r
|
26
|
+
AFM r | ERF r/w | LFP r | ORI r/w | SR2 r/w
|
27
|
+
AI r/w | EXE r | LIF r | OTF r | SRF r
|
28
|
+
AIFF r | EXIF r/w/c | LNK r | PAC r | SRW r/w
|
29
|
+
APE r | EXR r | LRV r/w | PAGES r | SVG r
|
30
|
+
ARQ r/w | EXV r/w/c | M2TS r | PBM r/w | SWF r
|
31
|
+
ARW r/w | F4A/V r/w | M4A/V r/w | PCD r | THM r/w
|
32
|
+
ASF r | FFF r/w | MACOS r | PCX r | TIFF r/w
|
33
|
+
AVI r | FITS r | MAX r | PDB r | TORRENT r
|
34
|
+
AVIF r/w | FLA r | MEF r/w | PDF r/w | TTC r
|
35
|
+
AZW r | FLAC r | MIE r/w/c | PEF r/w | TTF r
|
36
|
+
BMP r | FLIF r/w | MIFF r | PFA r | TXT r
|
37
|
+
BPG r | FLV r | MKA r | PFB r | VCF r
|
38
|
+
BTF r | FPF r | MKS r | PFM r | VNT r
|
39
|
+
CHM r | FPX r | MKV r | PGF r | VRD r/w/c
|
40
|
+
COS r | GIF r/w | MNG r/w | PGM r/w | VSD r
|
41
|
+
CR2 r/w | GPR r/w | MOBI r | PLIST r | WAV r
|
42
|
+
CR3 r/w | GZ r | MODD r | PICT r | WDP r/w
|
43
|
+
CRM r/w | HDP r/w | MOI r | PMP r | WEBP r/w
|
44
|
+
CRW r/w | HDR r | MOS r/w | PNG r/w | WEBM r
|
45
|
+
CS1 r/w | HEIC r/w | MOV r/w | PPM r/w | WMA r
|
46
|
+
CSV r | HEIF r/w | MP3 r | PPT r | WMV r
|
47
|
+
CUR r | HTML r | MP4 r/w | PPTX r | WPG r
|
48
|
+
CZI r | ICC r/w/c | MPC r | PS r/w | WTV r
|
49
|
+
DCM r | ICO r | MPG r | PSB r/w | WV r
|
50
|
+
DCP r/w | ICS r | MPO r/w | PSD r/w | X3F r/w
|
51
|
+
DCR r | IDML r | MQV r/w | PSP r | XCF r
|
52
|
+
DFONT r | IIQ r/w | MRC r | QTIF r/w | XLS r
|
53
|
+
DIVX r | IND r/w | MRW r/w | R3D r | XLSX r
|
54
|
+
DJVU r | INSP r/w | MXF r | RA r | XMP r/w/c
|
55
|
+
DLL r | INSV r | NEF r/w | RAF r/w | ZIP r
|
56
|
+
DNG r/w | INX r | NKSC r/w | RAM r |
|
57
|
+
DOC r | ISO r | NRW r/w | RAR r |
|
58
|
+
DOCX r | ITC r | NUMBERS r | RAW r/w |
|
59
|
+
DPX r | J2C r | O r | RIFF r |
|
59
60
|
|
60
61
|
Meta Information
|
61
62
|
----------------------+----------------------+---------------------
|
@@ -107,8 +108,8 @@ your home directory, then you would type the following commands in a
|
|
107
108
|
terminal window to extract and run ExifTool:
|
108
109
|
|
109
110
|
cd ~/Desktop
|
110
|
-
gzip -dc Image-ExifTool-12.
|
111
|
-
cd Image-ExifTool-12.
|
111
|
+
gzip -dc Image-ExifTool-12.62.tar.gz | tar -xf -
|
112
|
+
cd Image-ExifTool-12.62
|
112
113
|
./exiftool t/images/ExifTool.jpg
|
113
114
|
|
114
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.62';
|
15
15
|
|
16
16
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
17
17
|
BEGIN {
|
@@ -365,13 +365,14 @@ sub Cleanup() {
|
|
365
365
|
|
366
366
|
# isolate arguments common to all commands
|
367
367
|
if (grep /^-common_args$/i, @ARGV) {
|
368
|
-
my (@newArgs, $common);
|
368
|
+
my (@newArgs, $common, $end);
|
369
369
|
foreach (@ARGV) {
|
370
|
-
if (/^-common_args$/i) {
|
370
|
+
if (/^-common_args$/i and not $end) {
|
371
371
|
$common = 1;
|
372
372
|
} elsif ($common) {
|
373
373
|
push @commonArgs, $_;
|
374
374
|
} else {
|
375
|
+
$end = 1 if $_ eq '--';
|
375
376
|
push @newArgs, $_;
|
376
377
|
}
|
377
378
|
}
|
@@ -836,7 +837,7 @@ for (;;) {
|
|
836
837
|
$mt->Options(Charset => $charset);
|
837
838
|
}
|
838
839
|
if ($evalWarning) {
|
839
|
-
|
840
|
+
Warn $evalWarning;
|
840
841
|
} else {
|
841
842
|
$setCharset = $mt->Options('Charset');
|
842
843
|
}
|
@@ -1737,7 +1738,8 @@ if ($textOut) {
|
|
1737
1738
|
if ($outOpt) {
|
1738
1739
|
my $type = GetFileType($outOpt);
|
1739
1740
|
if ($type) {
|
1740
|
-
|
1741
|
+
# (must test original file name because we can write .webp but not other RIFF types)
|
1742
|
+
unless (CanWrite($outOpt)) {
|
1741
1743
|
Warn "Can't write $type files\n";
|
1742
1744
|
$rtnVal = 1;
|
1743
1745
|
next;
|
@@ -1951,23 +1953,31 @@ sub GetImageInfo($$)
|
|
1951
1953
|
my (@foundTags, $info, $file, $ind, $g8);
|
1952
1954
|
|
1953
1955
|
# set window title for this file if necessary
|
1954
|
-
if (defined $windowTitle
|
1955
|
-
|
1956
|
-
|
1957
|
-
|
1958
|
-
|
1959
|
-
|
1960
|
-
|
1961
|
-
|
1962
|
-
|
1963
|
-
|
1964
|
-
|
1965
|
-
|
1966
|
-
|
1967
|
-
|
1968
|
-
|
1969
|
-
|
1970
|
-
|
1956
|
+
if (defined $windowTitle) {
|
1957
|
+
if ($progressCount >= $progressNext) {
|
1958
|
+
my $prog = $progressMax ? "$progressCount/$progressMax" : '0/0';
|
1959
|
+
my $title = $windowTitle;
|
1960
|
+
my ($num, $denom) = split '/', $prog;
|
1961
|
+
my $frac = $num / ($denom || 1);
|
1962
|
+
my $n = $title =~ s/%(\d+)b/%b/ ? $1 : 20; # length of bar
|
1963
|
+
my $bar = int($frac * $n + 0.5);
|
1964
|
+
my %lkup = (
|
1965
|
+
b => ('I' x $bar) . ('.' x ($n - $bar)),
|
1966
|
+
f => $orig,
|
1967
|
+
p => int(100 * $frac + 0.5),
|
1968
|
+
r => $prog,
|
1969
|
+
'%'=> '%',
|
1970
|
+
);
|
1971
|
+
$title =~ s/%([%bfpr])/$lkup{$1}/eg;
|
1972
|
+
SetWindowTitle($title);
|
1973
|
+
if (defined $progressMax) {
|
1974
|
+
undef $progressNext;
|
1975
|
+
} else {
|
1976
|
+
$progressNext += $progressIncr;
|
1977
|
+
}
|
1978
|
+
}
|
1979
|
+
# ($progressMax is not defined for "-progress:%f")
|
1980
|
+
++$progressCount unless defined $progressMax;
|
1971
1981
|
}
|
1972
1982
|
unless (length $orig or $outOpt) {
|
1973
1983
|
Warn qq(Error: Zero-length file name - ""\n);
|
@@ -1993,7 +2003,11 @@ sub GetImageInfo($$)
|
|
1993
2003
|
}
|
1994
2004
|
# set alternate file names
|
1995
2005
|
foreach $g8 (sort keys %altFile) {
|
1996
|
-
my $altName =
|
2006
|
+
my $altName = $orig;
|
2007
|
+
# must double any '$' symbols in the original file name because
|
2008
|
+
# they are used for tag names in a -fileNUM argument
|
2009
|
+
$altName =~ s/\$/\$\$/g;
|
2010
|
+
$altName = FilenameSPrintf($altFile{$g8}, $altName);
|
1997
2011
|
$et->SetAlternateFile($g8, $altName);
|
1998
2012
|
}
|
1999
2013
|
|
@@ -2536,6 +2550,7 @@ TAG: foreach $tag (@foundTags) {
|
|
2536
2550
|
$xtra .= " et:table='${table}'";
|
2537
2551
|
$xtra .= " et:index='${index}'" if defined $index;
|
2538
2552
|
}
|
2553
|
+
# Note: New $xtra attributes must be added to %ignoreEtProp in XMP.pm!
|
2539
2554
|
my $lastVal = $val;
|
2540
2555
|
for ($valNum=0; $valNum<2; ++$valNum) {
|
2541
2556
|
$val = FormatXML($val, $ind, $group);
|
@@ -3700,7 +3715,7 @@ sub ProcessFiles($;$)
|
|
3700
3715
|
if (defined $progressMax) {
|
3701
3716
|
unless (defined $progressNext) {
|
3702
3717
|
$progressNext = $progressCount + $progressIncr;
|
3703
|
-
$progressNext -= $progressNext % $progressIncr;
|
3718
|
+
$progressNext -= $progressNext % $progressIncr; # (show even multiples)
|
3704
3719
|
$progressNext = $progressMax if $progressNext > $progressMax;
|
3705
3720
|
}
|
3706
3721
|
++$progressCount;
|
@@ -4479,7 +4494,7 @@ sub Progress($$)
|
|
4479
4494
|
my ($file, $msg) = @_;
|
4480
4495
|
if (defined $progStr) {
|
4481
4496
|
print $file $msg, $progStr, "\n";
|
4482
|
-
undef $progressNext;
|
4497
|
+
undef $progressNext if defined $progressMax;
|
4483
4498
|
}
|
4484
4499
|
}
|
4485
4500
|
|
@@ -4590,48 +4605,49 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
4590
4605
|
|
4591
4606
|
File Types
|
4592
4607
|
------------+-------------+-------------+-------------+------------
|
4593
|
-
360 r/w |
|
4594
|
-
3FR r |
|
4595
|
-
3G2 r/w |
|
4596
|
-
3GP r/w |
|
4597
|
-
A r |
|
4598
|
-
AA r |
|
4599
|
-
AAE r |
|
4600
|
-
AAX r/w |
|
4601
|
-
ACR r |
|
4602
|
-
AFM r |
|
4603
|
-
AI r/w |
|
4604
|
-
AIFF r |
|
4605
|
-
APE r |
|
4606
|
-
ARQ r/w |
|
4607
|
-
ARW r/w |
|
4608
|
-
ASF r |
|
4609
|
-
AVI r |
|
4610
|
-
AVIF r/w |
|
4611
|
-
AZW r |
|
4612
|
-
BMP r |
|
4613
|
-
BPG r |
|
4614
|
-
BTF r |
|
4615
|
-
CHM r |
|
4616
|
-
COS r |
|
4617
|
-
CR2 r/w |
|
4618
|
-
CR3 r/w |
|
4619
|
-
CRM r/w |
|
4620
|
-
CRW r/w |
|
4621
|
-
CS1 r/w |
|
4622
|
-
CSV r |
|
4623
|
-
CUR r |
|
4624
|
-
CZI r |
|
4625
|
-
DCM r |
|
4626
|
-
DCP r/w |
|
4627
|
-
DCR r |
|
4628
|
-
DFONT r |
|
4629
|
-
DIVX r |
|
4630
|
-
DJVU r |
|
4631
|
-
DLL r |
|
4632
|
-
DNG r/w |
|
4633
|
-
DOC r |
|
4634
|
-
DOCX r |
|
4608
|
+
360 r/w | DR4 r/w/c | JNG r/w | ODP r | RSRC r
|
4609
|
+
3FR r | DSS r | JP2 r/w | ODS r | RTF r
|
4610
|
+
3G2 r/w | DV r | JPEG r/w | ODT r | RW2 r/w
|
4611
|
+
3GP r/w | DVB r/w | JSON r | OFR r | RWL r/w
|
4612
|
+
A r | DVR-MS r | JXL r | OGG r | RWZ r
|
4613
|
+
AA r | DYLIB r | K25 r | OGV r | RM r
|
4614
|
+
AAE r | EIP r | KDC r | ONP r | SEQ r
|
4615
|
+
AAX r/w | EPS r/w | KEY r | OPUS r | SKETCH r
|
4616
|
+
ACR r | EPUB r | LA r | ORF r/w | SO r
|
4617
|
+
AFM r | ERF r/w | LFP r | ORI r/w | SR2 r/w
|
4618
|
+
AI r/w | EXE r | LIF r | OTF r | SRF r
|
4619
|
+
AIFF r | EXIF r/w/c | LNK r | PAC r | SRW r/w
|
4620
|
+
APE r | EXR r | LRV r/w | PAGES r | SVG r
|
4621
|
+
ARQ r/w | EXV r/w/c | M2TS r | PBM r/w | SWF r
|
4622
|
+
ARW r/w | F4A/V r/w | M4A/V r/w | PCD r | THM r/w
|
4623
|
+
ASF r | FFF r/w | MACOS r | PCX r | TIFF r/w
|
4624
|
+
AVI r | FITS r | MAX r | PDB r | TORRENT r
|
4625
|
+
AVIF r/w | FLA r | MEF r/w | PDF r/w | TTC r
|
4626
|
+
AZW r | FLAC r | MIE r/w/c | PEF r/w | TTF r
|
4627
|
+
BMP r | FLIF r/w | MIFF r | PFA r | TXT r
|
4628
|
+
BPG r | FLV r | MKA r | PFB r | VCF r
|
4629
|
+
BTF r | FPF r | MKS r | PFM r | VNT r
|
4630
|
+
CHM r | FPX r | MKV r | PGF r | VRD r/w/c
|
4631
|
+
COS r | GIF r/w | MNG r/w | PGM r/w | VSD r
|
4632
|
+
CR2 r/w | GPR r/w | MOBI r | PLIST r | WAV r
|
4633
|
+
CR3 r/w | GZ r | MODD r | PICT r | WDP r/w
|
4634
|
+
CRM r/w | HDP r/w | MOI r | PMP r | WEBP r/w
|
4635
|
+
CRW r/w | HDR r | MOS r/w | PNG r/w | WEBM r
|
4636
|
+
CS1 r/w | HEIC r/w | MOV r/w | PPM r/w | WMA r
|
4637
|
+
CSV r | HEIF r/w | MP3 r | PPT r | WMV r
|
4638
|
+
CUR r | HTML r | MP4 r/w | PPTX r | WPG r
|
4639
|
+
CZI r | ICC r/w/c | MPC r | PS r/w | WTV r
|
4640
|
+
DCM r | ICO r | MPG r | PSB r/w | WV r
|
4641
|
+
DCP r/w | ICS r | MPO r/w | PSD r/w | X3F r/w
|
4642
|
+
DCR r | IDML r | MQV r/w | PSP r | XCF r
|
4643
|
+
DFONT r | IIQ r/w | MRC r | QTIF r/w | XLS r
|
4644
|
+
DIVX r | IND r/w | MRW r/w | R3D r | XLSX r
|
4645
|
+
DJVU r | INSP r/w | MXF r | RA r | XMP r/w/c
|
4646
|
+
DLL r | INSV r | NEF r/w | RAF r/w | ZIP r
|
4647
|
+
DNG r/w | INX r | NKSC r/w | RAM r |
|
4648
|
+
DOC r | ISO r | NRW r/w | RAR r |
|
4649
|
+
DOCX r | ITC r | NUMBERS r | RAW r/w |
|
4650
|
+
DPX r | J2C r | O r | RIFF r |
|
4635
4651
|
|
4636
4652
|
Meta Information
|
4637
4653
|
----------------------+----------------------+---------------------
|
@@ -4669,7 +4685,7 @@ L<Tag operations|/Tag operations>
|
|
4669
4685
|
-TAG or --TAG Extract or exclude specified tag
|
4670
4686
|
-TAG[+-^]=[VALUE] Write new value for tag
|
4671
4687
|
-TAG[+-]<=DATFILE Write tag value from contents of file
|
4672
|
-
-TAG[+-]<SRCTAG
|
4688
|
+
-[+]TAG[+-]<SRCTAG Copy tag value (see -tagsFromFile)
|
4673
4689
|
|
4674
4690
|
-tagsFromFile SRCFILE Copy tag values from file
|
4675
4691
|
-x TAG (-exclude) Exclude specified tag
|
@@ -5541,7 +5557,7 @@ with this command:
|
|
5541
5557
|
|
5542
5558
|
produces output like this:
|
5543
5559
|
|
5544
|
-
-- Generated by ExifTool 12.
|
5560
|
+
-- Generated by ExifTool 12.62 --
|
5545
5561
|
File: a.jpg - 2003:10:31 15:44:19
|
5546
5562
|
(f/5.6, 1/60s, ISO 100)
|
5547
5563
|
File: b.jpg - 2006:05:23 11:57:38
|
@@ -6544,11 +6560,22 @@ option no longer suppresses the output "{readyNUM}" message.
|
|
6544
6560
|
|
6545
6561
|
=item B<-file>I<NUM> I<ALTFILE>
|
6546
6562
|
|
6547
|
-
Read tags from an alternate source file.
|
6563
|
+
Read tags from an alternate source file. Among other things, this allows
|
6564
|
+
tags from different files to be compared and combined using the B<-if> and
|
6565
|
+
B<-p> options. Tags from alternate files are accessed via the corresponding
|
6548
6566
|
family 8 group name (eg. C<File1:TAG> for the B<-file1> option, C<File2:TAG>
|
6549
|
-
for B<-file2>, etc). I<ALTFILE> may contain filename formatting codes
|
6550
|
-
|
6551
|
-
|
6567
|
+
for B<-file2>, etc). I<ALTFILE> may contain filename formatting codes like
|
6568
|
+
the B<-w> option (%d, %f, etc), and/or tag names with a leading C<$> symbol
|
6569
|
+
to access tags from the source file in the same way as the B<-p> option (so
|
6570
|
+
any other dollar symbol in the file name must be doubled, eg.
|
6571
|
+
C<money$$.jpg>). For example, assuming that the OriginalFileName tag has
|
6572
|
+
been set in the edited file, a command to copy Rights from the original file
|
6573
|
+
could look like this:
|
6574
|
+
|
6575
|
+
exiftool -file1 '$originalfilename' '-rights<file1:rights' edited.jpg
|
6576
|
+
|
6577
|
+
Composite tags may access tags from alternate files using the appropriate
|
6578
|
+
(case-sensitive) family 8 group name.
|
6552
6579
|
|
6553
6580
|
=item B<-list_dir>
|
6554
6581
|
|
@@ -582,10 +582,10 @@ number of available PDF tags. See
|
|
582
582
|
L<http://www.adobe.com/devnet/pdf/pdf_reference.html> for the official PDF
|
583
583
|
specification.
|
584
584
|
|
585
|
-
ExifTool supports reading and writing PDF documents up to version
|
586
|
-
|
587
|
-
|
588
|
-
password-protected PDF files.
|
585
|
+
ExifTool supports reading and writing PDF documents up to version 2.0,
|
586
|
+
including support for RC4, AES-128 and AES-256 encryption. A
|
587
|
+
L<Password|../ExifTool.html#Password> option is provided to allow processing
|
588
|
+
of password-protected PDF files.
|
589
589
|
|
590
590
|
ExifTool may be used to write native PDF and XMP metadata to PDF files. It
|
591
591
|
uses an incremental update technique that has the advantages of being both
|
@@ -21,7 +21,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
21
21
|
use Image::ExifTool::Exif;
|
22
22
|
use Image::ExifTool::ASF; # for GetGUID()
|
23
23
|
|
24
|
-
$VERSION = '1.
|
24
|
+
$VERSION = '1.45';
|
25
25
|
|
26
26
|
sub ProcessFPX($$);
|
27
27
|
sub ProcessFPXR($$$);
|
@@ -1539,6 +1539,7 @@ sub ReadFPXValue($$$$$;$$)
|
|
1539
1539
|
}
|
1540
1540
|
$_[2] = $valPos; # return updated value position
|
1541
1541
|
|
1542
|
+
push @vals, '' if $type eq 0; # (VT_EMPTY)
|
1542
1543
|
if (wantarray) {
|
1543
1544
|
return @vals;
|
1544
1545
|
} elsif (@vals > 1) {
|