exiftool-vendored.pl 12.72.0 → 12.76.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/bin/Changes +64 -1
- package/bin/META.json +1 -1
- package/bin/META.yml +1 -1
- package/bin/README +47 -46
- package/bin/exiftool +123 -96
- package/bin/lib/File/RandomAccess.pm +32 -6
- package/bin/lib/File/RandomAccess.pod +6 -6
- package/bin/lib/Image/ExifTool/7Z.pm +3 -3
- package/bin/lib/Image/ExifTool/AAC.pm +8 -6
- package/bin/lib/Image/ExifTool/AES.pm +1 -1
- package/bin/lib/Image/ExifTool/AFCP.pm +3 -3
- package/bin/lib/Image/ExifTool/AIFF.pm +1 -1
- package/bin/lib/Image/ExifTool/APE.pm +1 -1
- package/bin/lib/Image/ExifTool/APP12.pm +1 -1
- package/bin/lib/Image/ExifTool/ASF.pm +1 -1
- package/bin/lib/Image/ExifTool/Apple.pm +1 -1
- package/bin/lib/Image/ExifTool/Audible.pm +1 -1
- package/bin/lib/Image/ExifTool/BMP.pm +1 -1
- package/bin/lib/Image/ExifTool/BPG.pm +1 -1
- package/bin/lib/Image/ExifTool/BZZ.pm +3 -3
- package/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
- package/bin/lib/Image/ExifTool/BuildTagLookup.pm +9 -9
- package/bin/lib/Image/ExifTool/CBOR.pm +1 -1
- package/bin/lib/Image/ExifTool/Canon.pm +7 -6
- package/bin/lib/Image/ExifTool/CanonCustom.pm +1 -1
- package/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
- package/bin/lib/Image/ExifTool/CanonVRD.pm +3 -3
- package/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
- package/bin/lib/Image/ExifTool/Casio.pm +1 -1
- package/bin/lib/Image/ExifTool/Charset.pm +1 -1
- package/bin/lib/Image/ExifTool/DICOM.pm +3 -3
- package/bin/lib/Image/ExifTool/DJI.pm +1 -1
- package/bin/lib/Image/ExifTool/DNG.pm +5 -5
- package/bin/lib/Image/ExifTool/DPX.pm +1 -1
- package/bin/lib/Image/ExifTool/DV.pm +1 -1
- package/bin/lib/Image/ExifTool/DarwinCore.pm +1 -1
- package/bin/lib/Image/ExifTool/DjVu.pm +1 -1
- package/bin/lib/Image/ExifTool/EXE.pm +1 -1
- package/bin/lib/Image/ExifTool/Exif.pm +4 -3
- package/bin/lib/Image/ExifTool/FITS.pm +1 -1
- package/bin/lib/Image/ExifTool/FLAC.pm +1 -1
- package/bin/lib/Image/ExifTool/FLIF.pm +1 -1
- package/bin/lib/Image/ExifTool/FLIR.pm +3 -3
- package/bin/lib/Image/ExifTool/Fixup.pm +4 -4
- package/bin/lib/Image/ExifTool/Flash.pm +1 -1
- package/bin/lib/Image/ExifTool/FlashPix.pm +61 -8
- package/bin/lib/Image/ExifTool/Font.pm +1 -1
- package/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
- package/bin/lib/Image/ExifTool/FujiFilm.pm +9 -4
- package/bin/lib/Image/ExifTool/GE.pm +1 -1
- package/bin/lib/Image/ExifTool/GIF.pm +1 -1
- package/bin/lib/Image/ExifTool/GIMP.pm +1 -1
- package/bin/lib/Image/ExifTool/GPS.pm +1 -1
- package/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
- package/bin/lib/Image/ExifTool/Geotag.pm +4 -4
- package/bin/lib/Image/ExifTool/GoPro.pm +1 -1
- package/bin/lib/Image/ExifTool/H264.pm +1 -1
- package/bin/lib/Image/ExifTool/HP.pm +1 -1
- package/bin/lib/Image/ExifTool/HTML.pm +1 -1
- package/bin/lib/Image/ExifTool/HtmlDump.pm +7 -5
- package/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -1
- package/bin/lib/Image/ExifTool/ICO.pm +1 -1
- package/bin/lib/Image/ExifTool/ID3.pm +3 -3
- package/bin/lib/Image/ExifTool/IPTC.pm +1 -1
- package/bin/lib/Image/ExifTool/ISO.pm +1 -1
- package/bin/lib/Image/ExifTool/ITC.pm +1 -1
- package/bin/lib/Image/ExifTool/Import.pm +6 -6
- package/bin/lib/Image/ExifTool/InDesign.pm +1 -1
- package/bin/lib/Image/ExifTool/InfiRay.pm +1 -1
- package/bin/lib/Image/ExifTool/JPEG.pm +5 -2
- package/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
- package/bin/lib/Image/ExifTool/JSON.pm +3 -3
- package/bin/lib/Image/ExifTool/JVC.pm +3 -3
- package/bin/lib/Image/ExifTool/Jpeg2000.pm +67 -17
- package/bin/lib/Image/ExifTool/Kodak.pm +1 -1
- package/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
- package/bin/lib/Image/ExifTool/LIF.pm +1 -1
- package/bin/lib/Image/ExifTool/LNK.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/es.pm +4 -4
- package/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/fr.pm +4 -5
- package/bin/lib/Image/ExifTool/Lang/it.pm +3 -3
- package/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/sk.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
- package/bin/lib/Image/ExifTool/Leaf.pm +3 -3
- package/bin/lib/Image/ExifTool/Lytro.pm +1 -1
- package/bin/lib/Image/ExifTool/M2TS.pm +1 -1
- package/bin/lib/Image/ExifTool/MIE.pm +5 -5
- package/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
- package/bin/lib/Image/ExifTool/MIFF.pm +1 -1
- package/bin/lib/Image/ExifTool/MISB.pm +1 -1
- package/bin/lib/Image/ExifTool/MNG.pm +1 -1
- package/bin/lib/Image/ExifTool/MOI.pm +1 -1
- package/bin/lib/Image/ExifTool/MPC.pm +1 -1
- package/bin/lib/Image/ExifTool/MPEG.pm +1 -1
- package/bin/lib/Image/ExifTool/MPF.pm +1 -1
- package/bin/lib/Image/ExifTool/MRC.pm +1 -1
- package/bin/lib/Image/ExifTool/MWG.pm +1 -1
- package/bin/lib/Image/ExifTool/MXF.pm +1 -1
- package/bin/lib/Image/ExifTool/MacOS.pm +1 -1
- package/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
- package/bin/lib/Image/ExifTool/Matroska.pm +1 -1
- package/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
- package/bin/lib/Image/ExifTool/Minolta.pm +1 -1
- package/bin/lib/Image/ExifTool/MinoltaRaw.pm +3 -3
- package/bin/lib/Image/ExifTool/Motorola.pm +1 -1
- package/bin/lib/Image/ExifTool/Nikon.pm +11 -8
- package/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
- package/bin/lib/Image/ExifTool/NikonCustom.pm +4 -4
- package/bin/lib/Image/ExifTool/NikonSettings.pm +1 -1
- package/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
- package/bin/lib/Image/ExifTool/OOXML.pm +1 -1
- package/bin/lib/Image/ExifTool/Ogg.pm +3 -3
- package/bin/lib/Image/ExifTool/Olympus.pm +1 -1
- package/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
- package/bin/lib/Image/ExifTool/Opus.pm +1 -1
- package/bin/lib/Image/ExifTool/Other.pm +1 -1
- package/bin/lib/Image/ExifTool/PCX.pm +1 -1
- package/bin/lib/Image/ExifTool/PDF.pm +55 -5
- package/bin/lib/Image/ExifTool/PGF.pm +1 -1
- package/bin/lib/Image/ExifTool/PICT.pm +1 -1
- package/bin/lib/Image/ExifTool/PLIST.pm +4 -4
- package/bin/lib/Image/ExifTool/PLUS.pm +1 -1
- package/bin/lib/Image/ExifTool/PNG.pm +24 -2
- package/bin/lib/Image/ExifTool/PPM.pm +1 -1
- package/bin/lib/Image/ExifTool/PSP.pm +1 -1
- package/bin/lib/Image/ExifTool/Palm.pm +1 -1
- package/bin/lib/Image/ExifTool/Panasonic.pm +27 -2
- package/bin/lib/Image/ExifTool/PanasonicRaw.pm +4 -4
- package/bin/lib/Image/ExifTool/Parrot.pm +1 -1
- package/bin/lib/Image/ExifTool/Pentax.pm +32 -11
- package/bin/lib/Image/ExifTool/PhaseOne.pm +6 -6
- package/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
- package/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
- package/bin/lib/Image/ExifTool/Photoshop.pm +4 -4
- package/bin/lib/Image/ExifTool/PostScript.pm +3 -3
- package/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
- package/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
- package/bin/lib/Image/ExifTool/QuickTime.pm +55 -101
- package/bin/lib/Image/ExifTool/QuickTimeStream.pl +97 -7
- package/bin/lib/Image/ExifTool/RIFF.pm +1 -1
- package/bin/lib/Image/ExifTool/RSRC.pm +3 -3
- package/bin/lib/Image/ExifTool/RTF.pm +1 -1
- package/bin/lib/Image/ExifTool/Radiance.pm +1 -1
- package/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
- package/bin/lib/Image/ExifTool/Real.pm +1 -1
- package/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
- package/bin/lib/Image/ExifTool/Red.pm +1 -1
- package/bin/lib/Image/ExifTool/Ricoh.pm +3 -3
- package/bin/lib/Image/ExifTool/Samsung.pm +5 -5
- package/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
- package/bin/lib/Image/ExifTool/Scalado.pm +1 -1
- package/bin/lib/Image/ExifTool/Shift.pl +2 -3
- package/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
- package/bin/lib/Image/ExifTool/Sigma.pm +1 -1
- package/bin/lib/Image/ExifTool/SigmaRaw.pm +4 -4
- package/bin/lib/Image/ExifTool/Sony.pm +5 -5
- package/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
- package/bin/lib/Image/ExifTool/Stim.pm +1 -1
- package/bin/lib/Image/ExifTool/TagInfoXML.pm +4 -4
- package/bin/lib/Image/ExifTool/TagLookup.pm +3879 -3862
- package/bin/lib/Image/ExifTool/TagNames.pod +11439 -11374
- package/bin/lib/Image/ExifTool/Text.pm +1 -1
- package/bin/lib/Image/ExifTool/Theora.pm +1 -1
- package/bin/lib/Image/ExifTool/Torrent.pm +1 -1
- package/bin/lib/Image/ExifTool/Unknown.pm +1 -1
- package/bin/lib/Image/ExifTool/VCard.pm +1 -1
- package/bin/lib/Image/ExifTool/Validate.pm +1 -1
- package/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
- package/bin/lib/Image/ExifTool/WPG.pm +1 -1
- package/bin/lib/Image/ExifTool/WTV.pm +1 -1
- package/bin/lib/Image/ExifTool/WriteCanonRaw.pl +2 -2
- package/bin/lib/Image/ExifTool/WriteExif.pl +27 -24
- package/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
- package/bin/lib/Image/ExifTool/WritePDF.pl +2 -2
- package/bin/lib/Image/ExifTool/WritePNG.pl +1 -1
- package/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
- package/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
- package/bin/lib/Image/ExifTool/WriteQuickTime.pl +5 -2
- package/bin/lib/Image/ExifTool/WriteRIFF.pl +1 -1
- package/bin/lib/Image/ExifTool/WriteXMP.pl +9 -5
- package/bin/lib/Image/ExifTool/Writer.pl +74 -45
- package/bin/lib/Image/ExifTool/XISF.pm +1 -1
- package/bin/lib/Image/ExifTool/XMP.pm +20 -3
- package/bin/lib/Image/ExifTool/XMP2.pl +10 -1
- package/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
- package/bin/lib/Image/ExifTool/ZIP.pm +7 -7
- package/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
- package/bin/lib/Image/ExifTool/iWork.pm +1 -1
- package/bin/lib/Image/ExifTool.pm +59 -28
- package/bin/lib/Image/ExifTool.pod +81 -68
- package/bin/perl-Image-ExifTool.spec +45 -44
- package/bin/pp_build_exe.args +5 -5
- package/package.json +5 -5
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
# Revisions: Nov. 12/2003 - P. Harvey Created
|
|
9
9
|
# (See html/history.html for revision history)
|
|
10
10
|
#
|
|
11
|
-
# Legal: Copyright (c) 2003-
|
|
11
|
+
# Legal: Copyright (c) 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
12
12
|
# This library is free software; you can redistribute it and/or
|
|
13
13
|
# modify it under the same terms as Perl itself.
|
|
14
14
|
#------------------------------------------------------------------------------
|
|
@@ -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.76';
|
|
33
33
|
$RELEASE = '';
|
|
34
34
|
@ISA = qw(Exporter);
|
|
35
35
|
%EXPORT_TAGS = (
|
|
@@ -77,7 +77,7 @@ sub GetDeleteGroups();
|
|
|
77
77
|
sub AddUserDefinedTags($%);
|
|
78
78
|
sub SetAlternateFile($$$);
|
|
79
79
|
# non-public routines below
|
|
80
|
-
sub InsertTagValues(
|
|
80
|
+
sub InsertTagValues($$;$$$$);
|
|
81
81
|
sub IsWritable($);
|
|
82
82
|
sub IsSameFile($$$);
|
|
83
83
|
sub IsRawType($);
|
|
@@ -195,9 +195,9 @@ $defaultLang = 'en'; # default language
|
|
|
195
195
|
OGG FLAC APE MPC MKV MXF DV PMP IND PGF ICC ITC FLIR FLIF FPF
|
|
196
196
|
LFP HTML VRD RTF FITS XISF XCF DSS QTIF FPX PICT ZIP GZIP PLIST
|
|
197
197
|
RAR 7Z BZ2 CZI TAR EXE EXR HDR CHM LNK WMF AVC DEX DPX RAW Font
|
|
198
|
-
RSRC M2TS MacOS PHP PCX DCX DWF DWG DXF WTV Torrent VCard
|
|
199
|
-
R3D AA PDB PFM2 MRC LIF JXL MOI ISO ALIAS JSON MP3 DICOM PCD
|
|
200
|
-
TXT AAC);
|
|
198
|
+
JUMBF RSRC M2TS MacOS PHP PCX DCX DWF DWG DXF WTV Torrent VCard
|
|
199
|
+
LRI R3D AA PDB PFM2 MRC LIF JXL MOI ISO ALIAS JSON MP3 DICOM PCD
|
|
200
|
+
ICO TXT AAC);
|
|
201
201
|
|
|
202
202
|
# file types that we can write (edit)
|
|
203
203
|
my @writeTypes = qw(JPEG TIFF GIF CRW MRW ORF RAF RAW PNG MIE PSD XMP PPM EPS
|
|
@@ -260,6 +260,7 @@ my %createTypes = map { $_ => 1 } qw(XMP ICC MIE VRD DR4 EXIF EXV);
|
|
|
260
260
|
BPG => ['BPG', 'Better Portable Graphics'],
|
|
261
261
|
BTF => ['BTF', 'Big Tagged Image File Format'], #(unofficial)
|
|
262
262
|
BZ2 => ['BZ2', 'BZIP2 archive'],
|
|
263
|
+
C2PA => ['JUMBF','Coalition for Content Provenance and Authenticity'],
|
|
263
264
|
CHM => ['CHM', 'Microsoft Compiled HTML format'],
|
|
264
265
|
CIFF => ['CRW', 'Camera Image File Format'],
|
|
265
266
|
COS => ['COS', 'Capture One Settings'],
|
|
@@ -374,6 +375,7 @@ my %createTypes = map { $_ => 1 } qw(XMP ICC MIE VRD DR4 EXIF EXV);
|
|
|
374
375
|
JPS => ['JPEG', 'JPEG Stereo image'],
|
|
375
376
|
JPX => ['JP2', 'JPEG 2000 with extensions'],
|
|
376
377
|
JSON => ['JSON', 'JavaScript Object Notation'],
|
|
378
|
+
JUMBF=> ['JUMBF','JPEG Universal Metadata Box Format'],
|
|
377
379
|
JXL => ['JXL', 'JPEG XL'],
|
|
378
380
|
JXR => ['TIFF', 'JPEG XR'],
|
|
379
381
|
K25 => ['TIFF', 'Kodak DC25 RAW'],
|
|
@@ -612,6 +614,7 @@ my %fileDescription = (
|
|
|
612
614
|
BPG => 'image/bpg',
|
|
613
615
|
BTF => 'image/x-tiff-big', #(NC) (ref http://www.asmail.be/msg0055371937.html)
|
|
614
616
|
BZ2 => 'application/bzip2',
|
|
617
|
+
C2PA => 'application/c2pa',
|
|
615
618
|
'Canon 1D RAW' => 'image/x-raw', # (uses .TIF file extension)
|
|
616
619
|
CHM => 'application/x-chm',
|
|
617
620
|
COS => 'application/octet-stream', #PH (NC)
|
|
@@ -686,6 +689,7 @@ my %fileDescription = (
|
|
|
686
689
|
JPS => 'image/x-jps',
|
|
687
690
|
JPX => 'image/jpx',
|
|
688
691
|
JSON => 'application/json',
|
|
692
|
+
JUMBF=> 'application/octet-stream', #PH (invented format)
|
|
689
693
|
JXL => 'image/jxl', #PH (NC)
|
|
690
694
|
JXR => 'image/jxr',
|
|
691
695
|
K25 => 'image/x-kodak-k25',
|
|
@@ -856,6 +860,7 @@ my %moduleName = (
|
|
|
856
860
|
HDR => 'Radiance',
|
|
857
861
|
JP2 => 'Jpeg2000',
|
|
858
862
|
JPEG => '',
|
|
863
|
+
JUMBF=> 'Jpeg2000',
|
|
859
864
|
JXL => 'Jpeg2000',
|
|
860
865
|
LFP => 'Lytro',
|
|
861
866
|
LRI => 0,
|
|
@@ -947,6 +952,7 @@ $testLen = 1024; # number of bytes to read when testing for magic number
|
|
|
947
952
|
JP2 => '(\0\0\0\x0cjP( |\x1a\x1a)\x0d\x0a\x87\x0a|\xff\x4f\xff\x51\0)',
|
|
948
953
|
JPEG => '\xff\xd8\xff',
|
|
949
954
|
JSON => '(\xef\xbb\xbf)?\s*(\[\s*)?\{\s*"[^"]*"\s*:',
|
|
955
|
+
JUMBF=> '.{4}jumb\0.{3}jumd',
|
|
950
956
|
JXL => '\xff\x0a|\0\0\0\x0cJXL \x0d\x0a......ftypjxl ',
|
|
951
957
|
LFP => '\x89LFP\x0d\x0a\x1a\x0a',
|
|
952
958
|
LIF => '\x70\0{3}.{4}\x2a.{4}<\0',
|
|
@@ -1111,6 +1117,7 @@ my @availableOptions = (
|
|
|
1111
1117
|
[ 'ImageHashType', 'MD5', 'image hash algorithm' ],
|
|
1112
1118
|
[ 'Lang', $defaultLang, 'localized language for descriptions etc' ],
|
|
1113
1119
|
[ 'LargeFileSupport', undef, 'flag indicating support of 64-bit file offsets' ],
|
|
1120
|
+
[ 'LimitLongValues', 60, 'length limit for long values' ],
|
|
1114
1121
|
[ 'List', undef, '[deprecated, use ListSplit and ListJoin instead]' ],
|
|
1115
1122
|
[ 'ListItem', undef, 'used to return a specific item from lists' ],
|
|
1116
1123
|
[ 'ListJoin', ', ', 'join lists together with this separator' ],
|
|
@@ -1639,6 +1646,11 @@ my %systemTagsNotes = (
|
|
|
1639
1646
|
Groups => { 0 => 'XML', 1 => 'XML' },
|
|
1640
1647
|
Binary => 1,
|
|
1641
1648
|
},
|
|
1649
|
+
JUMBF => {
|
|
1650
|
+
Notes => 'the C2PA JUMBF data block, extracted only if specifically requested',
|
|
1651
|
+
Groups => { 0 => 'JUMBF', 1 => 'JUMBF' },
|
|
1652
|
+
Binary => 1,
|
|
1653
|
+
},
|
|
1642
1654
|
ICC_Profile => {
|
|
1643
1655
|
Notes => q{
|
|
1644
1656
|
the full ICC_Profile data block. This tag is generated only if specifically
|
|
@@ -2195,7 +2207,7 @@ sub new
|
|
|
2195
2207
|
# use Image::ExifTool 'ImageInfo';
|
|
2196
2208
|
# my $info = ImageInfo($file, 'DateTimeOriginal', 'ImageSize');
|
|
2197
2209
|
# - or -
|
|
2198
|
-
# my $et =
|
|
2210
|
+
# my $et = Image::ExifTool->new;
|
|
2199
2211
|
# my $info = $et->ImageInfo($file, \@tagList, {Sort=>'Group0'} );
|
|
2200
2212
|
sub ImageInfo($;@)
|
|
2201
2213
|
{
|
|
@@ -2205,7 +2217,7 @@ sub ImageInfo($;@)
|
|
|
2205
2217
|
if (ref $_[0] and UNIVERSAL::isa($_[0],'Image::ExifTool')) {
|
|
2206
2218
|
$self = shift;
|
|
2207
2219
|
} else {
|
|
2208
|
-
$self =
|
|
2220
|
+
$self = Image::ExifTool->new;
|
|
2209
2221
|
}
|
|
2210
2222
|
my %saveOptions = %{$$self{OPTIONS}}; # save original options
|
|
2211
2223
|
|
|
@@ -2528,7 +2540,7 @@ sub ExtractInfo($;@)
|
|
|
2528
2540
|
FILE_TYPE => $$self{FILE_TYPE},
|
|
2529
2541
|
};
|
|
2530
2542
|
$saveOrder = GetByteOrder(),
|
|
2531
|
-
$$self{RAF} =
|
|
2543
|
+
$$self{RAF} = File::RandomAccess->new($_[0]);
|
|
2532
2544
|
$$self{PROCESSED} = { };
|
|
2533
2545
|
delete $$self{EXIF_DATA};
|
|
2534
2546
|
delete $$self{EXIF_POS};
|
|
@@ -2635,7 +2647,7 @@ sub ExtractInfo($;@)
|
|
|
2635
2647
|
# open the file
|
|
2636
2648
|
if ($self->Open(\*EXIFTOOL_FILE, $filename)) {
|
|
2637
2649
|
# create random access file object
|
|
2638
|
-
$raf =
|
|
2650
|
+
$raf = File::RandomAccess->new(\*EXIFTOOL_FILE);
|
|
2639
2651
|
# patch to force pipe to be buffered because seek returns success
|
|
2640
2652
|
# in Windows cmd shell pipe even though it really failed
|
|
2641
2653
|
$$raf{TESTED} = -1 if $filename eq '-' or $filename =~ /\|$/;
|
|
@@ -2766,12 +2778,16 @@ sub ExtractInfo($;@)
|
|
|
2766
2778
|
$raf->BinMode(); # set binary mode before we start reading
|
|
2767
2779
|
my $pos = $raf->Tell(); # get file position so we can rewind
|
|
2768
2780
|
# loop through list of file types to test
|
|
2769
|
-
my ($buff, $
|
|
2781
|
+
my ($buff, $err);
|
|
2770
2782
|
my %dirInfo = ( RAF => $raf, Base => $pos, TestBuff => \$buff );
|
|
2771
2783
|
# read start of file for testing
|
|
2772
|
-
$raf->Read($buff, $testLen)
|
|
2773
|
-
|
|
2774
|
-
|
|
2784
|
+
if ($raf->Read($buff, $testLen)) {
|
|
2785
|
+
$raf->Seek($pos, 0) or $err = 'Error seeking in file';
|
|
2786
|
+
} else {
|
|
2787
|
+
$err = $$raf{ERROR};
|
|
2788
|
+
$buff = '';
|
|
2789
|
+
}
|
|
2790
|
+
until ($err) {
|
|
2775
2791
|
my $unkHeader;
|
|
2776
2792
|
$type = shift @fileTypeList;
|
|
2777
2793
|
if ($type) {
|
|
@@ -2794,7 +2810,7 @@ sub ExtractInfo($;@)
|
|
|
2794
2810
|
$type = ($1 eq "\xff\xd8\xff") ? 'JPEG' : 'TIFF';
|
|
2795
2811
|
my $skip = pos($buff) - length($1);
|
|
2796
2812
|
$dirInfo{Base} = $pos + $skip;
|
|
2797
|
-
$raf->Seek($pos + $skip, 0) or $
|
|
2813
|
+
$raf->Seek($pos + $skip, 0) or $err = 'Error seeking in file', last;
|
|
2798
2814
|
$self->Warn("Processing $type-like data after unknown $skip-byte header");
|
|
2799
2815
|
$unkHeader = 1 unless $$self{DOC_NUM};
|
|
2800
2816
|
}
|
|
@@ -2840,14 +2856,13 @@ sub ExtractInfo($;@)
|
|
|
2840
2856
|
last;
|
|
2841
2857
|
}
|
|
2842
2858
|
# seek back to try again from the same position in the file
|
|
2843
|
-
$raf->Seek($pos, 0) or $
|
|
2859
|
+
$raf->Seek($pos, 0) or $err = 'Error seeking in file';
|
|
2844
2860
|
}
|
|
2845
|
-
if (not defined $type and not $$self{DOC_NUM}) {
|
|
2861
|
+
if (not $err and not defined $type and not $$self{DOC_NUM}) {
|
|
2846
2862
|
# if we were given a single image with a known type there
|
|
2847
2863
|
# must be a format error since we couldn't read it, otherwise
|
|
2848
2864
|
# it is likely we don't support images of this type
|
|
2849
2865
|
my $fileType = GetFileType($realname) || '';
|
|
2850
|
-
my $err;
|
|
2851
2866
|
if (not length $buff) {
|
|
2852
2867
|
$err = 'File is empty';
|
|
2853
2868
|
} else {
|
|
@@ -2888,10 +2903,9 @@ sub ExtractInfo($;@)
|
|
|
2888
2903
|
}
|
|
2889
2904
|
}
|
|
2890
2905
|
}
|
|
2891
|
-
$self->Error($err);
|
|
2892
2906
|
}
|
|
2893
|
-
if ($
|
|
2894
|
-
$self->Error(
|
|
2907
|
+
if ($err) {
|
|
2908
|
+
$self->Error($err);
|
|
2895
2909
|
} elsif ($self->Options('ScanForXMP') and (not defined $type or
|
|
2896
2910
|
(not $fast and not $$self{FoundXMP})))
|
|
2897
2911
|
{
|
|
@@ -4113,7 +4127,7 @@ sub Init($)
|
|
|
4113
4127
|
$$self{FileType} = ''; # identified file type
|
|
4114
4128
|
if ($self->Options('HtmlDump')) {
|
|
4115
4129
|
require Image::ExifTool::HtmlDump;
|
|
4116
|
-
$$self{HTML_DUMP} =
|
|
4130
|
+
$$self{HTML_DUMP} = Image::ExifTool::HtmlDump->new;
|
|
4117
4131
|
}
|
|
4118
4132
|
# make sure our TextOut is a file reference
|
|
4119
4133
|
$$self{OPTIONS}{TextOut} = \*STDOUT unless ref $$self{OPTIONS}{TextOut};
|
|
@@ -4176,7 +4190,7 @@ sub ExtractAltInfo($)
|
|
|
4176
4190
|
# (eg. -file1 '$originalfilename')
|
|
4177
4191
|
if ($fileName =~ /\$/) {
|
|
4178
4192
|
my @tags = reverse sort keys %{$$self{VALUE}};
|
|
4179
|
-
$fileName = $self->InsertTagValues(\@tags,
|
|
4193
|
+
$fileName = $self->InsertTagValues($fileName, \@tags, 'Warn');
|
|
4180
4194
|
next unless defined $fileName;
|
|
4181
4195
|
}
|
|
4182
4196
|
$altExifTool->ExtractInfo($fileName);
|
|
@@ -4503,7 +4517,7 @@ sub GetFileTime($$)
|
|
|
4503
4517
|
$atime = $mtime = $ctime = pack 'LL', 0, 0;
|
|
4504
4518
|
unless ($k32GetFileTime) {
|
|
4505
4519
|
return () if defined $k32GetFileTime;
|
|
4506
|
-
$k32GetFileTime =
|
|
4520
|
+
$k32GetFileTime = Win32::API->new('KERNEL32', 'GetFileTime', 'NPPP', 'I');
|
|
4507
4521
|
unless ($k32GetFileTime) {
|
|
4508
4522
|
$self->Warn('Error calling Win32::API::GetFileTime');
|
|
4509
4523
|
$k32GetFileTime = 0;
|
|
@@ -4582,7 +4596,7 @@ sub ParseArguments($;@)
|
|
|
4582
4596
|
my $buff = $@ ? pack('C*',unpack($] < 5.010000 ? 'U0C*' : 'C0C*',$$arg)) : Encode::encode('utf8',$$arg);
|
|
4583
4597
|
$arg = \$buff;
|
|
4584
4598
|
}
|
|
4585
|
-
$$self{RAF} =
|
|
4599
|
+
$$self{RAF} = File::RandomAccess->new($arg);
|
|
4586
4600
|
# set filename to empty string to indicate that
|
|
4587
4601
|
# we have a file but we didn't open it
|
|
4588
4602
|
$$self{FILENAME} = '';
|
|
@@ -6317,6 +6331,20 @@ sub InverseFileName($$)
|
|
|
6317
6331
|
return $val;
|
|
6318
6332
|
}
|
|
6319
6333
|
|
|
6334
|
+
#------------------------------------------------------------------------------
|
|
6335
|
+
# Limit length of long values (to be used in PrintConv)
|
|
6336
|
+
# Inputs: 0) string value, 1) ExifTool ref
|
|
6337
|
+
# Returns: length-limited value
|
|
6338
|
+
sub LimitLongValues($$)
|
|
6339
|
+
{
|
|
6340
|
+
my ($str, $self) = @_;
|
|
6341
|
+
my $lim = $$self{OPTIONS}{LimitLongValues};
|
|
6342
|
+
if (length($str) > $lim and $lim >= 5) {
|
|
6343
|
+
$str = substr($str,0,$lim-5) . "[...]";
|
|
6344
|
+
}
|
|
6345
|
+
return $str;
|
|
6346
|
+
}
|
|
6347
|
+
|
|
6320
6348
|
#------------------------------------------------------------------------------
|
|
6321
6349
|
# Save information for HTML dump
|
|
6322
6350
|
# Inputs: 0) ExifTool hash ref, 1) start offset, 2) data size
|
|
@@ -6966,7 +6994,7 @@ sub ProcessJPEG($$)
|
|
|
6966
6994
|
} elsif ($$segDataPt =~ /^(II|MM).{4}HEAPJPGM/s) {
|
|
6967
6995
|
next if $fast > 1; # skip processing for very fast
|
|
6968
6996
|
$dumpType = 'CIFF';
|
|
6969
|
-
my %dirInfo = ( RAF =>
|
|
6997
|
+
my %dirInfo = ( RAF => File::RandomAccess->new($segDataPt) );
|
|
6970
6998
|
$$self{SET_GROUP1} = 'CIFF';
|
|
6971
6999
|
push @{$$self{PATH}}, 'CIFF';
|
|
6972
7000
|
require Image::ExifTool::CanonRaw;
|
|
@@ -7491,6 +7519,8 @@ sub ProcessJPEG($$)
|
|
|
7491
7519
|
} elsif ($$segDataPt =~ /^AROT\0/ and $length > 10) {
|
|
7492
7520
|
# iPhone "AROT" segment containing integrated intensity per 16 scan lines
|
|
7493
7521
|
# (with number of elements N = ImageHeight / 16 - 1, ref PH/NealKrawetz)
|
|
7522
|
+
# "Absolute ROTational difference between two frames"
|
|
7523
|
+
# (see https://www.hackerfactor.com/blog/index.php?/archives/822-Apple-Rot.html)
|
|
7494
7524
|
$xtra = 'segment (N=' . unpack('x6N', $$segDataPt) . ')';
|
|
7495
7525
|
}
|
|
7496
7526
|
} elsif ($marker == 0xeb) { # APP11 (JPEG-HDR, JUMBF)
|
|
@@ -7549,6 +7579,7 @@ sub ProcessJPEG($$)
|
|
|
7549
7579
|
$dirInfo{DataPt} = \$buff;
|
|
7550
7580
|
$dirInfo{DataPos} = $segPos + 8; # (shows correct offsets for single-segment JUMBF)
|
|
7551
7581
|
$dirInfo{DataLen} = $dirInfo{DirLen} = $size;
|
|
7582
|
+
$dirInfo{DirName} = 'JUMBF';
|
|
7552
7583
|
my $tagTablePtr = GetTagTable('Image::ExifTool::Jpeg2000::Main');
|
|
7553
7584
|
$self->ProcessDirectory(\%dirInfo, $tagTablePtr);
|
|
7554
7585
|
delete $jumbfChunk{$type};
|
|
@@ -7990,7 +8021,7 @@ sub DoProcessTIFF($$;$)
|
|
|
7990
8021
|
}
|
|
7991
8022
|
}
|
|
7992
8023
|
# update FileType if necessary now that we know more about the file
|
|
7993
|
-
if ($$self{DNGVersion} and $$self{FileType} !~ /^(DNG|GPR)$/) {
|
|
8024
|
+
if ($$self{DNGVersion} and $$self{FILE_TYPE} eq 'TIFF' and $$self{FileType} !~ /^(DNG|GPR)$/) {
|
|
7994
8025
|
# override whatever FileType we set since we now know it is DNG
|
|
7995
8026
|
$self->OverrideFileType($$self{TIFF_TYPE} = 'DNG');
|
|
7996
8027
|
}
|
|
@@ -8428,7 +8459,7 @@ sub GetTagInfo($$$;$$$)
|
|
|
8428
8459
|
$printConv = $$tagTablePtr{PRINT_CONV};
|
|
8429
8460
|
} else {
|
|
8430
8461
|
# limit length of printout (can be very long)
|
|
8431
|
-
$printConv =
|
|
8462
|
+
$printConv = \&LimitLongValues;
|
|
8432
8463
|
}
|
|
8433
8464
|
my $hex = sprintf("0x%.4x", $tagID);
|
|
8434
8465
|
my $prefix = $$tagTablePtr{TAG_PREFIX};
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
#
|
|
6
6
|
# URL: https://exiftool.org/
|
|
7
7
|
#
|
|
8
|
-
# Legal: Copyright (c) 2003-
|
|
8
|
+
# Legal: Copyright (c) 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
9
9
|
# This library is free software; you can redistribute it and/or
|
|
10
10
|
# modify it under the same terms as Perl itself.
|
|
11
11
|
#------------------------------------------------------------------------------
|
|
@@ -65,49 +65,50 @@ 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
|
-
7Z r |
|
|
73
|
-
A r |
|
|
74
|
-
AA r |
|
|
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 | DOCX r | ITC r | O r | RSRC r
|
|
69
|
+
3FR r | DPX r | J2C r | ODP r | RTF r
|
|
70
|
+
3G2 r/w | DR4 r/w/c | JNG r/w | ODS r | RW2 r/w
|
|
71
|
+
3GP r/w | DSS r | JP2 r/w | ODT r | RWL r/w
|
|
72
|
+
7Z r | DV r | JPEG r/w | OFR r | RWZ r
|
|
73
|
+
A r | DVB r/w | JSON r | OGG r | RM r
|
|
74
|
+
AA r | DVR-MS r | JXL r | OGV r | SEQ r
|
|
75
|
+
AAC r | DYLIB r | K25 r | ONP r | SKETCH r
|
|
76
|
+
AAE r | EIP r | KDC r | OPUS r | SO r
|
|
77
|
+
AAX r/w | EPS r/w | KEY r | ORF r/w | SR2 r/w
|
|
78
|
+
ACR r | EPUB r | LA r | ORI r/w | SRF r
|
|
79
|
+
AFM r | ERF r/w | LFP r | OTF r | SRW r/w
|
|
80
|
+
AI r/w | EXE r | LIF r | PAC r | SVG r
|
|
81
|
+
AIFF r | EXIF r/w/c | LNK r | PAGES r | SWF r
|
|
82
|
+
APE r | EXR r | LRV r/w | PBM r/w | THM r/w
|
|
83
|
+
ARQ r/w | EXV r/w/c | M2TS r | PCD r | TIFF r/w
|
|
84
|
+
ARW r/w | F4A/V r/w | M4A/V r/w | PCX r | TORRENT r
|
|
85
|
+
ASF r | FFF r/w | MACOS r | PDB r | TTC r
|
|
86
|
+
AVI r | FITS r | MAX r | PDF r/w | TTF r
|
|
87
|
+
AVIF r/w | FLA r | MEF r/w | PEF r/w | TXT r
|
|
88
|
+
AZW r | FLAC r | MIE r/w/c | PFA r | VCF r
|
|
89
|
+
BMP r | FLIF r/w | MIFF r | PFB r | VNT r
|
|
90
|
+
BPG r | FLV r | MKA r | PFM r | VRD r/w/c
|
|
91
|
+
BTF r | FPF r | MKS r | PGF r | VSD r
|
|
92
|
+
C2PA r | FPX r | MKV r | PGM r/w | WAV r
|
|
93
|
+
CHM r | GIF r/w | MNG r/w | PLIST r | WDP r/w
|
|
94
|
+
COS r | GLV r/w | MOBI r | PICT r | WEBP r/w
|
|
95
|
+
CR2 r/w | GPR r/w | MODD r | PMP r | WEBM r
|
|
96
|
+
CR3 r/w | GZ r | MOI r | PNG r/w | WMA r
|
|
97
|
+
CRM r/w | HDP r/w | MOS r/w | PPM r/w | WMV r
|
|
98
|
+
CRW r/w | HDR r | MOV r/w | PPT r | WPG r
|
|
99
|
+
CS1 r/w | HEIC r/w | MP3 r | PPTX r | WTV r
|
|
100
|
+
CSV r | HEIF r/w | MP4 r/w | PS r/w | WV r
|
|
101
|
+
CUR r | HTML r | MPC r | PSB r/w | X3F r/w
|
|
102
|
+
CZI r | ICC r/w/c | MPG r | PSD r/w | XCF r
|
|
103
|
+
DCM r | ICO r | MPO r/w | PSP r | XISF r
|
|
104
|
+
DCP r/w | ICS r | MQV r/w | QTIF r/w | XLS r
|
|
105
|
+
DCR r | IDML r | MRC r | R3D r | XLSX r
|
|
106
|
+
DFONT r | IIQ r/w | MRW r/w | RA r | XMP r/w/c
|
|
107
|
+
DIVX r | IND r/w | MXF r | RAF r/w | ZIP r
|
|
108
|
+
DJVU r | INSP r/w | NEF r/w | RAM r |
|
|
109
|
+
DLL r | INSV r | NKSC r/w | RAR r |
|
|
110
|
+
DNG r/w | INX r | NRW r/w | RAW r/w |
|
|
111
|
+
DOC r | ISO r | NUMBERS r | RIFF r |
|
|
111
112
|
|
|
112
113
|
Meta Information
|
|
113
114
|
----------------------+----------------------+---------------------
|
|
@@ -619,7 +620,8 @@ DateFormat of "%Y:%m:%d %H:%M:%S").
|
|
|
619
620
|
=item Duplicates
|
|
620
621
|
|
|
621
622
|
Flag to return values from tags with duplicate names when extracting
|
|
622
|
-
information. Default is 1.
|
|
623
|
+
information. Default is 1. Forced to 1 when copying tags with
|
|
624
|
+
L</SetNewValuesFromFile>.
|
|
623
625
|
|
|
624
626
|
=item Escape
|
|
625
627
|
|
|
@@ -822,6 +824,14 @@ set to undef to select the built-in default language. Default is 'en'.
|
|
|
822
824
|
Flag to indicate that 64-bit file offsets are supported on this system.
|
|
823
825
|
Default is undef.
|
|
824
826
|
|
|
827
|
+
=item LimitLongValues
|
|
828
|
+
|
|
829
|
+
When extracting values for some specific tags (usually Unknown tags), the
|
|
830
|
+
PrintConv values are length-limited and the value is truncated with an
|
|
831
|
+
ellipsis ("[...]") if it exceeds a specified length. This option specifies
|
|
832
|
+
the length limit for these tags. A setting of 4 or less disables the limit
|
|
833
|
+
(because the ellipsis string is longer than this). Default is 60.
|
|
834
|
+
|
|
825
835
|
=item ListItem
|
|
826
836
|
|
|
827
837
|
Return only a specific item from list-type values. A value of 0 returns the
|
|
@@ -1792,8 +1802,9 @@ or a trailing '#' causes the ValueConv value to be copied (same as setting
|
|
|
1792
1802
|
the Type option to 'ValueConv' for this tag only). A leading '+' sets the
|
|
1793
1803
|
Replace option to 0 on a per-tag basis (see Options below). Wildcards ('*'
|
|
1794
1804
|
and '?') may be used in the tag name. A tag name of '*' is commonly used
|
|
1795
|
-
when a group is specified to copy all tags in the group (eg. 'XMP:*').
|
|
1796
|
-
|
|
1805
|
+
when a group is specified to copy all tags in the group (eg. 'XMP:*').
|
|
1806
|
+
|
|
1807
|
+
A special feature allows tag names of the form 'DSTTAGE<lt>SRCTAG' (or
|
|
1797
1808
|
'SRCTAGE<gt>DSTTAG') to be specified to copy information to a tag with a
|
|
1798
1809
|
different name or a specified group. Both 'SRCTAG' and 'DSTTAG' may contain
|
|
1799
1810
|
wildcards and/or be prefixed by a group name (eg.
|
|
@@ -1803,18 +1814,20 @@ a list with arguments of the form 'DSTTAG+E<lt>SRCTAG' or
|
|
|
1803
1814
|
'DSTTAG-E<lt>SRCTAG'. Tags are evaluated in order, so exclusions apply only
|
|
1804
1815
|
to tags included earlier in the list. An extension of this feature allows
|
|
1805
1816
|
the tag value to be set from a string containing tag names with leading '$'
|
|
1806
|
-
symbols (eg. 'CommentE<lt>the file is $filename').
|
|
1807
|
-
around
|
|
1808
|
-
to
|
|
1809
|
-
|
|
1817
|
+
symbols (eg. 'CommentE<lt>the file is $filename'). Braces '{}' may be used
|
|
1818
|
+
around a tag name to separate it from subsequent text, and a '$$' is used to
|
|
1819
|
+
to represent a '$' symbol. The behaviour for missing tags in expressions is
|
|
1820
|
+
defined by the L</MissingTagValue> option. The tag value may be modified
|
|
1810
1821
|
via changes to the default input variable ($_) in a Perl expression placed
|
|
1811
1822
|
inside the braces and after a semicolon following the tag name (see the last
|
|
1812
1823
|
example above). A '@' may be added after the tag name (before the
|
|
1813
1824
|
semicolon) to make the expression act on individual list items instead of
|
|
1814
|
-
the concatenated string for list-type tags.
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
|
|
1825
|
+
the concatenated string for list-type tags. The expression has access to
|
|
1826
|
+
the full ExifTool API through the current ExifTool object (C<$self>) and the
|
|
1827
|
+
tag key (C<$tag>). Braces within the expression must be balanced.
|
|
1828
|
+
|
|
1829
|
+
Multiple options hash references may be passed to set different options for
|
|
1830
|
+
different tags. Options apply to subsequent tags in the argument list.
|
|
1818
1831
|
|
|
1819
1832
|
By default, this routine will commute information between same-named tags in
|
|
1820
1833
|
different groups, allowing information to be translated between images with
|
|
@@ -2426,16 +2439,16 @@ Here is a complete list of groups for each of these families:
|
|
|
2426
2439
|
=item Family 0 (Information Type):
|
|
2427
2440
|
|
|
2428
2441
|
AAC, AFCP, AIFF, APE, APP0, APP1, APP11, APP12, APP13, APP14, APP15, APP2,
|
|
2429
|
-
APP3, APP4, APP5, APP6,
|
|
2430
|
-
DV, DjVu, Ducky, EXE, EXIF, ExifTool, FITS, FLAC,
|
|
2431
|
-
FlashPix, Font, FotoStation, GIF, GIMP, GeoTiff, GoPro,
|
|
2432
|
-
ICC_Profile, ID3, IPTC, ISO, ITC, JFIF, JPEG, JSON, JUMBF,
|
|
2433
|
-
Leaf, Lytro, M2TS, MIE, MIFF, MISB, MNG, MOI, MPC, MPEG, MPF,
|
|
2434
|
-
MakerNotes, Matroska, Meta, Ogg, OpenEXR, Opus, PDF, PICT, PLIST, PNG,
|
|
2435
|
-
|
|
2436
|
-
PrintIM, QuickTime, RAF, RIFF, RSRC, RTF, Radiance, Rawzor,
|
|
2437
|
-
SigmaRaw, Stim, Theora, Torrent, Trailer,
|
|
2438
|
-
XML, XMP, ZIP
|
|
2442
|
+
APP3, APP4, APP5, APP6, APP7, APP8, APP9, ASF, Audible, Canon, CanonVRD,
|
|
2443
|
+
Composite, DICOM, DNG, DV, DjVu, Ducky, EXE, EXIF, ExifTool, FITS, FLAC,
|
|
2444
|
+
FLIR, File, Flash, FlashPix, Font, FotoStation, GIF, GIMP, GeoTiff, GoPro,
|
|
2445
|
+
H264, HTML, ICC_Profile, ID3, IPTC, ISO, ITC, JFIF, JPEG, JSON, JUMBF,
|
|
2446
|
+
Jpeg2000, LNK, Leaf, Lytro, M2TS, MIE, MIFF, MISB, MNG, MOI, MPC, MPEG, MPF,
|
|
2447
|
+
MXF, MakerNotes, Matroska, Meta, Ogg, OpenEXR, Opus, PDF, PICT, PLIST, PNG,
|
|
2448
|
+
PSP, Palm, PanasonicRaw, Parrot, PhotoCD, PhotoMechanic, Photoshop,
|
|
2449
|
+
PostScript, PrintIM, QuickTime, RAF, RIFF, RSRC, RTF, Radiance, Rawzor,
|
|
2450
|
+
Real, Red, SVG, SigmaRaw, Sony, Stim, Theora, Torrent, Trailer, VCard,
|
|
2451
|
+
Vorbis, WTV, XML, XMP, ZIP
|
|
2439
2452
|
|
|
2440
2453
|
=item Family 1 (Specific Location):
|
|
2441
2454
|
|
|
@@ -2477,8 +2490,8 @@ XMP-ics, XMP-iptcCore, XMP-iptcExt, XMP-lr, XMP-mediapro, XMP-microsoft,
|
|
|
2477
2490
|
XMP-mwg-coll, XMP-mwg-kw, XMP-mwg-rs, XMP-nine, XMP-panorama, XMP-pdf,
|
|
2478
2491
|
XMP-pdfx, XMP-photomech, XMP-photoshop, XMP-plus, XMP-pmi, XMP-prism,
|
|
2479
2492
|
XMP-prl, XMP-prm, XMP-pur, XMP-rdf, XMP-sdc, XMP-swf, XMP-tiff, XMP-x,
|
|
2480
|
-
XMP-xmp, XMP-xmpBJ, XMP-xmpDM, XMP-
|
|
2481
|
-
XMP-xmpRights, XMP-xmpTPg, ZIP, iTunes
|
|
2493
|
+
XMP-xmp, XMP-xmpBJ, XMP-xmpDM, XMP-xmpDSA, XMP-xmpMM, XMP-xmpNote,
|
|
2494
|
+
XMP-xmpPLUS, XMP-xmpRights, XMP-xmpTPg, ZIP, iTunes
|
|
2482
2495
|
|
|
2483
2496
|
=item Family 2 (Category):
|
|
2484
2497
|
|
|
@@ -2881,7 +2894,7 @@ specified by the L</Charset> option.
|
|
|
2881
2894
|
|
|
2882
2895
|
=head1 AUTHOR
|
|
2883
2896
|
|
|
2884
|
-
Copyright 2003-
|
|
2897
|
+
Copyright 2003-2024, Phil Harvey
|
|
2885
2898
|
|
|
2886
2899
|
This library is free software; you can redistribute it and/or modify it
|
|
2887
2900
|
under the same terms as Perl itself.
|
|
@@ -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.76
|
|
4
4
|
Release: 1
|
|
5
5
|
License: Artistic/GPL
|
|
6
6
|
Group: Development/Libraries/Perl
|
|
@@ -22,49 +22,50 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
|
22
22
|
|
|
23
23
|
File Types
|
|
24
24
|
------------+-------------+-------------+-------------+------------
|
|
25
|
-
360 r/w | DOCX r |
|
|
26
|
-
3FR r | DPX r |
|
|
27
|
-
3G2 r/w | DR4 r/w/c |
|
|
28
|
-
3GP r/w | DSS r |
|
|
29
|
-
7Z r | DV r |
|
|
30
|
-
A r | DVB r/w |
|
|
31
|
-
AA r | DVR-MS r |
|
|
32
|
-
AAC r | DYLIB r |
|
|
33
|
-
AAE r | EIP r |
|
|
34
|
-
AAX r/w | EPS r/w |
|
|
35
|
-
ACR r | EPUB r |
|
|
36
|
-
AFM r | ERF r/w |
|
|
37
|
-
AI r/w | EXE r |
|
|
38
|
-
AIFF r | EXIF r/w/c |
|
|
39
|
-
APE r | EXR r |
|
|
40
|
-
ARQ r/w | EXV r/w/c |
|
|
41
|
-
ARW r/w | F4A/V r/w |
|
|
42
|
-
ASF r | FFF r/w |
|
|
43
|
-
AVI r | FITS r |
|
|
44
|
-
AVIF r/w | FLA r |
|
|
45
|
-
AZW r | FLAC r |
|
|
46
|
-
BMP r | FLIF r/w |
|
|
47
|
-
BPG r | FLV r |
|
|
48
|
-
BTF r | FPF r |
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
25
|
+
360 r/w | DOCX r | ITC r | O r | RSRC r
|
|
26
|
+
3FR r | DPX r | J2C r | ODP r | RTF r
|
|
27
|
+
3G2 r/w | DR4 r/w/c | JNG r/w | ODS r | RW2 r/w
|
|
28
|
+
3GP r/w | DSS r | JP2 r/w | ODT r | RWL r/w
|
|
29
|
+
7Z r | DV r | JPEG r/w | OFR r | RWZ r
|
|
30
|
+
A r | DVB r/w | JSON r | OGG r | RM r
|
|
31
|
+
AA r | DVR-MS r | JXL r | OGV r | SEQ r
|
|
32
|
+
AAC r | DYLIB r | K25 r | ONP r | SKETCH r
|
|
33
|
+
AAE r | EIP r | KDC r | OPUS r | SO r
|
|
34
|
+
AAX r/w | EPS r/w | KEY r | ORF r/w | SR2 r/w
|
|
35
|
+
ACR r | EPUB r | LA r | ORI r/w | SRF r
|
|
36
|
+
AFM r | ERF r/w | LFP r | OTF r | SRW r/w
|
|
37
|
+
AI r/w | EXE r | LIF r | PAC r | SVG r
|
|
38
|
+
AIFF r | EXIF r/w/c | LNK r | PAGES r | SWF r
|
|
39
|
+
APE r | EXR r | LRV r/w | PBM r/w | THM r/w
|
|
40
|
+
ARQ r/w | EXV r/w/c | M2TS r | PCD r | TIFF r/w
|
|
41
|
+
ARW r/w | F4A/V r/w | M4A/V r/w | PCX r | TORRENT r
|
|
42
|
+
ASF r | FFF r/w | MACOS r | PDB r | TTC r
|
|
43
|
+
AVI r | FITS r | MAX r | PDF r/w | TTF r
|
|
44
|
+
AVIF r/w | FLA r | MEF r/w | PEF r/w | TXT r
|
|
45
|
+
AZW r | FLAC r | MIE r/w/c | PFA r | VCF r
|
|
46
|
+
BMP r | FLIF r/w | MIFF r | PFB r | VNT r
|
|
47
|
+
BPG r | FLV r | MKA r | PFM r | VRD r/w/c
|
|
48
|
+
BTF r | FPF r | MKS r | PGF r | VSD r
|
|
49
|
+
C2PA r | FPX r | MKV r | PGM r/w | WAV r
|
|
50
|
+
CHM r | GIF r/w | MNG r/w | PLIST r | WDP r/w
|
|
51
|
+
COS r | GLV r/w | MOBI r | PICT r | WEBP r/w
|
|
52
|
+
CR2 r/w | GPR r/w | MODD r | PMP r | WEBM r
|
|
53
|
+
CR3 r/w | GZ r | MOI r | PNG r/w | WMA r
|
|
54
|
+
CRM r/w | HDP r/w | MOS r/w | PPM r/w | WMV r
|
|
55
|
+
CRW r/w | HDR r | MOV r/w | PPT r | WPG r
|
|
56
|
+
CS1 r/w | HEIC r/w | MP3 r | PPTX r | WTV r
|
|
57
|
+
CSV r | HEIF r/w | MP4 r/w | PS r/w | WV r
|
|
58
|
+
CUR r | HTML r | MPC r | PSB r/w | X3F r/w
|
|
59
|
+
CZI r | ICC r/w/c | MPG r | PSD r/w | XCF r
|
|
60
|
+
DCM r | ICO r | MPO r/w | PSP r | XISF r
|
|
61
|
+
DCP r/w | ICS r | MQV r/w | QTIF r/w | XLS r
|
|
62
|
+
DCR r | IDML r | MRC r | R3D r | XLSX r
|
|
63
|
+
DFONT r | IIQ r/w | MRW r/w | RA r | XMP r/w/c
|
|
64
|
+
DIVX r | IND r/w | MXF r | RAF r/w | ZIP r
|
|
65
|
+
DJVU r | INSP r/w | NEF r/w | RAM r |
|
|
66
|
+
DLL r | INSV r | NKSC r/w | RAR r |
|
|
67
|
+
DNG r/w | INX r | NRW r/w | RAW r/w |
|
|
68
|
+
DOC r | ISO r | NUMBERS r | RIFF r |
|
|
68
69
|
|
|
69
70
|
Meta Information
|
|
70
71
|
----------------------+----------------------+---------------------
|