exiftool_vendored 12.62.0 → 12.64.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 +50 -1
- data/bin/MANIFEST +4 -0
- data/bin/META.json +4 -1
- data/bin/META.yml +4 -1
- data/bin/Makefile.PL +7 -1
- data/bin/README +50 -46
- data/bin/config_files/guano.config +161 -0
- data/bin/exiftool +88 -62
- data/bin/lib/Image/ExifTool/7Z.pm +793 -0
- data/bin/lib/Image/ExifTool/Apple.pm +6 -3
- data/bin/lib/Image/ExifTool/Canon.pm +1 -0
- data/bin/lib/Image/ExifTool/CanonRaw.pm +4 -4
- data/bin/lib/Image/ExifTool/CanonVRD.pm +4 -1
- data/bin/lib/Image/ExifTool/Exif.pm +31 -14
- data/bin/lib/Image/ExifTool/FujiFilm.pm +3 -3
- data/bin/lib/Image/ExifTool/GPS.pm +5 -2
- data/bin/lib/Image/ExifTool/Geotag.pm +4 -1
- data/bin/lib/Image/ExifTool/Jpeg2000.pm +226 -28
- data/bin/lib/Image/ExifTool/Lang/fr.pm +1467 -202
- data/bin/lib/Image/ExifTool/MPF.pm +2 -1
- data/bin/lib/Image/ExifTool/Matroska.pm +16 -1
- data/bin/lib/Image/ExifTool/MinoltaRaw.pm +2 -2
- data/bin/lib/Image/ExifTool/Nikon.pm +419 -5
- data/bin/lib/Image/ExifTool/NikonCustom.pm +13 -3
- data/bin/lib/Image/ExifTool/PDF.pm +9 -1
- data/bin/lib/Image/ExifTool/PLIST.pm +8 -1
- data/bin/lib/Image/ExifTool/PNG.pm +6 -6
- data/bin/lib/Image/ExifTool/PhaseOne.pm +5 -5
- data/bin/lib/Image/ExifTool/QuickTime.pm +74 -21
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +20 -19
- data/bin/lib/Image/ExifTool/README +2 -2
- data/bin/lib/Image/ExifTool/RIFF.pm +11 -9
- data/bin/lib/Image/ExifTool/Shortcuts.pm +2 -1
- data/bin/lib/Image/ExifTool/SigmaRaw.pm +4 -4
- data/bin/lib/Image/ExifTool/Sony.pm +103 -8
- data/bin/lib/Image/ExifTool/TagLookup.pm +4738 -4630
- data/bin/lib/Image/ExifTool/TagNames.pod +249 -5
- data/bin/lib/Image/ExifTool/Validate.pm +17 -1
- data/bin/lib/Image/ExifTool/WriteExif.pl +9 -7
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +21 -9
- data/bin/lib/Image/ExifTool/WriteXMP.pl +2 -2
- data/bin/lib/Image/ExifTool/Writer.pl +28 -10
- data/bin/lib/Image/ExifTool/XMP.pm +14 -2
- data/bin/lib/Image/ExifTool/XMP2.pl +32 -0
- data/bin/lib/Image/ExifTool/XMPStruct.pl +96 -28
- data/bin/lib/Image/ExifTool/ZIP.pm +5 -5
- data/bin/lib/Image/ExifTool.pm +67 -39
- data/bin/lib/Image/ExifTool.pod +83 -52
- data/bin/perl-Image-ExifTool.spec +44 -44
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +4 -2
data/bin/lib/Image/ExifTool.pm
CHANGED
@@ -29,7 +29,7 @@ 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.64';
|
33
33
|
$RELEASE = '';
|
34
34
|
@ISA = qw(Exporter);
|
35
35
|
%EXPORT_TAGS = (
|
@@ -114,7 +114,7 @@ sub WriteTIFF($$$);
|
|
114
114
|
sub PackUTF8(@);
|
115
115
|
sub UnpackUTF8($);
|
116
116
|
sub SetPreferredByteOrder($;$);
|
117
|
-
sub
|
117
|
+
sub ImageDataHash($$$;$$);
|
118
118
|
sub CopyBlock($$$);
|
119
119
|
sub CopyFileAttrs($$$);
|
120
120
|
sub TimeNow(;$$);
|
@@ -194,7 +194,7 @@ $defaultLang = 'en'; # default language
|
|
194
194
|
PSD XMP BMP WPG BPG PPM RIFF AIFF ASF MOV MPEG Real SWF PSP FLV
|
195
195
|
OGG FLAC APE MPC MKV MXF DV PMP IND PGF ICC ITC FLIR FLIF FPF
|
196
196
|
LFP HTML VRD RTF FITS XCF DSS QTIF FPX PICT ZIP GZIP PLIST RAR
|
197
|
-
BZ2 CZI TAR
|
197
|
+
7Z BZ2 CZI TAR EXE EXR HDR CHM LNK WMF AVC DEX DPX RAW Font RSRC
|
198
198
|
M2TS MacOS PHP PCX DCX DWF DWG DXF WTV Torrent VCard LRI R3D AA
|
199
199
|
PDB PFM2 MRC LIF JXL MOI ISO ALIAS JSON MP3 DICOM PCD ICO TXT);
|
200
200
|
|
@@ -228,6 +228,7 @@ my %createTypes = map { $_ => 1 } qw(XMP ICC MIE VRD DR4 EXIF EXV);
|
|
228
228
|
'3GP' => ['MOV', '3rd Gen. Partnership Project audio/video'],
|
229
229
|
'3GP2'=> '3G2',
|
230
230
|
'3GPP'=> '3GP',
|
231
|
+
'7Z' => ['7Z', '7z archive'],
|
231
232
|
A => ['EXE', 'Static library'],
|
232
233
|
AA => ['AA', 'Audible Audiobook'],
|
233
234
|
AAE => ['PLIST','Apple edit information'],
|
@@ -329,6 +330,7 @@ my %createTypes = map { $_ => 1 } qw(XMP ICC MIE VRD DR4 EXIF EXV);
|
|
329
330
|
FPF => ['FPF', 'FLIR Public image Format'],
|
330
331
|
FPX => ['FPX', 'FlashPix'],
|
331
332
|
GIF => ['GIF', 'Compuserve Graphics Interchange Format'],
|
333
|
+
GLV => ['MOV', 'Garmin Low-resolution Video'],
|
332
334
|
GPR => ['TIFF', 'General Purpose RAW'], # https://gopro.github.io/gpr/
|
333
335
|
GZ => 'GZIP',
|
334
336
|
GZIP => ['GZIP', 'GNU ZIP compressed archive'],
|
@@ -590,6 +592,7 @@ my %fileDescription = (
|
|
590
592
|
# types may be specified by some modules, eg. QuickTime.pm and RIFF.pm)
|
591
593
|
%mimeType = (
|
592
594
|
'3FR' => 'image/x-hasselblad-3fr',
|
595
|
+
'7Z' => 'application/x-7z-compressed',
|
593
596
|
AA => 'audio/audible',
|
594
597
|
AAE => 'application/vnd.apple.photos',
|
595
598
|
AI => 'application/vnd.adobe.illustrator',
|
@@ -1827,15 +1830,17 @@ my %systemTagsNotes = (
|
|
1827
1830
|
if specifically requested
|
1828
1831
|
},
|
1829
1832
|
},
|
1830
|
-
|
1833
|
+
ImageDataHash => {
|
1831
1834
|
Notes => q{
|
1832
|
-
|
1835
|
+
Hash of image data. Generated only if specifically requested for JPEG, TIFF,
|
1833
1836
|
PNG, CRW, CR3, MRW, RAF, X3F, IIQ, JP2, JXL, HEIC and AVIF images, MOV/MP4
|
1834
|
-
videos, and some RIFF-based files such as AVI, WAV and WEBP. The
|
1835
|
-
|
1836
|
-
|
1837
|
-
|
1838
|
-
|
1837
|
+
videos, and some RIFF-based files such as AVI, WAV and WEBP. The hash
|
1838
|
+
algorithm is set by the API L<ImageHashType|../ExifTool.html#ImageHashType> option, and is 'MD5' by default.
|
1839
|
+
The hash includes the main image data, plus JpgFromRaw/OtherImage for some
|
1840
|
+
formats, but does not include ThumbnailImage or PreviewImage. Includes
|
1841
|
+
video and audio data for MOV/MP4. The L<XMP-et:OriginalImageHash and
|
1842
|
+
XMP-et:OriginalImageHashType tags|XMP.html#ExifTool> provide a way to store
|
1843
|
+
the this hash value and the hash type in the file.
|
1839
1844
|
},
|
1840
1845
|
},
|
1841
1846
|
);
|
@@ -2314,6 +2319,18 @@ sub Options($$;@)
|
|
2314
2319
|
$newVal = defined $newVal ? "$oldVal|$newVal" : $oldVal;
|
2315
2320
|
}
|
2316
2321
|
$$options{$param} = $newVal;
|
2322
|
+
} elsif ($param eq 'ImageHashType') {
|
2323
|
+
if (defined $newVal and $newVal =~ /^(MD5|SHA256|SHA512)$/i) {
|
2324
|
+
$$options{$param} = uc($newVal);
|
2325
|
+
} else {
|
2326
|
+
warn("Invalid $param setting '${newVal}'\n"), return $oldVal;
|
2327
|
+
}
|
2328
|
+
} elsif ($param eq 'StructFormat') {
|
2329
|
+
if (defined $newVal) {
|
2330
|
+
$newVal =~ /^(JSON|JSONQ)$/i or warn("Invalid $param setting '${newVal}'\n"), return $oldVal;
|
2331
|
+
$newVal = uc($newVal);
|
2332
|
+
}
|
2333
|
+
$$options{$param} = $newVal;
|
2317
2334
|
} else {
|
2318
2335
|
if ($param eq 'Escape') {
|
2319
2336
|
# set ESCAPE_PROC
|
@@ -2396,6 +2413,7 @@ sub ClearOptions($)
|
|
2396
2413
|
HtmlDumpBase => undef, # base address for HTML dump
|
2397
2414
|
IgnoreMinorErrors => undef, # ignore minor errors when reading/writing
|
2398
2415
|
IgnoreTags => undef, # list of tags to ignore when extracting
|
2416
|
+
ImageHashType => 'MD5', # image hash algorithm
|
2399
2417
|
Lang => $defaultLang,# localized language for descriptions etc
|
2400
2418
|
LargeFileSupport => undef, # flag indicating support of 64-bit file offsets
|
2401
2419
|
List => undef, # extract lists of PrintConv values into arrays [no longer documented]
|
@@ -2423,6 +2441,7 @@ sub ClearOptions($)
|
|
2423
2441
|
Sort2 => 'File', # secondary sort order for tags in a group (File, Tag, Descr)
|
2424
2442
|
StrictDate => undef, # flag to return undef for invalid date conversions
|
2425
2443
|
Struct => undef, # return structures as hash references
|
2444
|
+
StructFormat=> undef, # format for structure serialization when reading/writing
|
2426
2445
|
SystemTags => undef, # extract additional File System tags
|
2427
2446
|
TextOut => \*STDOUT,# file for Verbose/HtmlDump output
|
2428
2447
|
TimeZone => undef, # local time zone
|
@@ -2518,10 +2537,17 @@ sub ExtractInfo($;@)
|
|
2518
2537
|
}
|
2519
2538
|
}
|
2520
2539
|
|
2521
|
-
# create
|
2522
|
-
if ($$req{
|
2523
|
-
|
2524
|
-
|
2540
|
+
# create Hash object if ImageDataHash is requested
|
2541
|
+
if ($$req{imagedatahash} and not $$self{ImageDataHash}) {
|
2542
|
+
my $imageHashType = $self->Options('ImageHashType');
|
2543
|
+
if ($imageHashType =~ /^SHA(256|512)$/i) {
|
2544
|
+
if (require Digest::SHA) {
|
2545
|
+
$$self{ImageDataHash} = Digest::SHA->new($1);
|
2546
|
+
} else {
|
2547
|
+
$self->WarnOnce("Install Digest::SHA to calculate image data SHA$1");
|
2548
|
+
}
|
2549
|
+
} elsif (require Digest::MD5) {
|
2550
|
+
$$self{ImageDataHash} = Digest::MD5->new;
|
2525
2551
|
} else {
|
2526
2552
|
$self->WarnOnce('Install Digest::MD5 to calculate image data MD5');
|
2527
2553
|
}
|
@@ -2915,10 +2941,13 @@ sub ExtractInfo($;@)
|
|
2915
2941
|
# restore necessary members when exiting re-entrant code
|
2916
2942
|
$$self{$_} = $$reEntry{$_} foreach keys %$reEntry;
|
2917
2943
|
SetByteOrder($saveOrder);
|
2918
|
-
} elsif ($$self{
|
2919
|
-
my $digest = $$self{
|
2944
|
+
} elsif ($$self{ImageDataHash}) {
|
2945
|
+
my $digest = $$self{ImageDataHash}->hexdigest;
|
2920
2946
|
# (don't store empty digest)
|
2921
|
-
$self->FoundTag(
|
2947
|
+
$self->FoundTag(ImageDataHash => $digest) unless
|
2948
|
+
$digest eq 'd41d8cd98f00b204e9800998ecf8427e' or
|
2949
|
+
$digest eq 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' or
|
2950
|
+
$digest eq 'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e';
|
2922
2951
|
}
|
2923
2952
|
|
2924
2953
|
# ($type may be undef without an Error when processing sub-documents)
|
@@ -5582,6 +5611,7 @@ my %formatSize = (
|
|
5582
5611
|
ifd => 4,
|
5583
5612
|
ifd64 => 8,
|
5584
5613
|
ue7 => 1,
|
5614
|
+
utf8 => 1, # (Exif 3.0)
|
5585
5615
|
);
|
5586
5616
|
my %readValueProc = (
|
5587
5617
|
int8s => \&Get8s,
|
@@ -5796,7 +5826,8 @@ sub MakeTagName($)
|
|
5796
5826
|
my $name = shift;
|
5797
5827
|
$name =~ tr/-_a-zA-Z0-9//dc; # remove illegal characters
|
5798
5828
|
$name = ucfirst $name; # capitalize first letter
|
5799
|
-
$name = "Tag$name" if length($name) < 2
|
5829
|
+
$name = "Tag$name" if length($name) < 2 or $name =~ /^[-0-9]/;
|
5830
|
+
# must at least 2 characters long and not start with - or 0-9-
|
5800
5831
|
return $name;
|
5801
5832
|
}
|
5802
5833
|
|
@@ -6487,15 +6518,15 @@ sub ProcessJPEG($$)
|
|
6487
6518
|
my $req = $$self{REQ_TAG_LOOKUP};
|
6488
6519
|
my $htmlDump = $$self{HTML_DUMP};
|
6489
6520
|
my %dumpParms = ( Out => $out );
|
6490
|
-
my ($ch, $s, $length, $
|
6521
|
+
my ($ch, $s, $length, $hash, $hashsize);
|
6491
6522
|
my ($success, $wantTrailer, $trailInfo, $foundSOS, $gotSize, %jumbfChunk);
|
6492
6523
|
my (@iccChunk, $iccChunkCount, $iccChunksTotal, @flirChunk, $flirCount, $flirTotal);
|
6493
6524
|
my ($preview, $scalado, @dqt, $subSampling, $dumpEnd, %extendedXMP);
|
6494
6525
|
|
6495
|
-
# get pointer to
|
6526
|
+
# get pointer to hash object if it exists and we are the top-level JPEG or JP2
|
6496
6527
|
if ($$self{FILE_TYPE} =~ /^(JPEG|JP2)$/ and not $$self{DOC_NUM}) {
|
6497
|
-
$
|
6498
|
-
$
|
6528
|
+
$hash = $$self{ImageDataHash};
|
6529
|
+
$hashsize = 0;
|
6499
6530
|
}
|
6500
6531
|
|
6501
6532
|
# check to be sure this is a valid JPG (or J2C, or EXV) file
|
@@ -6544,7 +6575,7 @@ sub ProcessJPEG($$)
|
|
6544
6575
|
#
|
6545
6576
|
# read ahead to the next segment unless we have reached EOI, SOS or SOD
|
6546
6577
|
#
|
6547
|
-
unless ($marker and ($marker==0xd9 or ($marker==0xda and not $wantTrailer and not $
|
6578
|
+
unless ($marker and ($marker==0xd9 or ($marker==0xda and not $wantTrailer and not $hash) or
|
6548
6579
|
$marker==0x93))
|
6549
6580
|
{
|
6550
6581
|
# read up to next marker (JPEG markers begin with 0xff)
|
@@ -6576,19 +6607,19 @@ sub ProcessJPEG($$)
|
|
6576
6607
|
$nextSegPos = $raf->Tell();
|
6577
6608
|
$len -= 4; # subtract size of length word
|
6578
6609
|
last unless $raf->Seek($len, 1);
|
6579
|
-
} elsif ($
|
6610
|
+
} elsif ($hash and defined $marker and ($marker == 0x00 or $marker == 0xda or
|
6580
6611
|
($marker >= 0xd0 and $marker <= 0xd7)))
|
6581
6612
|
{
|
6582
|
-
# calculate
|
6583
|
-
$
|
6613
|
+
# calculate hash for image data (includes leading ff d9 but not trailing ff da)
|
6614
|
+
$hash->add("\xff" . chr($marker));
|
6584
6615
|
my $n = $skipped - (length($buff) - 1); # number of extra 0xff's
|
6585
6616
|
if (not $n) {
|
6586
6617
|
$buff = substr($buff, 0, -1); # remove trailing 0xff
|
6587
6618
|
} elsif ($n > 1) {
|
6588
6619
|
$buff .= "\xff" x ($n - 1); # add back extra 0xff's
|
6589
6620
|
}
|
6590
|
-
$
|
6591
|
-
$
|
6621
|
+
$hash->add($buff);
|
6622
|
+
$hashsize += $skipped + 2;
|
6592
6623
|
}
|
6593
6624
|
# read second segment too if this was the first
|
6594
6625
|
next unless defined $marker;
|
@@ -6800,7 +6831,7 @@ sub ProcessJPEG($$)
|
|
6800
6831
|
next if $trailInfo or $wantTrailer or $verbose > 2 or $htmlDump;
|
6801
6832
|
}
|
6802
6833
|
# must scan to EOI if Validate or JpegCompressionFactor used
|
6803
|
-
next if $$options{Validate} or $calcImageLen or $$req{trailer} or $
|
6834
|
+
next if $$options{Validate} or $calcImageLen or $$req{trailer} or $hash;
|
6804
6835
|
# nothing interesting to parse after start of scan (SOS)
|
6805
6836
|
$success = 1;
|
6806
6837
|
last; # all done parsing file
|
@@ -6808,9 +6839,9 @@ sub ProcessJPEG($$)
|
|
6808
6839
|
pop @$path;
|
6809
6840
|
$verbose and print $out "JPEG SOD\n";
|
6810
6841
|
$success = 1;
|
6811
|
-
if ($
|
6842
|
+
if ($hash and $$self{FILE_TYPE} eq 'JP2') {
|
6812
6843
|
my $pos = $raf->Tell();
|
6813
|
-
$self->
|
6844
|
+
$self->ImageDataHash($raf, undef, 'SOD');
|
6814
6845
|
$raf->Seek($pos, 0);
|
6815
6846
|
}
|
6816
6847
|
next if $verbose > 2 or $htmlDump;
|
@@ -6829,7 +6860,7 @@ sub ProcessJPEG($$)
|
|
6829
6860
|
or ($$options{RequestAll} and $$options{RequestAll} > 2)))
|
6830
6861
|
{
|
6831
6862
|
my $num = unpack('C',$$segDataPt) & 0x0f; # get table index
|
6832
|
-
$dqt[$num] = $$segDataPt if $num < 4; # save for
|
6863
|
+
$dqt[$num] = $$segDataPt if $num < 4; # save for hash calculation
|
6833
6864
|
}
|
6834
6865
|
# handle all other markers
|
6835
6866
|
my $dumpType = '';
|
@@ -7177,9 +7208,6 @@ sub ProcessJPEG($$)
|
|
7177
7208
|
$self->HandleTag($tagTablePtr, 'APP3', $$dataPt);
|
7178
7209
|
undef $combinedSegData;
|
7179
7210
|
}
|
7180
|
-
} elsif ($$self{HasIJPEG}) {
|
7181
|
-
$dumpType = 'InfiRay Data',
|
7182
|
-
|
7183
7211
|
} elsif ($$segDataPt =~ /^\xff\xd8\xff\xdb/) {
|
7184
7212
|
$dumpType = 'PreviewImage'; # (Samsung, HP, BenQ)
|
7185
7213
|
$preview = $$segDataPt;
|
@@ -7612,8 +7640,8 @@ sub ProcessJPEG($$)
|
|
7612
7640
|
delete $extendedXMP{$guid};
|
7613
7641
|
}
|
7614
7642
|
}
|
7615
|
-
# print verbose
|
7616
|
-
print $out "$$self{INDENT}(
|
7643
|
+
# print verbose hash message if necessary
|
7644
|
+
print $out "$$self{INDENT}(ImageDataHash: $hashsize bytes of JPEG image data)\n" if $hashsize and $verbose;
|
7617
7645
|
# calculate JPEGDigest if requested
|
7618
7646
|
if (@dqt) {
|
7619
7647
|
require Image::ExifTool::JPEGDigest;
|
@@ -7889,8 +7917,8 @@ sub DoProcessTIFF($$;$)
|
|
7889
7917
|
if ($$self{TIFF_TYPE} eq 'TIFF') {
|
7890
7918
|
$self->FoundTag(PageCount => $$self{PageCount}) if $$self{MultiPage};
|
7891
7919
|
}
|
7892
|
-
if ($$self{
|
7893
|
-
$self->
|
7920
|
+
if ($$self{ImageDataHash} and $$self{A100DataOffset} and $raf->Seek($$self{A100DataOffset},0)) {
|
7921
|
+
$self->ImageDataHash($raf, undef, 'A100');
|
7894
7922
|
}
|
7895
7923
|
return 1;
|
7896
7924
|
}
|
data/bin/lib/Image/ExifTool.pod
CHANGED
@@ -65,49 +65,49 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
65
65
|
|
66
66
|
File Types
|
67
67
|
------------+-------------+-------------+-------------+------------
|
68
|
-
360 r/w |
|
69
|
-
3FR r |
|
70
|
-
3G2 r/w |
|
71
|
-
3GP r/w |
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
68
|
+
360 r/w | DPX r | ITC r | NUMBERS r | RAW r/w
|
69
|
+
3FR r | DR4 r/w/c | J2C r | O r | RIFF r
|
70
|
+
3G2 r/w | DSS r | JNG r/w | ODP r | RSRC r
|
71
|
+
3GP r/w | DV r | JP2 r/w | ODS r | RTF r
|
72
|
+
7Z r | DVB r/w | JPEG r/w | ODT r | RW2 r/w
|
73
|
+
A r | DVR-MS r | JSON r | OFR r | RWL r/w
|
74
|
+
AA r | DYLIB r | JXL r | OGG r | RWZ r
|
75
|
+
AAE r | EIP r | K25 r | OGV r | RM r
|
76
|
+
AAX r/w | EPS r/w | KDC r | ONP r | SEQ r
|
77
|
+
ACR r | EPUB r | KEY r | OPUS r | SKETCH r
|
78
|
+
AFM r | ERF r/w | LA r | ORF r/w | SO r
|
79
|
+
AI r/w | EXE r | LFP r | ORI r/w | SR2 r/w
|
80
|
+
AIFF r | EXIF r/w/c | LIF r | OTF r | SRF r
|
81
|
+
APE r | EXR r | LNK r | PAC r | SRW r/w
|
82
|
+
ARQ r/w | EXV r/w/c | LRV r/w | PAGES r | SVG r
|
83
|
+
ARW r/w | F4A/V r/w | M2TS r | PBM r/w | SWF r
|
84
|
+
ASF r | FFF r/w | M4A/V r/w | PCD r | THM r/w
|
85
|
+
AVI r | FITS r | MACOS r | PCX r | TIFF r/w
|
86
|
+
AVIF r/w | FLA r | MAX r | PDB r | TORRENT r
|
87
|
+
AZW r | FLAC r | MEF r/w | PDF r/w | TTC r
|
88
|
+
BMP r | FLIF r/w | MIE r/w/c | PEF r/w | TTF r
|
89
|
+
BPG r | FLV r | MIFF r | PFA r | TXT r
|
90
|
+
BTF r | FPF r | MKA r | PFB r | VCF r
|
91
|
+
CHM r | FPX r | MKS r | PFM r | VNT r
|
92
|
+
COS r | GIF r/w | MKV r | PGF r | VRD r/w/c
|
93
|
+
CR2 r/w | GLV r/w | MNG r/w | PGM r/w | VSD r
|
94
|
+
CR3 r/w | GPR r/w | MOBI r | PLIST r | WAV r
|
95
|
+
CRM r/w | GZ r | MODD r | PICT r | WDP r/w
|
96
|
+
CRW r/w | HDP r/w | MOI r | PMP r | WEBP r/w
|
97
|
+
CS1 r/w | HDR r | MOS r/w | PNG r/w | WEBM r
|
98
|
+
CSV r | HEIC r/w | MOV r/w | PPM r/w | WMA r
|
99
|
+
CUR r | HEIF r/w | MP3 r | PPT r | WMV r
|
100
|
+
CZI r | HTML r | MP4 r/w | PPTX r | WPG r
|
101
|
+
DCM r | ICC r/w/c | MPC r | PS r/w | WTV r
|
102
|
+
DCP r/w | ICO r | MPG r | PSB r/w | WV r
|
103
|
+
DCR r | ICS r | MPO r/w | PSD r/w | X3F r/w
|
104
|
+
DFONT r | IDML r | MQV r/w | PSP r | XCF r
|
105
|
+
DIVX r | IIQ r/w | MRC r | QTIF r/w | XLS r
|
106
|
+
DJVU r | IND r/w | MRW r/w | R3D r | XLSX r
|
107
|
+
DLL r | INSP r/w | MXF r | RA r | XMP r/w/c
|
108
|
+
DNG r/w | INSV r | NEF r/w | RAF r/w | ZIP r
|
109
|
+
DOC r | INX r | NKSC r/w | RAM r |
|
110
|
+
DOCX r | ISO r | NRW r/w | RAR r |
|
111
111
|
|
112
112
|
Meta Information
|
113
113
|
----------------------+----------------------+---------------------
|
@@ -301,6 +301,10 @@ of tag keys, and with other L</Sort> settings the entries may not be in the
|
|
301
301
|
same order as requested.) If a requested tag doesn't exist, a tag key is
|
302
302
|
still generated, but the tag value is undefined.
|
303
303
|
|
304
|
+
B<Note:> Do not reuse this list in subsequent calls to L</ImageInfo> because
|
305
|
+
it returns tag keys, not names, and the list will grow for each call
|
306
|
+
resulting in increasingly slower performance.
|
307
|
+
|
304
308
|
=item HASH ref
|
305
309
|
|
306
310
|
Reference to a hash containing the options settings valid for this call
|
@@ -569,7 +573,9 @@ Flag to generate Composite tags when extracting information. Default is 1.
|
|
569
573
|
=item Compress
|
570
574
|
|
571
575
|
Flag to write new values in compressed format if possible. Has no effect
|
572
|
-
unless
|
576
|
+
unless the relevant compression library is available. Valid when writing
|
577
|
+
metadata to PNG, JXL or MIE images. Setting this to zero causes JXL
|
578
|
+
metadata to be rewritten as uncompressed when edited. Default is undef.
|
573
579
|
|
574
580
|
=item CoordFormat
|
575
581
|
|
@@ -791,6 +797,11 @@ allowed. A special tag name of "All" may be used to ignore all tags except
|
|
791
797
|
those specified by the L</RequestTags> option. Set to undef to clear the
|
792
798
|
previous IgnoreTags list. Default is undef.
|
793
799
|
|
800
|
+
=item ImageHashType
|
801
|
+
|
802
|
+
Sets type of hash algorithem used for the ImageDataHash tag calculation.
|
803
|
+
Supported options are 'MD5', 'SHA256', and 'SHA512'. Default is 'MD5'.
|
804
|
+
|
794
805
|
=item Lang
|
795
806
|
|
796
807
|
Localized language for exiftool tag descriptions, etc. Available languages
|
@@ -847,6 +858,13 @@ formatting expression returns undef). If not set, a minor error is issued
|
|
847
858
|
for missing values, or the value is set to '' if L</IgnoreMinorErrors> is
|
848
859
|
set. Default is undef.
|
849
860
|
|
861
|
+
=item NoDups
|
862
|
+
|
863
|
+
Flag to remove duplicate items from queued values for List-type tags when
|
864
|
+
writing. This applies only to queued values, and doesn't resolve duplicates
|
865
|
+
with existing values in the file when adding to an existing list. Default
|
866
|
+
is undef.
|
867
|
+
|
850
868
|
=item NoMultiExif
|
851
869
|
|
852
870
|
Raise error when attempting to write multi-segment EXIF in a JPEG image.
|
@@ -993,6 +1011,14 @@ structured tags may always be written. Possible values are:
|
|
993
1011
|
2 - Read/copy both flattened and structured tags, but flag
|
994
1012
|
flattened tags as 'unsafe' for copying
|
995
1013
|
|
1014
|
+
=item StructFormat
|
1015
|
+
|
1016
|
+
Format for serialized structures when reading/writing.
|
1017
|
+
|
1018
|
+
undef - Default ExifTool format
|
1019
|
+
JSON - JSON format
|
1020
|
+
JSONQ - JSON with quoted numerical values
|
1021
|
+
|
996
1022
|
=item SystemTags
|
997
1023
|
|
998
1024
|
Flag to extract the following additional File System tags: FileAttributes,
|
@@ -1665,6 +1691,11 @@ values in list context.
|
|
1665
1691
|
|
1666
1692
|
=over 4
|
1667
1693
|
|
1694
|
+
=item Notes:
|
1695
|
+
|
1696
|
+
The API NoDups option applies when this routine is called, and removes
|
1697
|
+
duplicate items from values returned for List-type tags.
|
1698
|
+
|
1668
1699
|
=item Inputs:
|
1669
1700
|
|
1670
1701
|
0) ExifTool object reference
|
@@ -2394,14 +2425,14 @@ XMP-Device, XMP-GAudio, XMP-GCamera, XMP-GCreations, XMP-GDepth, XMP-GFocus,
|
|
2394
2425
|
XMP-GImage, XMP-GPano, XMP-GSpherical, XMP-LImage, XMP-MP, XMP-MP1,
|
2395
2426
|
XMP-PixelLive, XMP-aas, XMP-acdsee, XMP-album, XMP-apple-fi, XMP-ast,
|
2396
2427
|
XMP-aux, XMP-cc, XMP-cell, XMP-crd, XMP-creatorAtom, XMP-crs, XMP-dc,
|
2397
|
-
XMP-dex, XMP-digiKam, XMP-drone-dji, XMP-dwc, XMP-exif, XMP-exifEX,
|
2398
|
-
XMP-expressionmedia, XMP-extensis, XMP-fpv, XMP-getty, XMP-hdr, XMP-
|
2399
|
-
XMP-iptcCore, XMP-iptcExt, XMP-lr, XMP-mediapro, XMP-microsoft,
|
2400
|
-
XMP-mwg-coll, XMP-mwg-kw, XMP-mwg-rs, XMP-nine, XMP-
|
2401
|
-
XMP-photomech, XMP-photoshop, XMP-plus, XMP-pmi, XMP-prism,
|
2402
|
-
XMP-prm, XMP-pur, XMP-rdf, XMP-sdc, XMP-swf, XMP-tiff, XMP-x,
|
2403
|
-
XMP-xmpBJ, XMP-xmpDM, XMP-xmpMM, XMP-xmpNote, XMP-xmpPLUS,
|
2404
|
-
XMP-xmpTPg, ZIP, iTunes
|
2428
|
+
XMP-dex, XMP-digiKam, XMP-drone-dji, XMP-dwc, XMP-et, XMP-exif, XMP-exifEX,
|
2429
|
+
XMP-expressionmedia, XMP-extensis, XMP-fpv, XMP-getty, XMP-hdr, XMP-hdrgm,
|
2430
|
+
XMP-ics, XMP-iptcCore, XMP-iptcExt, XMP-lr, XMP-mediapro, XMP-microsoft,
|
2431
|
+
XMP-mwg-coll, XMP-mwg-kw, XMP-mwg-rs, XMP-nine, XMP-panorama, XMP-pdf,
|
2432
|
+
XMP-pdfx, XMP-photomech, XMP-photoshop, XMP-plus, XMP-pmi, XMP-prism,
|
2433
|
+
XMP-prl, XMP-prm, XMP-pur, XMP-rdf, XMP-sdc, XMP-swf, XMP-tiff, XMP-x,
|
2434
|
+
XMP-xmp, XMP-xmpBJ, XMP-xmpDM, XMP-xmpMM, XMP-xmpNote, XMP-xmpPLUS,
|
2435
|
+
XMP-xmpRights, XMP-xmpTPg, ZIP, iTunes
|
2405
2436
|
|
2406
2437
|
=item Family 2 (Category):
|
2407
2438
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Summary: perl module for image data extraction
|
2
2
|
Name: perl-Image-ExifTool
|
3
|
-
Version: 12.
|
3
|
+
Version: 12.64
|
4
4
|
Release: 1
|
5
5
|
License: Artistic/GPL
|
6
6
|
Group: Development/Libraries/Perl
|
@@ -22,49 +22,49 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
22
22
|
|
23
23
|
File Types
|
24
24
|
------------+-------------+-------------+-------------+------------
|
25
|
-
360 r/w |
|
26
|
-
3FR r |
|
27
|
-
3G2 r/w |
|
28
|
-
3GP r/w |
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
25
|
+
360 r/w | DPX r | ITC r | NUMBERS r | RAW r/w
|
26
|
+
3FR r | DR4 r/w/c | J2C r | O r | RIFF r
|
27
|
+
3G2 r/w | DSS r | JNG r/w | ODP r | RSRC r
|
28
|
+
3GP r/w | DV r | JP2 r/w | ODS r | RTF r
|
29
|
+
7Z r | DVB r/w | JPEG r/w | ODT r | RW2 r/w
|
30
|
+
A r | DVR-MS r | JSON r | OFR r | RWL r/w
|
31
|
+
AA r | DYLIB r | JXL r | OGG r | RWZ r
|
32
|
+
AAE r | EIP r | K25 r | OGV r | RM r
|
33
|
+
AAX r/w | EPS r/w | KDC r | ONP r | SEQ r
|
34
|
+
ACR r | EPUB r | KEY r | OPUS r | SKETCH r
|
35
|
+
AFM r | ERF r/w | LA r | ORF r/w | SO r
|
36
|
+
AI r/w | EXE r | LFP r | ORI r/w | SR2 r/w
|
37
|
+
AIFF r | EXIF r/w/c | LIF r | OTF r | SRF r
|
38
|
+
APE r | EXR r | LNK r | PAC r | SRW r/w
|
39
|
+
ARQ r/w | EXV r/w/c | LRV r/w | PAGES r | SVG r
|
40
|
+
ARW r/w | F4A/V r/w | M2TS r | PBM r/w | SWF r
|
41
|
+
ASF r | FFF r/w | M4A/V r/w | PCD r | THM r/w
|
42
|
+
AVI r | FITS r | MACOS r | PCX r | TIFF r/w
|
43
|
+
AVIF r/w | FLA r | MAX r | PDB r | TORRENT r
|
44
|
+
AZW r | FLAC r | MEF r/w | PDF r/w | TTC r
|
45
|
+
BMP r | FLIF r/w | MIE r/w/c | PEF r/w | TTF r
|
46
|
+
BPG r | FLV r | MIFF r | PFA r | TXT r
|
47
|
+
BTF r | FPF r | MKA r | PFB r | VCF r
|
48
|
+
CHM r | FPX r | MKS r | PFM r | VNT r
|
49
|
+
COS r | GIF r/w | MKV r | PGF r | VRD r/w/c
|
50
|
+
CR2 r/w | GLV r/w | MNG r/w | PGM r/w | VSD r
|
51
|
+
CR3 r/w | GPR r/w | MOBI r | PLIST r | WAV r
|
52
|
+
CRM r/w | GZ r | MODD r | PICT r | WDP r/w
|
53
|
+
CRW r/w | HDP r/w | MOI r | PMP r | WEBP r/w
|
54
|
+
CS1 r/w | HDR r | MOS r/w | PNG r/w | WEBM r
|
55
|
+
CSV r | HEIC r/w | MOV r/w | PPM r/w | WMA r
|
56
|
+
CUR r | HEIF r/w | MP3 r | PPT r | WMV r
|
57
|
+
CZI r | HTML r | MP4 r/w | PPTX r | WPG r
|
58
|
+
DCM r | ICC r/w/c | MPC r | PS r/w | WTV r
|
59
|
+
DCP r/w | ICO r | MPG r | PSB r/w | WV r
|
60
|
+
DCR r | ICS r | MPO r/w | PSD r/w | X3F r/w
|
61
|
+
DFONT r | IDML r | MQV r/w | PSP r | XCF r
|
62
|
+
DIVX r | IIQ r/w | MRC r | QTIF r/w | XLS r
|
63
|
+
DJVU r | IND r/w | MRW r/w | R3D r | XLSX r
|
64
|
+
DLL r | INSP r/w | MXF r | RA r | XMP r/w/c
|
65
|
+
DNG r/w | INSV r | NEF r/w | RAF r/w | ZIP r
|
66
|
+
DOC r | INX r | NKSC r/w | RAM r |
|
67
|
+
DOCX r | ISO r | NRW r/w | RAR r |
|
68
68
|
|
69
69
|
Meta Information
|
70
70
|
----------------------+----------------------+---------------------
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: exiftool_vendored
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 12.
|
4
|
+
version: 12.64.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew McEachen
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2023-
|
12
|
+
date: 2023-08-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: exiftool
|
@@ -242,6 +242,7 @@ files:
|
|
242
242
|
- bin/config_files/fotoware.config
|
243
243
|
- bin/config_files/frameCount.config
|
244
244
|
- bin/config_files/gps2utm.config
|
245
|
+
- bin/config_files/guano.config
|
245
246
|
- bin/config_files/nksc.config
|
246
247
|
- bin/config_files/photoshop_paths.config
|
247
248
|
- bin/config_files/picasa_faces.config
|
@@ -258,6 +259,7 @@ files:
|
|
258
259
|
- bin/lib/File/RandomAccess.pod
|
259
260
|
- bin/lib/Image/ExifTool.pm
|
260
261
|
- bin/lib/Image/ExifTool.pod
|
262
|
+
- bin/lib/Image/ExifTool/7Z.pm
|
261
263
|
- bin/lib/Image/ExifTool/AES.pm
|
262
264
|
- bin/lib/Image/ExifTool/AFCP.pm
|
263
265
|
- bin/lib/Image/ExifTool/AIFF.pm
|