exiftool-vendored.exe 13.31.0 → 13.34.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.
Files changed (38) hide show
  1. package/bin/exiftool.exe +0 -0
  2. package/bin/exiftool_files/exiftool.pl +30 -10
  3. package/bin/exiftool_files/lib/Image/ExifTool/BuildTagLookup.pm +7 -5
  4. package/bin/exiftool_files/lib/Image/ExifTool/Canon.pm +19 -2
  5. package/bin/exiftool_files/lib/Image/ExifTool/Exif.pm +9 -6
  6. package/bin/exiftool_files/lib/Image/ExifTool/FlashPix.pm +4 -159
  7. package/bin/exiftool_files/lib/Image/ExifTool/FujiFilm.pm +11 -3
  8. package/bin/exiftool_files/lib/Image/ExifTool/Geotag.pm +5 -3
  9. package/bin/exiftool_files/lib/Image/ExifTool/GoPro.pm +14 -2
  10. package/bin/exiftool_files/lib/Image/ExifTool/LNK.pm +4 -1
  11. package/bin/exiftool_files/lib/Image/ExifTool/Lang/cs.pm +0 -1
  12. package/bin/exiftool_files/lib/Image/ExifTool/Lang/de.pm +0 -1
  13. package/bin/exiftool_files/lib/Image/ExifTool/Lang/fr.pm +0 -1
  14. package/bin/exiftool_files/lib/Image/ExifTool/Lang/it.pm +0 -1
  15. package/bin/exiftool_files/lib/Image/ExifTool/Lang/ja.pm +0 -1
  16. package/bin/exiftool_files/lib/Image/ExifTool/Lang/nl.pm +0 -1
  17. package/bin/exiftool_files/lib/Image/ExifTool/Lang/pl.pm +0 -1
  18. package/bin/exiftool_files/lib/Image/ExifTool/Lang/zh_cn.pm +0 -1
  19. package/bin/exiftool_files/lib/Image/ExifTool/Microsoft.pm +158 -1
  20. package/bin/exiftool_files/lib/Image/ExifTool/Minolta.pm +4 -2
  21. package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +72 -37
  22. package/bin/exiftool_files/lib/Image/ExifTool/NikonCustom.pm +40 -10
  23. package/bin/exiftool_files/lib/Image/ExifTool/Olympus.pm +254 -34
  24. package/bin/exiftool_files/lib/Image/ExifTool/Panasonic.pm +3 -3
  25. package/bin/exiftool_files/lib/Image/ExifTool/Pentax.pm +340 -61
  26. package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +11 -4
  27. package/bin/exiftool_files/lib/Image/ExifTool/README +2 -1
  28. package/bin/exiftool_files/lib/Image/ExifTool/Sony.pm +44 -17
  29. package/bin/exiftool_files/lib/Image/ExifTool/TNEF.pm +487 -0
  30. package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +4380 -4265
  31. package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +265 -19
  32. package/bin/exiftool_files/lib/Image/ExifTool/WriteExif.pl +14 -12
  33. package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +19 -15
  34. package/bin/exiftool_files/lib/Image/ExifTool/XMPStruct.pl +1 -1
  35. package/bin/exiftool_files/lib/Image/ExifTool.pm +12 -4
  36. package/bin/exiftool_files/lib/Image/ExifTool.pod +50 -44
  37. package/bin/exiftool_files/windows_exiftool.txt +89 -84
  38. package/package.json +7 -6
@@ -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 $advFmtSelf $configFile @configFiles $noConfig);
31
31
 
32
- $VERSION = '13.31';
32
+ $VERSION = '13.34';
33
33
  $RELEASE = '';
34
34
  @ISA = qw(Exporter);
