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
|
@@ -14,49 +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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
-
|
|
17
|
+
360 r/w | DPX r | ITC r | NUMBERS r | RAW r/w
|
|
18
|
+
3FR r | DR4 r/w/c | J2C r | O r | RIFF r
|
|
19
|
+
3G2 r/w | DSS r | JNG r/w | ODP r | RSRC r
|
|
20
|
+
3GP r/w | DV r | JP2 r/w | ODS r | RTF r
|
|
21
|
+
7Z r | DVB r/w | JPEG r/w | ODT r | RW2 r/w
|
|
22
|
+
A r | DVR-MS r | JSON r | OFR r | RWL r/w
|
|
23
|
+
AA r | DYLIB r | JXL r | OGG r | RWZ r
|
|
24
|
+
AAE r | EIP r | K25 r | OGV r | RM r
|
|
25
|
+
AAX r/w | EPS r/w | KDC r | ONP r | SEQ r
|
|
26
|
+
ACR r | EPUB r | KEY r | OPUS r | SKETCH r
|
|
27
|
+
AFM r | ERF r/w | LA r | ORF r/w | SO r
|
|
28
|
+
AI r/w | EXE r | LFP r | ORI r/w | SR2 r/w
|
|
29
|
+
AIFF r | EXIF r/w/c | LIF r | OTF r | SRF r
|
|
30
|
+
APE r | EXR r | LNK r | PAC r | SRW r/w
|
|
31
|
+
ARQ r/w | EXV r/w/c | LRV r/w | PAGES r | SVG r
|
|
32
|
+
ARW r/w | F4A/V r/w | M2TS r | PBM r/w | SWF r
|
|
33
|
+
ASF r | FFF r/w | M4A/V r/w | PCD r | THM r/w
|
|
34
|
+
AVI r | FITS r | MACOS r | PCX r | TIFF r/w
|
|
35
|
+
AVIF r/w | FLA r | MAX r | PDB r | TORRENT r
|
|
36
|
+
AZW r | FLAC r | MEF r/w | PDF r/w | TTC r
|
|
37
|
+
BMP r | FLIF r/w | MIE r/w/c | PEF r/w | TTF r
|
|
38
|
+
BPG r | FLV r | MIFF r | PFA r | TXT r
|
|
39
|
+
BTF r | FPF r | MKA r | PFB r | VCF r
|
|
40
|
+
CHM r | FPX r | MKS r | PFM r | VNT r
|
|
41
|
+
COS r | GIF r/w | MKV r | PGF r | VRD r/w/c
|
|
42
|
+
CR2 r/w | GLV r/w | MNG r/w | PGM r/w | VSD r
|
|
43
|
+
CR3 r/w | GPR r/w | MOBI r | PLIST r | WAV r
|
|
44
|
+
CRM r/w | GZ r | MODD r | PICT r | WDP r/w
|
|
45
|
+
CRW r/w | HDP r/w | MOI r | PMP r | WEBP r/w
|
|
46
|
+
CS1 r/w | HDR r | MOS r/w | PNG r/w | WEBM r
|
|
47
|
+
CSV r | HEIC r/w | MOV r/w | PPM r/w | WMA r
|
|
48
|
+
CUR r | HEIF r/w | MP3 r | PPT r | WMV r
|
|
49
|
+
CZI r | HTML r | MP4 r/w | PPTX r | WPG r
|
|
50
|
+
DCM r | ICC r/w/c | MPC r | PS r/w | WTV r
|
|
51
|
+
DCP r/w | ICO r | MPG r | PSB r/w | WV r
|
|
52
|
+
DCR r | ICS r | MPO r/w | PSD r/w | X3F r/w
|
|
53
|
+
DFONT r | IDML r | MQV r/w | PSP r | XCF r
|
|
54
|
+
DIVX r | IIQ r/w | MRC r | QTIF r/w | XLS r
|
|
55
|
+
DJVU r | IND r/w | MRW r/w | R3D r | XLSX r
|
|
56
|
+
DLL r | INSP r/w | MXF r | RA r | XMP r/w/c
|
|
57
|
+
DNG r/w | INSV r | NEF r/w | RAF r/w | ZIP r
|
|
58
|
+
DOC r | INX r | NKSC r/w | RAM r |
|
|
59
|
+
DOCX r | ISO r | NRW r/w | RAR r |
|
|
60
60
|
|
|
61
61
|
Meta Information
|
|
62
62
|
----------------------+----------------------+---------------------
|
|
@@ -108,8 +108,8 @@ your home directory, then you would type the following commands in a
|
|
|
108
108
|
terminal window to extract and run ExifTool:
|
|
109
109
|
|
|
110
110
|
cd ~/Desktop
|
|
111
|
-
gzip -dc Image-ExifTool-12.
|
|
112
|
-
cd Image-ExifTool-12.
|
|
111
|
+
gzip -dc Image-ExifTool-12.67.tar.gz | tar -xf -
|
|
112
|
+
cd Image-ExifTool-12.67
|
|
113
113
|
./exiftool t/images/ExifTool.jpg
|
|
114
114
|
|
|
115
115
|
Note: These commands extract meta information from one of the test images.
|
|
@@ -158,8 +158,11 @@ for calculating digest values and providing other features listed below:
|
|
|
158
158
|
Win32::API (for proper handling of Windows file times)
|
|
159
159
|
Win32::FindFile (for Windows Unicode directory support, app only)
|
|
160
160
|
Win32API::File (for Windows Unicode file names and file times)
|
|
161
|
+
Compress::Raw::Lzma (for reading encoded 7z files)
|
|
161
162
|
IO::Compress::RawDeflate (for writing FLIF images)
|
|
162
163
|
IO::Uncompress::RawInflate (for reading FLIF images)
|
|
164
|
+
IO::Compress::Brotli (for writing compressed JXL metadata)
|
|
165
|
+
IO::Uncompress::Brotli (for reading compressed JXL metadata)
|
|
163
166
|
|
|
164
167
|
COPYRIGHT AND LICENSE
|
|
165
168
|
|
|
@@ -202,10 +205,11 @@ distribution package:
|
|
|
202
205
|
fotoware.config - Definitions for writing Fotoware XMP tags
|
|
203
206
|
frameCount.config - Extract FrameCount from MP4 videos
|
|
204
207
|
gps2utm.config - Generate UTM coordinate tags from GPS info
|
|
205
|
-
|
|
208
|
+
guano.config - Decode individual tags from Guano metadata
|
|
206
209
|
nksc.config - Decode tags in Nikon ViewNX NKSC files
|
|
207
210
|
photoshop_paths.config - For extracting or copying Photoshop paths
|
|
208
211
|
picasa_faces.config - Convert from Picasa to MWG/MP face regions
|
|
212
|
+
pix4d.config - Definitions for writing Pix4D XMP tags
|
|
209
213
|
rotate_regions.config - Rotate MWG and MP region tags
|
|
210
214
|
tiff_version.config - Determine the version of a TIFF file
|
|
211
215
|
time_zone.config - Calculate time zone from EXIF tags
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
#------------------------------------------------------------------------------
|
|
2
|
+
# File: Guano.config
|
|
3
|
+
#
|
|
4
|
+
# Description: User-defined Composite tag definitions to extract individual entries
|
|
5
|
+
# from the RIFF:Guano text block.
|
|
6
|
+
#
|
|
7
|
+
# Requires exiftool version 12.63+
|
|
8
|
+
#
|
|
9
|
+
# See GUANO - Grand Unified Acoustic Notation Ontology
|
|
10
|
+
# https://github.com/riggsd/guano-spec/blob/master/guano_specification.md
|
|
11
|
+
#
|
|
12
|
+
# The code itself is simply a regex match. If other entries are needed,
|
|
13
|
+
# then all that needs to be done is to copy/paste one of the blocks, change
|
|
14
|
+
# the name and edit the regex
|
|
15
|
+
#
|
|
16
|
+
# Examples:
|
|
17
|
+
# This will list the Make and Model from the Guano text block, if they exist
|
|
18
|
+
# exiftool -config Guano.config -GuanoModel -GuanoMake /path/to/files/
|
|
19
|
+
#
|
|
20
|
+
# Lists all the Guano entries in the Guano text block
|
|
21
|
+
# exiftool -config Guano.config -Guano* /path/to/files/
|
|
22
|
+
#
|
|
23
|
+
# Revisions: 2023/06/09 - Bryan K. Williams (aka StarGeek) Created
|
|
24
|
+
#------------------------------------------------------------------------------
|
|
25
|
+
|
|
26
|
+
%Image::ExifTool::UserDefined = (
|
|
27
|
+
'Image::ExifTool::Composite' => {
|
|
28
|
+
GuanoVersion => {
|
|
29
|
+
Require => 'Guano',
|
|
30
|
+
ValueConv => '$val =~ /GUANO\|Version:\s+(.*)/m ? $1 : undef',
|
|
31
|
+
},
|
|
32
|
+
GuanoMake => {
|
|
33
|
+
Require => 'Guano',
|
|
34
|
+
ValueConv => '$val =~ /Make:\s+(.*)/m ? $1 : undef',
|
|
35
|
+
},
|
|
36
|
+
GuanoModel => {
|
|
37
|
+
Require => 'Guano',
|
|
38
|
+
ValueConv => '$val =~ /Model:\s+(.*)/m ? $1 : undef',
|
|
39
|
+
},
|
|
40
|
+
GuanoFirmwareVersion => {
|
|
41
|
+
Require => 'Guano',
|
|
42
|
+
ValueConv => '$val =~ /Firmware Version:\s+(.*)/m ? $1 : undef',
|
|
43
|
+
},
|
|
44
|
+
GuanoSerial => {
|
|
45
|
+
Require => 'Guano',
|
|
46
|
+
ValueConv => '$val =~ /Serial:\s+(.*)/m ? $1 : undef',
|
|
47
|
+
},
|
|
48
|
+
GuanoTimestamp => {
|
|
49
|
+
Require => 'Guano',
|
|
50
|
+
Groups => { 2 => 'Time' },
|
|
51
|
+
ValueConv => '$val =~ /Timestamp:\s+(.*)/m ? $1 : undef',
|
|
52
|
+
PrintConv => '$self->ConvertDateTime($val)',
|
|
53
|
+
},
|
|
54
|
+
GuanoLocPosition => {
|
|
55
|
+
Require => 'Guano',
|
|
56
|
+
Groups => { 2 => 'Location' },
|
|
57
|
+
ValueConv => '$val =~ /Loc Position:\s+(.*)/m ? $1 : undef',
|
|
58
|
+
PrintConv => q{
|
|
59
|
+
require Image::ExifTool::GPS;
|
|
60
|
+
my @v = split ' ', $val;
|
|
61
|
+
return Image::ExifTool::GPS::ToDMS($self, $v[0], 1, "N") . ', ' .
|
|
62
|
+
Image::ExifTool::GPS::ToDMS($self, $v[1], 1, "E");
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
GuanoLocElevation => {
|
|
66
|
+
Require => 'Guano',
|
|
67
|
+
Groups => { 2 => 'Location' },
|
|
68
|
+
ValueConv => '$val =~ /Loc Elevation:\s+(.*)/m ? $1 : undef',
|
|
69
|
+
},
|
|
70
|
+
GuanoTemperatureInt => {
|
|
71
|
+
Require => 'Guano',
|
|
72
|
+
ValueConv => '$val =~ /Temperature Int:\s+(.*)/m ? $1 : undef',
|
|
73
|
+
},
|
|
74
|
+
GuanoFilterHP => {
|
|
75
|
+
Require => 'Guano',
|
|
76
|
+
ValueConv => '$val =~ /^Filter HP:\s+(.*)/m ? $1 : undef',
|
|
77
|
+
},
|
|
78
|
+
GuanoAnabatBatteryVoltage => {
|
|
79
|
+
Require => 'Guano',
|
|
80
|
+
ValueConv => '$val =~ /Anabat\|Battery voltage:\s+(.*)/m ? $1 : undef',
|
|
81
|
+
},
|
|
82
|
+
GuanoAnabatMicrophone => {
|
|
83
|
+
Require => 'Guano',
|
|
84
|
+
ValueConv => '$val =~ /Anabat\|Microphone:\s+(.*)/m ? $1 : undef',
|
|
85
|
+
},
|
|
86
|
+
GuanoAnabatActivation => {
|
|
87
|
+
Require => 'Guano',
|
|
88
|
+
ValueConv => '$val =~ /Anabat\|Activation:\s+(.*)/m ? $1 : undef',
|
|
89
|
+
},
|
|
90
|
+
GuanoAnabatZcSensitivity => {
|
|
91
|
+
Require => 'Guano',
|
|
92
|
+
ValueConv => '$val =~ /Anabat\|Zc Sensitivity:\s+(.*)/m ? $1 : undef',
|
|
93
|
+
},
|
|
94
|
+
GuanoAnabatTriggerMinFreq => {
|
|
95
|
+
Require => 'Guano',
|
|
96
|
+
ValueConv => '$val =~ /Anabat\|Trigger min freq:\s+(.*)/m ? $1 : undef',
|
|
97
|
+
},
|
|
98
|
+
GuanoAnabatTriggerMaxFreq => {
|
|
99
|
+
Require => 'Guano',
|
|
100
|
+
ValueConv => '$val =~ /Anabat\|Trigger max freq:\s+(.*)/m ? $1 : undef',
|
|
101
|
+
},
|
|
102
|
+
GuanoAnabatMinEvent => {
|
|
103
|
+
Require => 'Guano',
|
|
104
|
+
ValueConv => '$val =~ /Anabat\|Min event:\s+(.*)/m ? $1 : undef',
|
|
105
|
+
},
|
|
106
|
+
GuanoAnabatTriggerWindow => {
|
|
107
|
+
Require => 'Guano',
|
|
108
|
+
ValueConv => '$val =~ /Anabat\|Trigger Window:\s+(.*)/m ? $1 : undef',
|
|
109
|
+
},
|
|
110
|
+
GuanoAnabatMaximumFileDuration => {
|
|
111
|
+
Require => 'Guano',
|
|
112
|
+
ValueConv => '$val =~ /Anabat\|Maximum File Duration:\s+(.*)/m ? $1 : undef',
|
|
113
|
+
},
|
|
114
|
+
GuanoSBVersion => {
|
|
115
|
+
Require => 'Guano',
|
|
116
|
+
ValueConv => '$val =~ /SB\|Version:\s+(.*)/m ? $1 : undef',
|
|
117
|
+
},
|
|
118
|
+
GuanoSBSpeciesAutoID => {
|
|
119
|
+
Require => 'Guano',
|
|
120
|
+
ValueConv => '$val =~ /SB\|Species Auto ID:\s+(.*)/m ? $1 : undef',
|
|
121
|
+
},
|
|
122
|
+
GuanoSpeciesAutoID => {
|
|
123
|
+
Require => 'Guano',
|
|
124
|
+
ValueConv => '$val =~ /Species Auto ID:\s+(.*)/m ? $1 : undef',
|
|
125
|
+
},
|
|
126
|
+
GuanoSpeciesManualID => {
|
|
127
|
+
Require => 'Guano',
|
|
128
|
+
ValueConv => '$val =~ /Species Manual ID:\s+(.*)/m ? $1 : undef',
|
|
129
|
+
},
|
|
130
|
+
GuanoSampleRate => {
|
|
131
|
+
Require => 'Guano',
|
|
132
|
+
ValueConv => '$val =~ /Samplerate:\s+(.*)/m ? $1 : undef',
|
|
133
|
+
},
|
|
134
|
+
GuanoLength => {
|
|
135
|
+
Require => 'Guano',
|
|
136
|
+
ValueConv => '$val =~ /Length:\s+(.*)/m ? $1 : undef',
|
|
137
|
+
},
|
|
138
|
+
GuanoTE => {
|
|
139
|
+
Require => 'Guano',
|
|
140
|
+
ValueConv => '$val =~ /TE:\s+(.*)/m ? $1 : undef',
|
|
141
|
+
},
|
|
142
|
+
GuanoSBFilterHP => {
|
|
143
|
+
Require => 'Guano',
|
|
144
|
+
ValueConv => '$val =~ /SB\|Filter HP:\s+(.*)/m ? $1 : undef',
|
|
145
|
+
},
|
|
146
|
+
GuanoNote => {
|
|
147
|
+
Require => 'Guano',
|
|
148
|
+
ValueConv => '$val =~ /Note:\s+(.*)/m ? $1 : undef',
|
|
149
|
+
},
|
|
150
|
+
GuanoSBRegion => {
|
|
151
|
+
Require => 'Guano',
|
|
152
|
+
ValueConv => '$val =~ /SB\|Region:\s+(.*)/m ? $1 : undef',
|
|
153
|
+
},
|
|
154
|
+
GuanoSBClassifier => {
|
|
155
|
+
Require => 'Guano',
|
|
156
|
+
ValueConv => '$val =~ /SB\|Classifier:\s+(.*)/m ? $1 : undef',
|
|
157
|
+
},
|
|
158
|
+
},
|
|
159
|
+
);
|
|
160
|
+
#------------------------------------------------------------------------------
|
|
161
|
+
1; #end
|