35
35
  %EXPORT_TAGS = (
@@ -152,8 +152,8 @@ sub ReadValue($$$;$$$);
152
152
  APE::OldHeader Audible MPC MPEG::Audio MPEG::Video MPEG::Xing M2TS QuickTime
153
153
  QuickTime::ImageFile QuickTime::Stream QuickTime::Tags360Fly Matroska
154
154
  Matroska::StdTag MOI MXF DV Flash Flash::FLV Real::Media Real::Audio
155
- Real::Metafile Red RIFF AIFF ASF WTV DICOM FITS XISF MIE JSON HTML XMP::SVG
156
- Palm Palm::MOBI Palm::EXTH Torrent EXE EXE::PEVersion EXE::PEString
155
+ Real::Metafile Red RIFF AIFF ASF TNEF WTV DICOM FITS XISF MIE JSON HTML
156
+ XMP::SVG Palm Palm::MOBI Palm::EXTH Torrent EXE EXE::PEVersion EXE::PEString
157
157
  EXE::DebugRSDS EXE::DebugNB10 EXE::Misc EXE::MachO EXE::PEF EXE::ELF EXE::AR
158
158
  EXE::CHM LNK PCAP Font VCard Text VCard::VCalendar VCard::VNote RSRC Rawzor
159
159
  ZIP ZIP::GZIP ZIP::RAR ZIP::RAR5 RTF OOXML iWork ISO FLIR::AFF FLIR::FPF
@@ -200,7 +200,7 @@ $defaultLang = 'en'; # default language
200
200
  RAR 7Z BZ2 CZI TAR EXE EXR HDR CHM LNK WMF AVC DEX DPX RAW Font
201
201
  JUMBF RSRC M2TS MacOS PHP PCX DCX DWF DWG DXF WTV Torrent VCard
202
202
  LRI R3D AA PDB PFM2 MRC LIF JXL MOI ISO ALIAS PCAP JSON MP3
203
- DICOM PCD NKA ICO TXT AAC);
203
+ TNEF DICOM PCD NKA ICO TXT AAC);
204
204
 
205
205
  # file types that we can write (edit)
206
206
  my @writeTypes = qw(JPEG TIFF GIF CRW MRW ORF RAF RAW PNG MIE PSD XMP PPM EPS
@@ -536,6 +536,7 @@ my %createTypes = map { $_ => 1 } qw(XMP ICC MIE VRD DR4 EXIF EXV);
536
536
  THMX => [['ZIP','FPX'], 'Office Open XML Theme'],
537
537
  TIF => 'TIFF',
538
538
  TIFF => ['TIFF', 'Tagged Image File Format'],
539
+ TNEF => ['TNEF', 'Transport Neural Encapsulation Format'], # (actual extension is .DAT)
539
540
  TORRENT => ['Torrent', 'BitTorrent description file'],
540
541
  TS => 'M2TS',
541
542
  TTC => ['Font', 'True Type Font Collection'],
@@ -802,6 +803,7 @@ my %fileDescription = (
802
803
  TAR => 'application/x-tar',
803
804
  THMX => 'application/vnd.ms-officetheme',
804
805
  TIFF => 'image/tiff',
806
+ TNEF => 'application/vnd.ms-tnef',
805
807
  Torrent => 'application/x-bittorrent',
806
808
  TTC => 'application/font-ttf',
807
809
  TTF => 'application/font-ttf',
@@ -1012,6 +1014,7 @@ $testLen = 1024; # number of bytes to read when testing for magic number
1012
1014
  RWZ => 'rawzor',
1013
1015
  SWF => '[FC]WS[^\0]',
1014
1016
  TAR => '.{257}ustar( )?\0', # (this doesn't catch old-style tar files)
1017
+ TNEF => '\x78\x9f\x3e\x22..\x01\x06\x90\x08\0',
1015
1018
  TXT => '(\xff\xfe|(\0\0)?\xfe\xff|(\xef\xbb\xbf)?[\x07-\x0d\x20-\x7e\x80-\xfe]*$)',
1016
1019
  TIFF => '(II|MM)', # don't test magic number (some raw formats are different)
1017
1020
  VCard=> '(?i)BEGIN:(VCARD|VCALENDAR|VNOTE)\r\n',
@@ -1178,6 +1181,7 @@ my @availableOptions = (
1178
1181
  [ 'SystemTags', undef, 'extract additional File System tags' ],
1179
1182
  [ 'TextOut', \*STDOUT, 'file for Verbose/HtmlDump output' ],
1180
1183
  [ 'TimeZone', undef, 'local time zone' ],
1184
+ [ 'UndefTags', undef, 'leave undef tags in -if conditions when -m or -f are used' ],
1181
1185
  [ 'Unknown', 0, 'flag to get values of unknown tags (0-2)' ],
1182
1186
  [ 'UserParam', { }, 'user parameters for additional user-defined tag values' ],
1183
1187
  [ 'Validate', undef, 'perform additional validation' ],
@@ -4292,6 +4296,7 @@ sub Init($)
4292
4296
  $$self{LOW_PRIORITY_DIR} = { PreviewIFD => 1 }; # names of priority 0 directories
4293
4297
  $$self{TIFF_TYPE} = ''; # type of TIFF data (APP1, TIFF, NEF, etc...)
4294
4298
  $$self{FMT_EXPR} = undef; # current advanced formatting expression
4299
+ $$self{HAS_DOC} = { }; # lookup for all document numbers in this file
4295
4300
  $$self{Make} = ''; # camera make
4296
4301
  $$self{Model} = ''; # camera model
4297
4302
  $$self{CameraType} = ''; # Olympus camera type
@@ -6582,6 +6587,8 @@ sub ConvertDateTime($$)
6582
6587
  }
6583
6588
  $a[5] -= 1900; # strftime year starts from 1900
6584
6589
  $date = POSIX::strftime($fmt, @a); # generate the formatted date/time
6590
+ # apparently strftime can set the UTF-8 flag (argh!), so reset this if necessary
6591
+ $self->Sanitize(\$date) if $fmt =~ /[\x80-\xff]/;
6585
6592
  } elsif ($$self{OPTIONS}{StrictDate}) {
6586
6593
  undef $date;
6587
6594
  }
@@ -9480,6 +9487,7 @@ sub FoundTag($$$;@)
9480
9487
  $$self{TAG_EXTRA}{$tag}{G1} = $grps[1] if $grps[1];
9481
9488
  if ($$self{DOC_NUM}) {
9482
9489
  $$self{TAG_EXTRA}{$tag}{G3} = $$self{DOC_NUM};
9490
+ $$self{HAS_DOC}{$$self{DOC_NUM}} = 1;
9483
9491
  if ($$self{DOC_NUM} =~ /^(\d+)/) {
9484
9492
  # keep track of maximum 1st-level sub-document number
9485
9493
  $$self{DOC_COUNT} = $1 unless $$self{DOC_COUNT} >= $1;
@@ -65,50 +65,51 @@ supported by ExifTool (r = read, w = write, c = create):
65
65
 
66
66
  File Types
67
67
  ------------+-------------+-------------+-------------+------------
68
- 360 r/w | DOCX r | ITC r | NUMBERS r | RAM r
69
- 3FR r | DPX r | J2C r | NXD r | RAR r
70
- 3G2 r/w | DR4 r/w/c | JNG r/w | O r | RAW r/w
71
- 3GP r/w | DSS r | JP2 r/w | ODP r | RIFF r
72
- 7Z r | DV r | JPEG r/w | ODS r | RSRC r
73
- A r | DVB r/w | JSON r | ODT r | RTF r
74
- AA r | DVR-MS r | JXL r/w | OFR r | RW2 r/w
75
- AAC r | DYLIB r | K25 r | OGG r | RWL r/w
76
- AAE r | EIP r | KDC r | OGV r | RWZ r
77
- AAX r/w | EPS r/w | KEY r | ONP r | RM r
78
- ACR r | EPUB r | LA r | OPUS r | SEQ r
79
- AFM r | ERF r/w | LFP r | ORF r/w | SKETCH r
80
- AI r/w | EXE r | LIF r | ORI r/w | SO r
81
- AIFF r | EXIF r/w/c | LNK r | OTF r | SR2 r/w
82
- APE r | EXR r | LRV r/w | PAC r | SRF r
83
- ARQ r/w | EXV r/w/c | M2TS r | PAGES r | SRW r/w
84
- ARW r/w | F4A/V r/w | M4A/V r/w | PBM r/w | SVG r
85
- ASF r | FFF r/w | MACOS r | PCAP r | SWF r
86
- AVI r | FITS r | MAX r | PCAPNG r | THM r/w
87
- AVIF r/w | FLA r | MEF r/w | PCD r | TIFF r/w
88
- AZW r | FLAC r | MIE r/w/c | PCX r | TORRENT r
89
- BMP r | FLIF r/w | MIFF r | PDB r | TTC r
90
- BPG r | FLV r | MKA r | PDF r/w | TTF r
91
- BTF r | FPF r | MKS r | PEF r/w | TXT r
92
- C2PA r | FPX r | MKV r | PFA r | VCF r
93
- CHM r | GIF r/w | MNG r/w | PFB r | VNT r
94
- COS r | GLV r/w | MOBI r | PFM r | VRD r/w/c
95
- CR2 r/w | GPR r/w | MODD r | PGF r | VSD r
96
- CR3 r/w | GZ r | MOI r | PGM r/w | WAV r
97
- CRM r/w | HDP r/w | MOS r/w | PLIST r | WDP r/w
98
- CRW r/w | HDR r | MOV r/w | PICT r | WEBP r/w
99
- CS1 r/w | HEIC r/w | MP3 r | PMP r | WEBM r
100
- CSV r | HEIF r/w | MP4 r/w | PNG r/w | WMA r
101
- CUR r | HTML r | MPC r | PPM r/w | WMV r
102
- CZI r | ICC r/w/c | MPG r | PPT r | WPG r
103
- DCM r | ICO r | MPO r/w | PPTX r | WTV r
104
- DCP r/w | ICS r | MQV r/w | PS r/w | WV r
105
- DCR r | IDML r | MRC r | PSB r/w | X3F r/w
106
- DFONT r | IIQ r/w | MRW r/w | PSD r/w | XCF r
107
- DIVX r | IND r/w | MXF r | PSP r | XISF r
108
- DJVU r | INSP r/w | NEF r/w | QTIF r/w | XLS r
109
- DLL r | INSV r | NKA r | R3D r | XLSX r
110
- DNG r/w | INX r | NKSC r/w | RA r | XMP r/w/c
111
- DOC r | ISO r | NRW r/w | RAF r/w | ZIP r
68
+ 360 r/w | DPX r | JNG r/w | ODP r | RSRC r
69
+ 3FR r | DR4 r/w/c | JP2 r/w | ODS r | RTF r
70
+ 3G2 r/w | DSS r | JPEG r/w | ODT r | RW2 r/w
71
+ 3GP r/w | DV r | JSON r | OFR r | RWL r/w
72
+ 7Z r | DVB r/w | JXL r/w | OGG r | RWZ r
73
+ A r | DVR-MS r | K25 r | OGV r | RM r
74
+ AA r | DYLIB r | KDC r | ONP r | SEQ r
75
+ AAC r | EIP r | KEY r | OPUS r | SKETCH r
76
+ AAE r | EPS r/w | LA r | ORF r/w | SO r
77
+ AAX r/w | EPUB r | LFP r | ORI r/w | SR2 r/w
78
+ ACR r | ERF r/w | LIF r | OTF r | SRF r
79
+ AFM r | EXE r | LNK r | PAC r | SRW r/w
80
+ AI r/w | EXIF r/w/c | LRV r/w | PAGES r | SVG r
81
+ AIFF r | EXR r | M2TS r | PBM r/w | SWF r
82
+ APE r | EXV r/w/c | M4A/V r/w | PCAP r | THM r/w
83
+ ARQ r/w | F4A/V r/w | MACOS r | PCAPNG r | TIFF r/w
84
+ ARW r/w | FFF r/w | MAX r | PCD r | TNEF r
85
+ ASF r | FITS r | MEF r/w | PCX r | TORRENT r
86
+ AVI r | FLA r | MIE r/w/c | PDB r | TTC r
87
+ AVIF r/w | FLAC r | MIFF r | PDF r/w | TTF r
88
+ AZW r | FLIF r/w | MKA r | PEF r/w | TXT r
89
+ BMP r | FLV r | MKS r | PFA r | VCF r
90
+ BPG r | FPF r | MKV r | PFB r | VNT r
91
+ BTF r | FPX r | MNG r/w | PFM r | VRD r/w/c
92
+ C2PA r | GIF r/w | MOBI r | PGF r | VSD r
93
+ CHM r | GLV r/w | MODD r | PGM r/w | WAV r
94
+ COS r | GPR r/w | MOI r | PLIST r | WDP r/w
95
+ CR2 r/w | GZ r | MOS r/w | PICT r | WEBP r/w
96
+ CR3 r/w | HDP r/w | MOV r/w | PMP r | WEBM r
97
+ CRM r/w | HDR r | MP3 r | PNG r/w | WMA r
98
+ CRW r/w | HEIC r/w | MP4 r/w | PPM r/w | WMV r
99
+ CS1 r/w | HEIF r/w | MPC r | PPT r | WPG r
100
+ CSV r | HTML r | MPG r | PPTX r | WTV r
101
+ CUR r | ICC r/w/c | MPO r/w | PS r/w | WV r
102
+ CZI r | ICO r | MQV r/w | PSB r/w | X3F r/w
103
+ DCM r | ICS r | MRC r | PSD r/w | XCF r
104
+ DCP r/w | IDML r | MRW r/w | PSP r | XISF r
105
+ DCR r | IIQ r/w | MXF r | QTIF r/w | XLS r
106
+ DFONT r | IND r/w | NEF r/w | R3D r | XLSX r
107
+ DIVX r | INSP r/w | NKA r | RA r | XMP r/w/c
108
+ DJVU r | INSV r | NKSC r/w | RAF r/w | ZIP r
109
+ DLL r | INX r | NRW r/w | RAM r |
110
+ DNG r/w | ISO r | NUMBERS r | RAR r |
111
+ DOC r | ITC r | NXD r | RAW r/w |
112
+ DOCX r | J2C r | O r | RIFF r |
112
113
 
113
114
  Meta Information
114
115
  ----------------------+----------------------+---------------------
@@ -1198,6 +1199,11 @@ For Unix-based systems, the value may also be a time zone ID like
1198
1199
  "America/New_York". Requires Time::Piece on Windows, or POSIX::tzset on
1199
1200
  other systems. Default is undef.
1200
1201
 
1202
+ =item UndefTags
1203
+
1204
+ Flag to maintain undefined tag values in the application B<-if> expression
1205
+ when the B<-f> or B<-m> option is also used. Default is undef.
1206
+
1201
1207
  =item Unknown
1202
1208
 
1203
1209
  Flag to get the values of unknown tags. If set to 1, unknown tags are
@@ -63,50 +63,51 @@ DESCRIPTION
63
63
 
64
64
  File Types
65
65
  ------------+-------------+-------------+-------------+------------
66
- 360 r/w | DOCX r | ITC r | NUMBERS r | RAM r
67
- 3FR r | DPX r | J2C r | NXD r | RAR r
68
- 3G2 r/w | DR4 r/w/c | JNG r/w | O r | RAW r/w
69
- 3GP r/w | DSS r | JP2 r/w | ODP r | RIFF r
70
- 7Z r | DV r | JPEG r/w | ODS r | RSRC r
71
- A r | DVB r/w | JSON r | ODT r | RTF r
72
- AA r | DVR-MS r | JXL r/w | OFR r | RW2 r/w
73
- AAC r | DYLIB r | K25 r | OGG r | RWL r/w
74
- AAE r | EIP r | KDC r | OGV r | RWZ r
75
- AAX r/w | EPS r/w | KEY r | ONP r | RM r
76
- ACR r | EPUB r | LA r | OPUS r | SEQ r
77
- AFM r | ERF r/w | LFP r | ORF r/w | SKETCH r
78
- AI r/w | EXE r | LIF r | ORI r/w | SO r
79
- AIFF r | EXIF r/w/c | LNK r | OTF r | SR2 r/w
80
- APE r | EXR r | LRV r/w | PAC r | SRF r
81
- ARQ r/w | EXV r/w/c | M2TS r | PAGES r | SRW r/w
82
- ARW r/w | F4A/V r/w | M4A/V r/w | PBM r/w | SVG r
83
- ASF r | FFF r/w | MACOS r | PCAP r | SWF r
84
- AVI r | FITS r | MAX r | PCAPNG r | THM r/w
85
- AVIF r/w | FLA r | MEF r/w | PCD r | TIFF r/w
86
- AZW r | FLAC r | MIE r/w/c | PCX r | TORRENT r
87
- BMP r | FLIF r/w | MIFF r | PDB r | TTC r
88
- BPG r | FLV r | MKA r | PDF r/w | TTF r
89
- BTF r | FPF r | MKS r | PEF r/w | TXT r
90
- C2PA r | FPX r | MKV r | PFA r | VCF r
91
- CHM r | GIF r/w | MNG r/w | PFB r | VNT r
92
- COS r | GLV r/w | MOBI r | PFM r | VRD r/w/c
93
- CR2 r/w | GPR r/w | MODD r | PGF r | VSD r
94
- CR3 r/w | GZ r | MOI r | PGM r/w | WAV r
95
- CRM r/w | HDP r/w | MOS r/w | PLIST r | WDP r/w
96
- CRW r/w | HDR r | MOV r/w | PICT r | WEBP r/w
97
- CS1 r/w | HEIC r/w | MP3 r | PMP r | WEBM r
98
- CSV r | HEIF r/w | MP4 r/w | PNG r/w | WMA r
99
- CUR r | HTML r | MPC r | PPM r/w | WMV r
100
- CZI r | ICC r/w/c | MPG r | PPT r | WPG r
101
- DCM r | ICO r | MPO r/w | PPTX r | WTV r
102
- DCP r/w | ICS r | MQV r/w | PS r/w | WV r
103
- DCR r | IDML r | MRC r | PSB r/w | X3F r/w
104
- DFONT r | IIQ r/w | MRW r/w | PSD r/w | XCF r
105
- DIVX r | IND r/w | MXF r | PSP r | XISF r
106
- DJVU r | INSP r/w | NEF r/w | QTIF r/w | XLS r
107
- DLL r | INSV r | NKA r | R3D r | XLSX r
108
- DNG r/w | INX r | NKSC r/w | RA r | XMP r/w/c
109
- DOC r | ISO r | NRW r/w | RAF r/w | ZIP r
66
+ 360 r/w | DPX r | JNG r/w | ODP r | RSRC r
67
+ 3FR r | DR4 r/w/c | JP2 r/w | ODS r | RTF r
68
+ 3G2 r/w | DSS r | JPEG r/w | ODT r | RW2 r/w
69
+ 3GP r/w | DV r | JSON r | OFR r | RWL r/w
70
+ 7Z r | DVB r/w | JXL r/w | OGG r | RWZ r
71
+ A r | DVR-MS r | K25 r | OGV r | RM r
72
+ AA r | DYLIB r | KDC r | ONP r | SEQ r
73
+ AAC r | EIP r | KEY r | OPUS r | SKETCH r
74
+ AAE r | EPS r/w | LA r | ORF r/w | SO r
75
+ AAX r/w | EPUB r | LFP r | ORI r/w | SR2 r/w
76
+ ACR r | ERF r/w | LIF r | OTF r | SRF r
77
+ AFM r | EXE r | LNK r | PAC r | SRW r/w
78
+ AI r/w | EXIF r/w/c | LRV r/w | PAGES r | SVG r
79
+ AIFF r | EXR r | M2TS r | PBM r/w | SWF r
80
+ APE r | EXV r/w/c | M4A/V r/w | PCAP r | THM r/w
81
+ ARQ r/w | F4A/V r/w | MACOS r | PCAPNG r | TIFF r/w
82
+ ARW r/w | FFF r/w | MAX r | PCD r | TNEF r
83
+ ASF r | FITS r | MEF r/w | PCX r | TORRENT r
84
+ AVI r | FLA r | MIE r/w/c | PDB r | TTC r
85
+ AVIF r/w | FLAC r | MIFF r | PDF r/w | TTF r
86
+ AZW r | FLIF r/w | MKA r | PEF r/w | TXT r
87
+ BMP r | FLV r | MKS r | PFA r | VCF r
88
+ BPG r | FPF r | MKV r | PFB r | VNT r
89
+ BTF r | FPX r | MNG r/w | PFM r | VRD r/w/c
90
+ C2PA r | GIF r/w | MOBI r | PGF r | VSD r
91
+ CHM r | GLV r/w | MODD r | PGM r/w | WAV r
92
+ COS r | GPR r/w | MOI r | PLIST r | WDP r/w
93
+ CR2 r/w | GZ r | MOS r/w | PICT r | WEBP r/w
94
+ CR3 r/w | HDP r/w | MOV r/w | PMP r | WEBM r
95
+ CRM r/w | HDR r | MP3 r | PNG r/w | WMA r
96
+ CRW r/w | HEIC r/w | MP4 r/w | PPM r/w | WMV r
97
+ CS1 r/w | HEIF r/w | MPC r | PPT r | WPG r
98
+ CSV r | HTML r | MPG r | PPTX r | WTV r
99
+ CUR r | ICC r/w/c | MPO r/w | PS r/w | WV r
100
+ CZI r | ICO r | MQV r/w | PSB r/w | X3F r/w
101
+ DCM r | ICS r | MRC r | PSD r/w | XCF r
102
+ DCP r/w | IDML r | MRW r/w | PSP r | XISF r
103
+ DCR r | IIQ r/w | MXF r | QTIF r/w | XLS r
104
+ DFONT r | IND r/w | NEF r/w | R3D r | XLSX r
105
+ DIVX r | INSP r/w | NKA r | RA r | XMP r/w/c
106
+ DJVU r | INSV r | NKSC r/w | RAF r/w | ZIP r
107
+ DLL r | INX r | NRW r/w | RAM r |
108
+ DNG r/w | ISO r | NUMBERS r | RAR r |
109
+ DOC r | ITC r | NXD r | RAW r/w |
110
+ DOCX r | J2C r | O r | RIFF r |
110
111
 
111
112
  Meta Information
112
113
  ----------------------+----------------------+---------------------
@@ -831,11 +832,12 @@ OPTIONS
831
832
  -f (-forcePrint)
832
833
  Force printing of tags even if they don't exist. This option
833
834
  applies to tags specified on the command line, or with the -p, -if
834
- or -tagsFromFile options. When -f is used, the value of any missing
835
- tag is set to a dash ("-") by default, but this may be configured
836
- via the API MissingTagValue option. -f is also used to add a
837
- 'flags' attribute to the -listx output, or to allow tags to be
838
- deleted when writing with the -csv=*CSVFILE* feature.
835
+ (unless the API UndefTags option is set), -fileNUM or -tagsFromFile
836
+ options. When -f is used, the value of any missing tag is set to a
837
+ dash ("-") by default, but this may be configured via the API
838
+ MissingTagValue option. -f is also used to add a 'flags' attribute
839
+ to the -listx output, or to allow tags to be deleted when writing
840
+ with the -csv=*CSVFILE* feature.
839
841
 
840
842
  -g[*NUM*][:*NUM*...] (-groupHeadings)
841
843
  Organize output by tag group. *NUM* specifies a group family
@@ -1004,8 +1006,7 @@ OPTIONS
1004
1006
  lib/Image/ExifTool/Lang/ru.pm, and search and replace all "MISSING"
1005
1007
  strings in the file with your translations.
1006
1008
 
1007
- 7. Email the module ('ru.pm' in this example) to philharvey66 at
1008
- gmail.com
1009
+ 7. Email the module ('ru.pm' in this example) to exiftool@gmail.com
1009
1010
 
1010
1011
  8. Thank you!!
1011
1012
 
@@ -1014,7 +1015,8 @@ OPTIONS
1014
1015
  index to be extracted. *INDEX* is 0 for the first item in the list.
1015
1016
  Negative indices may also be used to reference items from the end
1016
1017
  of the list. Has no effect on single-valued tags. Also applies to
1017
- tag values when copying from a tag, and in -if conditions.
1018
+ tag values when copying from a tag, and in -if, -p and -fileNUM
1019
+ arguments.
1018
1020
 
1019
1021
  -n (--printConv)
1020
1022
  Disable print conversion for all tags. By default, extracted values
@@ -1081,7 +1083,7 @@ OPTIONS
1081
1083
 
1082
1084
  produces output like this:
1083
1085
 
1084
- -- Generated by ExifTool 13.31 --
1086
+ -- Generated by ExifTool 13.34 --
1085
1087
  File: a.jpg - 2003:10:31 15:44:19
1086
1088
  (f/5.6, 1/60s, ISO 100)
1087
1089
  File: b.jpg - 2006:05:23 11:57:38
@@ -1638,11 +1640,8 @@ OPTIONS
1638
1640
 
1639
1641
  1) The -n and -b options also apply to tags used in *EXPR*.
1640
1642
 
1641
- 2) Some binary data blocks are not extracted unless specified
1642
- explicitly. These tags are not available for use in the -if
1643
- condition unless they are also specified on the command line. The
1644
- alternative is to use the $GROUP:all syntax. (eg. Use $exif:all
1645
- instead of $exif in *EXPR* to test for the existence of EXIF tags.)
1643
+ 2) The API RequestTags option is automatically set for all tags
1644
+ used in the -if condition.
1646
1645
 
1647
1646
  3) Tags in the string are interpolated in a similar way to -p
1648
1647
  before the expression is evaluated. In this interpolation, $/ is
@@ -1664,8 +1663,12 @@ OPTIONS
1664
1663
  previous command when -execute was used, and may be used like any
1665
1664
  other tag in the condition (ie. "$OK").
1666
1665
 
1667
- 7) The API RequestTags option is automatically set for all tags
1668
- used in the -if condition.
1666
+ 7) The values of undefined tags in the expression are affected by
1667
+ the -f and -m options unless the API UndefTags option is also set.
1668
+
1669
+ 8) The condition fails if a Perl error occurs. This could happen
1670
+ for instance if an undefined value (eg. a missing tag) is used
1671
+ improperly.
1669
1672
 
1670
1673
  -m (-ignoreMinorErrors)
1671
1674
  Ignore minor errors and warnings. This enables writing to files
@@ -1677,8 +1680,9 @@ OPTIONS
1677
1680
  indicated by "[minor]" at the start of the message. Warnings which
1678
1681
  affect processing when ignored are indicated by "[Minor]" (with a
1679
1682
  capital "M"). Note that this causes missing values in
1680
- -tagsFromFile, -p and -if strings to be set to an empty string
1681
- rather than an undefined value.
1683
+ -tagsFromFile, -p, -if and -fileNUM strings to be set to an empty
1684
+ string rather than an undefined value (but this may be avoided for
1685
+ -if using the API UndefTags option).
1682
1686
 
1683
1687
  -o *OUTFILE* or *FMT* (-out)
1684
1688
  Set the output file or directory name when writing information.
@@ -2268,31 +2272,32 @@ OPTIONS
2268
2272
  Set user parameter. *PARAM* is an arbitrary user parameter name.
2269
2273
  This is an interface to the API UserParam option (see the
2270
2274
  Image::ExifTool Options documentation), and provides a method to
2271
- access user-defined parameters in arguments to the -if and -p
2272
- options as if they were any other tag. Appending a hash tag ("#")
2273
- to *PARAM* (eg. "-userParam MyTag#=yes") also causes the parameter
2274
- to be extracted as a normal tag in the UserParam group. Similar to
2275
- the -api option, the parameter value is set to 1 if *=VAL* is
2276
- omitted, undef if just *VAL* is omitted with "=", or an empty
2277
- string if *VAL* is omitted with "^=".
2275
+ access user-defined parameters in arguments to the -if, -p and
2276
+ -fileNUM options as if they were any other tag. Appending a hash
2277
+ tag ("#") to *PARAM* (eg. "-userParam MyTag#=yes") also causes the
2278
+ parameter to be extracted as a normal tag in the UserParam group.
2279
+ Similar to the -api option, the parameter value is set to 1 if
2280
+ *=VAL* is omitted, undef if just *VAL* is omitted with "=", or an
2281
+ empty string if *VAL* is omitted with "^=".
2278
2282
 
2279
2283
  exiftool -p "$test from $filename" -userparam test=Hello FILE
2280
2284
 
2281
2285
  Advanced formatting feature
2282
2286
  An advanced formatting feature allows modification of the value of any
2283
- tag interpolated within a -if or -p option argument, or a -tagsFromFile
2284
- redirection string. Tag names within these strings are prefixed by a "$"
2285
- symbol, and an arbitrary Perl expression may be applied to the tag value
2286
- by placing braces around the tag name and inserting the expression after
2287
- the name, separated by a semicolon (ie. "${TAG;EXPR}"). The expression
2288
- acts on the value of the tag through the default input variable ($_),
2289
- and has access to the full ExifTool API through the current ExifTool
2290
- object ($self) and the tag key ($tag). It may contain any valid Perl
2291
- code, including translation ("tr///") and substitution ("s///")
2292
- operations, but note that braces within the expression must be balanced.
2293
- The example below prints the camera Make with spaces translated to
2294
- underlines, and multiple consecutive underlines replaced by a single
2295
- underline:
2287
+ tag interpolated within a -if, -p or -fileNUM argument, or a
2288
+ -tagsFromFile redirection string. Tag names within these strings are
2289
+ prefixed by a "$" symbol, and an arbitrary Perl expression may be
2290
+ applied to the tag value by placing braces around the tag name and
2291
+ inserting the expression after the name, separated by a semicolon (ie.
2292
+ "${TAG;EXPR}"). The expression acts on the value of the tag through the
2293
+ default input variable ($_), and has access to the full ExifTool API
2294
+ through the current ExifTool object ($self) and the tag key ($tag). It
2295
+ may contain any valid Perl code, including translation ("tr///") and
2296
+ substitution ("s///") operations, but note that braces within the
2297
+ expression must be balanced. If the expression does not modify $_ the
2298
+ original tag value is returned. The example below prints the camera Make
2299
+ with spaces translated to underlines, and multiple consecutive
2300
+ underlines replaced by a single underline:
2296
2301
 
2297
2302
  exiftool -p "${make;tr/ /_/;s/__+/_/g}" image.jpg
2298
2303
 
@@ -2310,6 +2315,8 @@ OPTIONS
2310
2315
  in file names.)
2311
2316
 
2312
2317
  Helper functions
2318
+ Note that function names are case sensitive.
2319
+
2313
2320
  "DateFmt"
2314
2321
 
2315
2322
  Simplifies reformatting of individual date/time values. This function
@@ -2348,8 +2355,6 @@ OPTIONS
2348
2355
 
2349
2356
  exiftool -sep "##" "-keywords<${keywords;NoDups(1)}" a.jpg
2350
2357
 
2351
- Note that function names are case sensitive.
2352
-
2353
2358
  ExifTool 12.64 adds an API NoDups option which makes the NoDups helper
2354
2359
  function largely redundant, with all the functionality except the
2355
2360
  ability to avoid rewriting the file if there are no duplicates, but with
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "exiftool-vendored.exe",
3
- "version": "13.31.0",
3
+ "version": "13.34.0",
4
4
  "description": "Vendored win32 ExifTool for Node.js",
5
5
  "main": "./index.js",
6
6
  "homepage": "https://github.com/photostructure/exiftool-vendored.exe#readme",
@@ -30,6 +30,7 @@
30
30
  "update": "run-p update:*",
31
31
  "update:deps": "ncu -u",
32
32
  "update:exiftool": "node update-exiftool.js",
33
+ "check-version": "node check-version.js",
33
34
  "install:pinact": "go install github.com/suzuki-shunsuke/pinact/cmd/pinact@latest",
34
35
  "update:actions": "pinact run -u",
35
36
  "release": "release-it"
@@ -48,12 +49,12 @@
48
49
  }
49
50
  },
50
51
  "devDependencies": {
51
- "axios": "^1.10.0",
52
- "mocha": "^11.7.0",
52
+ "axios": "^1.11.0",
53
+ "mocha": "^11.7.1",
53
54
  "npm-run-all": "4.1.5",
54
- "prettier": "^3.5.3",
55
- "release-it": "^19.0.3",
56
- "unzipper": "^0.12.3",
55
+ "prettier": "^3.6.2",
56
+ "release-it": "^19.0.4",
57
+ "extract-zip": "^2.0.1",
57
58
  "xml2js": "^0.6.2"
58
59
  }
59
60
  }