exiftool-vendored.exe 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/exiftool_files/Changes +64 -1
- package/bin/exiftool_files/README +47 -46
- package/bin/exiftool_files/exiftool.pl +121 -90
- package/bin/exiftool_files/lib/File/RandomAccess.pm +32 -6
- package/bin/exiftool_files/lib/File/RandomAccess.pod +6 -6
- package/bin/exiftool_files/lib/Image/ExifTool/7Z.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/AAC.pm +8 -6
- package/bin/exiftool_files/lib/Image/ExifTool/AES.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/AFCP.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/AIFF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/APE.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/APP12.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/ASF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Apple.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Audible.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/BMP.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/BPG.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/BZZ.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/BigTIFF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/BuildTagLookup.pm +9 -9
- package/bin/exiftool_files/lib/Image/ExifTool/CBOR.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Canon.pm +7 -6
- package/bin/exiftool_files/lib/Image/ExifTool/CanonCustom.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/CanonRaw.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/CanonVRD.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/CaptureOne.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Casio.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Charset.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/DICOM.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/DJI.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/DNG.pm +5 -5
- package/bin/exiftool_files/lib/Image/ExifTool/DPX.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/DV.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/DarwinCore.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/DjVu.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/EXE.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Exif.pm +4 -3
- package/bin/exiftool_files/lib/Image/ExifTool/FITS.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/FLAC.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/FLIF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/FLIR.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/Fixup.pm +4 -4
- package/bin/exiftool_files/lib/Image/ExifTool/Flash.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/FlashPix.pm +61 -8
- package/bin/exiftool_files/lib/Image/ExifTool/Font.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/FotoStation.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/FujiFilm.pm +9 -4
- package/bin/exiftool_files/lib/Image/ExifTool/GE.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/GIF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/GIMP.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/GPS.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/GeoTiff.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Geotag.pm +4 -4
- package/bin/exiftool_files/lib/Image/ExifTool/GoPro.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/H264.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/HP.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/HTML.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/HtmlDump.pm +7 -5
- package/bin/exiftool_files/lib/Image/ExifTool/ICC_Profile.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/ICO.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/ID3.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/IPTC.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/ISO.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/ITC.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Import.pm +6 -6
- package/bin/exiftool_files/lib/Image/ExifTool/InDesign.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/InfiRay.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/JPEG.pm +5 -2
- package/bin/exiftool_files/lib/Image/ExifTool/JPEGDigest.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/JSON.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/JVC.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/Jpeg2000.pm +67 -17
- package/bin/exiftool_files/lib/Image/ExifTool/Kodak.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/LIF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/LNK.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/cs.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/de.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/es.pm +4 -4
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/fi.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/fr.pm +4 -5
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/it.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/ja.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/ko.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/nl.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/pl.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/ru.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/sk.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/sv.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/tr.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Leaf.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/Lytro.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/M2TS.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MIE.pm +5 -5
- package/bin/exiftool_files/lib/Image/ExifTool/MIEUnits.pod +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MIFF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MISB.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MNG.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MOI.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MPC.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MPEG.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MPF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MRC.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MWG.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MXF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MacOS.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MakerNotes.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Matroska.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Microsoft.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Minolta.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MinoltaRaw.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/Motorola.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +11 -8
- package/bin/exiftool_files/lib/Image/ExifTool/NikonCapture.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/NikonCustom.pm +4 -4
- package/bin/exiftool_files/lib/Image/ExifTool/NikonSettings.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Nintendo.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/OOXML.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Ogg.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/Olympus.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/OpenEXR.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Opus.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Other.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PCX.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PDF.pm +55 -5
- package/bin/exiftool_files/lib/Image/ExifTool/PGF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PICT.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PLIST.pm +4 -4
- package/bin/exiftool_files/lib/Image/ExifTool/PLUS.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PNG.pm +24 -2
- package/bin/exiftool_files/lib/Image/ExifTool/PPM.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PSP.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Palm.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Panasonic.pm +27 -2
- package/bin/exiftool_files/lib/Image/ExifTool/PanasonicRaw.pm +4 -4
- package/bin/exiftool_files/lib/Image/ExifTool/Parrot.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Pentax.pm +32 -11
- package/bin/exiftool_files/lib/Image/ExifTool/PhaseOne.pm +6 -6
- package/bin/exiftool_files/lib/Image/ExifTool/PhotoCD.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Photoshop.pm +4 -4
- package/bin/exiftool_files/lib/Image/ExifTool/PostScript.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/PrintIM.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Qualcomm.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +55 -101
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTimeStream.pl +97 -7
- package/bin/exiftool_files/lib/Image/ExifTool/RIFF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/RSRC.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/RTF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Radiance.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Rawzor.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Real.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Reconyx.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Red.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Ricoh.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/Samsung.pm +5 -5
- package/bin/exiftool_files/lib/Image/ExifTool/Sanyo.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Scalado.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Shift.pl +2 -3
- package/bin/exiftool_files/lib/Image/ExifTool/Shortcuts.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Sigma.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/SigmaRaw.pm +4 -4
- package/bin/exiftool_files/lib/Image/ExifTool/Sony.pm +5 -5
- package/bin/exiftool_files/lib/Image/ExifTool/SonyIDC.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Stim.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/TagInfoXML.pm +4 -4
- package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +3879 -3862
- package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +11439 -11374
- package/bin/exiftool_files/lib/Image/ExifTool/Text.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Theora.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Torrent.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Unknown.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/VCard.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Validate.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Vorbis.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WPG.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WTV.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WriteCanonRaw.pl +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/WriteExif.pl +27 -24
- package/bin/exiftool_files/lib/Image/ExifTool/WriteIPTC.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WritePDF.pl +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/WritePNG.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WritePostScript.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WriteQuickTime.pl +5 -2
- package/bin/exiftool_files/lib/Image/ExifTool/WriteRIFF.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WriteXMP.pl +9 -5
- package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +74 -45
- package/bin/exiftool_files/lib/Image/ExifTool/XISF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +20 -3
- package/bin/exiftool_files/lib/Image/ExifTool/XMP2.pl +10 -1
- package/bin/exiftool_files/lib/Image/ExifTool/XMPStruct.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/ZIP.pm +7 -7
- package/bin/exiftool_files/lib/Image/ExifTool/ZISRAW.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/iWork.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool.pm +59 -28
- package/bin/exiftool_files/lib/Image/ExifTool.pod +81 -68
- package/package.json +6 -6
|
@@ -4,9 +4,72 @@ ExifTool Version History
|
|
|
4
4
|
|
|
5
5
|
RSS feed: https://exiftool.org/rss.xml
|
|
6
6
|
|
|
7
|
-
Note: The most recent production release is Version 12.
|
|
7
|
+
Note: The most recent production release is Version 12.76. (Other versions are
|
|
8
8
|
considered development releases, and are not uploaded to MetaCPAN.)
|
|
9
9
|
|
|
10
|
+
Jan. 31, 2024 - Version 12.76 (production release)
|
|
11
|
+
|
|
12
|
+
- Properly implement patch of 12.45 to avoid duplicating raw data when writing
|
|
13
|
+
Sony ARW images where the raw data is double-referenced as both strips and
|
|
14
|
+
tiles
|
|
15
|
+
- Improved handling of bad offsets in HtmlDump output
|
|
16
|
+
|
|
17
|
+
Jan. 30, 2024 - Version 12.75 (production release)
|
|
18
|
+
|
|
19
|
+
- CORRUPTION WARNING: Fixed bug introduced in 12.45 which could result in
|
|
20
|
+
corrupted Sony ARW images from some newer models when rewriting lossless
|
|
21
|
+
compressed ARW images which were previously edited by 12.44 or earlier
|
|
22
|
+
- Added ability to read C2PA JUMBF metadata from PDF and SVG files
|
|
23
|
+
- Added ability to extract JUMBF metadata as a block
|
|
24
|
+
- Added read support for C2PA (JUMBF-format) files
|
|
25
|
+
- Removed "date before 1970" warning entirely since 64-bit systems should be
|
|
26
|
+
able to handle dates in this range
|
|
27
|
+
- Improved Canon FocusMode decoding
|
|
28
|
+
- Fixed bug introducd in 12.74 which could cause "Undefined subroutine"
|
|
29
|
+
runtime error when reading MIE files
|
|
30
|
+
|
|
31
|
+
Jan. 23, 2024 - Version 12.74
|
|
32
|
+
|
|
33
|
+
- Added a couple of new Nikon lenses (thanks Chris)
|
|
34
|
+
- Added write support for a few new QuickTime Keys tags
|
|
35
|
+
- Decode ShutterCount for Canon EOS R5 (thanks John Moyer)
|
|
36
|
+
- Improved error messages in the case of file read errors
|
|
37
|
+
- Enhanced tag name strings (eg. -if and -p option arguments) to allow values
|
|
38
|
+
of multiple matching tags to be concatenated when a group name of "All" is
|
|
39
|
+
specified
|
|
40
|
+
- Enhanced -p option to add -p- feature which avoids adding trailing newline
|
|
41
|
+
- Changed warning from "Shift results in negative time" to "Shift results in
|
|
42
|
+
date before 1970"
|
|
43
|
+
- Patched calculation of GPSDateTime for the timed metadata in Track3 of
|
|
44
|
+
Garmin videos so the API QuickTimeUTC option is no longer required
|
|
45
|
+
- Fixed conversion error when writing QuickTime:GoogleTrackDuration
|
|
46
|
+
- Fixed misidentification of non-TIFF-format files containing DNGVersion tag
|
|
47
|
+
- Fixed bug where Avoid-ed XMP structures could be created when writing
|
|
48
|
+
another same-named structure
|
|
49
|
+
- Internal Changes:
|
|
50
|
+
- Changed form of all new() calls to accommodate backward
|
|
51
|
+
incompatibilities in recent versions of Perl
|
|
52
|
+
- Changed order of InsertTagValues() arguments
|
|
53
|
+
- DateFmt() now returns value of formatted date/time string
|
|
54
|
+
|
|
55
|
+
Jan. 10, 2024 - Version 12.73
|
|
56
|
+
|
|
57
|
+
- Added write support for Leica XMP-xmpDSA tags
|
|
58
|
+
- Added read support for timed GPS from Yada RoadCam Pro 4K dashcam videos
|
|
59
|
+
- Added read support for PNG cpIp chunk
|
|
60
|
+
- Added range checks on lat/long values when writing QuickTime:GPSCoordinates
|
|
61
|
+
- Decode a number of new values for Ricoh GR III tags
|
|
62
|
+
- Decode a new Leica tag
|
|
63
|
+
- Improved handling of Brotli compression errors
|
|
64
|
+
- Enhanced API NoWarning option to also apply to app "Warning:" outputs
|
|
65
|
+
- Identify PNG Plus files
|
|
66
|
+
- Changed name of Pentax ISOAutoParameters to ISOAutoMinSpeed and improved
|
|
67
|
+
decoding
|
|
68
|
+
- Fixed writing of date/time tags in XMP-xmpMM:Pantry structure
|
|
69
|
+
- API Changes:
|
|
70
|
+
- Added LimitLongValues option to provide control over tags which
|
|
71
|
+
previously had a hard-coded length limit
|
|
72
|
+
|
|
10
73
|
Dec. 29, 2023 - Version 12.72
|
|
11
74
|
|
|
12
75
|
- Added read support for AAC audio files
|
|
@@ -14,49 +14,50 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
|
14
14
|
|
|
15
15
|
File Types
|
|
16
16
|
------------+-------------+-------------+-------------+------------
|
|
17
|
-
360 r/w | DOCX r |
|
|
18
|
-
3FR r | DPX r |
|
|
19
|
-
3G2 r/w | DR4 r/w/c |
|
|
20
|
-
3GP r/w | DSS r |
|
|
21
|
-
7Z r | DV r |
|
|
22
|
-
A r | DVB r/w |
|
|
23
|
-
AA r | DVR-MS r |
|
|
24
|
-
AAC r | DYLIB r |
|
|
25
|
-
AAE r | EIP r |
|
|
26
|
-
AAX r/w | EPS r/w |
|
|
27
|
-
ACR r | EPUB r |
|
|
28
|
-
AFM r | ERF r/w |
|
|
29
|
-
AI r/w | EXE r |
|
|
30
|
-
AIFF r | EXIF r/w/c |
|
|
31
|
-
APE r | EXR r |
|
|
32
|
-
ARQ r/w | EXV r/w/c |
|
|
33
|
-
ARW r/w | F4A/V r/w |
|
|
34
|
-
ASF r | FFF r/w |
|
|
35
|
-
AVI r | FITS r |
|
|
36
|
-
AVIF r/w | FLA r |
|
|
37
|
-
AZW r | FLAC r |
|
|
38
|
-
BMP r | FLIF r/w |
|
|
39
|
-
BPG r | FLV r |
|
|
40
|
-
BTF r | FPF r |
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
17
|
+
360 r/w | DOCX r | ITC r | O r | RSRC r
|
|
18
|
+
3FR r | DPX r | J2C r | ODP r | RTF r
|
|
19
|
+
3G2 r/w | DR4 r/w/c | JNG r/w | ODS r | RW2 r/w
|
|
20
|
+
3GP r/w | DSS r | JP2 r/w | ODT r | RWL r/w
|
|
21
|
+
7Z r | DV r | JPEG r/w | OFR r | RWZ r
|
|
22
|
+
A r | DVB r/w | JSON r | OGG r | RM r
|
|
23
|
+
AA r | DVR-MS r | JXL r | OGV r | SEQ r
|
|
24
|
+
AAC r | DYLIB r | K25 r | ONP r | SKETCH r
|
|
25
|
+
AAE r | EIP r | KDC r | OPUS r | SO r
|
|
26
|
+
AAX r/w | EPS r/w | KEY r | ORF r/w | SR2 r/w
|
|
27
|
+
ACR r | EPUB r | LA r | ORI r/w | SRF r
|
|
28
|
+
AFM r | ERF r/w | LFP r | OTF r | SRW r/w
|
|
29
|
+
AI r/w | EXE r | LIF r | PAC r | SVG r
|
|
30
|
+
AIFF r | EXIF r/w/c | LNK r | PAGES r | SWF r
|
|
31
|
+
APE r | EXR r | LRV r/w | PBM r/w | THM r/w
|
|
32
|
+
ARQ r/w | EXV r/w/c | M2TS r | PCD r | TIFF r/w
|
|
33
|
+
ARW r/w | F4A/V r/w | M4A/V r/w | PCX r | TORRENT r
|
|
34
|
+
ASF r | FFF r/w | MACOS r | PDB r | TTC r
|
|
35
|
+
AVI r | FITS r | MAX r | PDF r/w | TTF r
|
|
36
|
+
AVIF r/w | FLA r | MEF r/w | PEF r/w | TXT r
|
|
37
|
+
AZW r | FLAC r | MIE r/w/c | PFA r | VCF r
|
|
38
|
+
BMP r | FLIF r/w | MIFF r | PFB r | VNT r
|
|
39
|
+
BPG r | FLV r | MKA r | PFM r | VRD r/w/c
|
|
40
|
+
BTF r | FPF r | MKS r | PGF r | VSD r
|
|
41
|
+
C2PA r | FPX r | MKV r | PGM r/w | WAV r
|
|
42
|
+
CHM r | GIF r/w | MNG r/w | PLIST r | WDP r/w
|
|
43
|
+
COS r | GLV r/w | MOBI r | PICT r | WEBP r/w
|
|
44
|
+
CR2 r/w | GPR r/w | MODD r | PMP r | WEBM r
|
|
45
|
+
CR3 r/w | GZ r | MOI r | PNG r/w | WMA r
|
|
46
|
+
CRM r/w | HDP r/w | MOS r/w | PPM r/w | WMV r
|
|
47
|
+
CRW r/w | HDR r | MOV r/w | PPT r | WPG r
|
|
48
|
+
CS1 r/w | HEIC r/w | MP3 r | PPTX r | WTV r
|
|
49
|
+
CSV r | HEIF r/w | MP4 r/w | PS r/w | WV r
|
|
50
|
+
CUR r | HTML r | MPC r | PSB r/w | X3F r/w
|
|
51
|
+
CZI r | ICC r/w/c | MPG r | PSD r/w | XCF r
|
|
52
|
+
DCM r | ICO r | MPO r/w | PSP r | XISF r
|
|
53
|
+
DCP r/w | ICS r | MQV r/w | QTIF r/w | XLS r
|
|
54
|
+
DCR r | IDML r | MRC r | R3D r | XLSX r
|
|
55
|
+
DFONT r | IIQ r/w | MRW r/w | RA r | XMP r/w/c
|
|
56
|
+
DIVX r | IND r/w | MXF r | RAF r/w | ZIP r
|
|
57
|
+
DJVU r | INSP r/w | NEF r/w | RAM r |
|
|
58
|
+
DLL r | INSV r | NKSC r/w | RAR r |
|
|
59
|
+
DNG r/w | INX r | NRW r/w | RAW r/w |
|
|
60
|
+
DOC r | ISO r | NUMBERS r | RIFF r |
|
|
60
61
|
|
|
61
62
|
Meta Information
|
|
62
63
|
----------------------+----------------------+---------------------
|
|
@@ -108,8 +109,8 @@ your home directory, then you would type the following commands in a
|
|
|
108
109
|
terminal window to extract and run ExifTool:
|
|
109
110
|
|
|
110
111
|
cd ~/Desktop
|
|
111
|
-
gzip -dc Image-ExifTool-12.
|
|
112
|
-
cd Image-ExifTool-12.
|
|
112
|
+
gzip -dc Image-ExifTool-12.76.tar.gz | tar -xf -
|
|
113
|
+
cd Image-ExifTool-12.76
|
|
113
114
|
./exiftool t/images/ExifTool.jpg
|
|
114
115
|
|
|
115
116
|
Note: These commands extract meta information from one of the test images.
|
|
@@ -166,7 +167,7 @@ for calculating digest values and providing other features listed below:
|
|
|
166
167
|
|
|
167
168
|
COPYRIGHT AND LICENSE
|
|
168
169
|
|
|
169
|
-
Copyright 2003-
|
|
170
|
+
Copyright 2003-2024, Phil Harvey
|
|
170
171
|
|
|
171
172
|
This is free software; you can redistribute it and/or modify it under the
|
|
172
173
|
same terms as Perl itself.
|
|
@@ -11,7 +11,7 @@ use strict;
|
|
|
11
11
|
use warnings;
|
|
12
12
|
require 5.004;
|
|
13
13
|
|
|
14
|
-
my $version = '12.
|
|
14
|
+
my $version = '12.76';
|
|
15
15
|
|
|
16
16
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
|
17
17
|
my $exePath;
|
|
@@ -49,6 +49,7 @@ sub ConvertBinary($);
|
|
|
49
49
|
sub IsEqual($$);
|
|
50
50
|
sub Infile($;$);
|
|
51
51
|
sub AddSetTagsFile($;$);
|
|
52
|
+
sub Warning($$);
|
|
52
53
|
sub DoSetFromFile($$$);
|
|
53
54
|
sub CleanFilename($);
|
|
54
55
|
sub SetWindowTitle($);
|
|
@@ -60,7 +61,7 @@ sub PreserveTime();
|
|
|
60
61
|
sub AbsPath($);
|
|
61
62
|
sub MyConvertFileName($$);
|
|
62
63
|
sub SuggestedExtension($$$);
|
|
63
|
-
sub LoadPrintFormat(
|
|
64
|
+
sub LoadPrintFormat($;$);
|
|
64
65
|
sub FilenameSPrintf($;$@);
|
|
65
66
|
sub NextUnusedFilename($;$);
|
|
66
67
|
sub CreateDirectory($);
|
|
@@ -262,7 +263,7 @@ my %optArgs = (
|
|
|
262
263
|
'-lang' => 0, # (optional arg; cannot begin with "-")
|
|
263
264
|
'-listitem' => 1,
|
|
264
265
|
'-o' => 1, '-out' => 1,
|
|
265
|
-
'-p' => 1, '-printformat' => 1,
|
|
266
|
+
'-p' => 1, '-printformat' => 1, '-p-' => 1, '-printformat-' => 1,
|
|
266
267
|
'-P' => 0,
|
|
267
268
|
'-password' => 1,
|
|
268
269
|
'-require' => 1,
|
|
@@ -585,7 +586,7 @@ if ($^O eq 'MSWin32' and eval { require File::Glob }) {
|
|
|
585
586
|
$doGlob = 1;
|
|
586
587
|
}
|
|
587
588
|
|
|
588
|
-
$mt =
|
|
589
|
+
$mt = Image::ExifTool->new; # create ExifTool object
|
|
589
590
|
|
|
590
591
|
# don't extract duplicates by default unless set by UserDefined::Options
|
|
591
592
|
$mt->Options(Duplicates => 0) unless %Image::ExifTool::UserDefined::Options
|
|
@@ -1145,10 +1146,10 @@ for (;;) {
|
|
|
1145
1146
|
}
|
|
1146
1147
|
/^overwrite_original$/i and $overwriteOrig = 1, next;
|
|
1147
1148
|
/^overwrite_original_in_place$/i and $overwriteOrig = 2, next;
|
|
1148
|
-
if (/^p$/ or
|
|
1149
|
+
if (/^p(-?)$/ or /^printformat(-?)$/i) {
|
|
1149
1150
|
my $fmt = shift;
|
|
1150
1151
|
if ($pass) {
|
|
1151
|
-
LoadPrintFormat($fmt);
|
|
1152
|
+
LoadPrintFormat($fmt, $1);
|
|
1152
1153
|
# load MWG module now if necessary
|
|
1153
1154
|
if (not $useMWG and grep /^mwg:/i, @requestTags) {
|
|
1154
1155
|
$useMWG = 1;
|
|
@@ -1157,7 +1158,7 @@ for (;;) {
|
|
|
1157
1158
|
}
|
|
1158
1159
|
} else {
|
|
1159
1160
|
# defer to next pass so the filename charset is available
|
|
1160
|
-
push @nextPass,
|
|
1161
|
+
push @nextPass, "-$_", $fmt;
|
|
1161
1162
|
}
|
|
1162
1163
|
next;
|
|
1163
1164
|
}
|
|
@@ -1639,7 +1640,10 @@ if (@newValues) {
|
|
|
1639
1640
|
if ($tag =~ /^(All)?TagsFromFile$/i) {
|
|
1640
1641
|
defined $newVal or Error("Need file name for -tagsFromFile\n"), next Command;
|
|
1641
1642
|
++$isWriting;
|
|
1642
|
-
if ($newVal eq '@' or not defined FilenameSPrintf($newVal)
|
|
1643
|
+
if ($newVal eq '@' or not defined FilenameSPrintf($newVal) or
|
|
1644
|
+
# can't set tags yet if we are using tags from other files with the -fileNUM option
|
|
1645
|
+
grep /\bfile\d+:/i, @{$setTags{$newVal}})
|
|
1646
|
+
{
|
|
1643
1647
|
push @dynamicFiles, $newVal;
|
|
1644
1648
|
next; # set tags from dynamic file later
|
|
1645
1649
|
}
|
|
@@ -1699,7 +1703,7 @@ if (@newValues) {
|
|
|
1699
1703
|
my ($rtn, $wrn) = $mt->SetNewValue($tag, $newVal, %opts);
|
|
1700
1704
|
$needSave = 1;
|
|
1701
1705
|
++$isWriting if $rtn;
|
|
1702
|
-
$wrn and
|
|
1706
|
+
$wrn and Warning($mt, $wrn);
|
|
1703
1707
|
}
|
|
1704
1708
|
# exclude specified tags
|
|
1705
1709
|
foreach (@exclude) {
|
|
@@ -1785,7 +1789,7 @@ if (not $altEnc and $mt->Options('Lang') ne 'en' and eval { require Encode }) {
|
|
|
1785
1789
|
if (@fileOrder) {
|
|
1786
1790
|
my @allFiles;
|
|
1787
1791
|
ProcessFiles($mt, \@allFiles);
|
|
1788
|
-
my $sortTool =
|
|
1792
|
+
my $sortTool = Image::ExifTool->new;
|
|
1789
1793
|
$sortTool->Options(FastScan => $fileOrderFast) if $fileOrderFast;
|
|
1790
1794
|
$sortTool->Options(PrintConv => $mt->Options('PrintConv'));
|
|
1791
1795
|
$sortTool->Options(Duplicates => 0);
|
|
@@ -2073,7 +2077,7 @@ sub GetImageInfo($$)
|
|
|
2073
2077
|
@foundTags = ('*', @tags) if @tags;
|
|
2074
2078
|
$info = $et->ImageInfo(Infile($pipe,$isWriting), \@foundTags, $opts);
|
|
2075
2079
|
foreach $condition (@condition) {
|
|
2076
|
-
my $cond = $et->InsertTagValues(\@foundTags,
|
|
2080
|
+
my $cond = $et->InsertTagValues($condition, \@foundTags, \%info);
|
|
2077
2081
|
{
|
|
2078
2082
|
# set package so eval'd functions are in Image::ExifTool namespace
|
|
2079
2083
|
package Image::ExifTool;
|
|
@@ -2274,7 +2278,7 @@ sub GetImageInfo($$)
|
|
|
2274
2278
|
my @lines;
|
|
2275
2279
|
my $opt = $type eq 'IF' ? 'Silent' : 'Warn'; # silence "IF" warnings
|
|
2276
2280
|
foreach (@$prf) {
|
|
2277
|
-
my $line = $et->InsertTagValues(\@foundTags, $
|
|
2281
|
+
my $line = $et->InsertTagValues($_, \@foundTags, $opt, $grp, $cache);
|
|
2278
2282
|
if ($type eq 'IF') {
|
|
2279
2283
|
$skipBody = 1 unless defined $line;
|
|
2280
2284
|
} elsif (defined $line) {
|
|
@@ -2707,12 +2711,12 @@ TAG: foreach $tag (@foundTags) {
|
|
|
2707
2711
|
} elsif ($fixLen == 1) {
|
|
2708
2712
|
$padLen -= length Encode::decode_utf8($desc);
|
|
2709
2713
|
} else {
|
|
2710
|
-
my $gcstr = eval {
|
|
2714
|
+
my $gcstr = eval { Unicode::GCString->new(Encode::decode_utf8($desc)) };
|
|
2711
2715
|
if ($gcstr) {
|
|
2712
2716
|
$padLen -= $gcstr->columns;
|
|
2713
2717
|
} else {
|
|
2714
2718
|
$padLen -= length Encode::decode_utf8($desc);
|
|
2715
|
-
|
|
2719
|
+
Warning($et, 'Unicode::GCString problem. Columns may be misaligned');
|
|
2716
2720
|
$fixLen = 1;
|
|
2717
2721
|
}
|
|
2718
2722
|
}
|
|
@@ -2982,7 +2986,7 @@ sub SetImageInfo($$$)
|
|
|
2982
2986
|
my $newFileName = $et->GetNewValues('FileName');
|
|
2983
2987
|
my $newDir = $et->GetNewValues('Directory');
|
|
2984
2988
|
if (defined $newFileName and not length $newFileName) {
|
|
2985
|
-
|
|
2989
|
+
Warning($et,"New file name is empty - $infile");
|
|
2986
2990
|
undef $newFileName;
|
|
2987
2991
|
}
|
|
2988
2992
|
if (defined $testName) {
|
|
@@ -3633,7 +3637,7 @@ sub Infile($;$)
|
|
|
3633
3637
|
if ($rafStdin) {
|
|
3634
3638
|
$rafStdin->Seek(0); # rewind
|
|
3635
3639
|
} elsif (open RAF_STDIN, '-') {
|
|
3636
|
-
$rafStdin =
|
|
3640
|
+
$rafStdin = File::RandomAccess->new(\*RAF_STDIN);
|
|
3637
3641
|
$rafStdin->BinMode();
|
|
3638
3642
|
}
|
|
3639
3643
|
return $rafStdin if $rafStdin;
|
|
@@ -3641,9 +3645,22 @@ sub Infile($;$)
|
|
|
3641
3645
|
return $file;
|
|
3642
3646
|
}
|
|
3643
3647
|
|
|
3648
|
+
#------------------------------------------------------------------------------
|
|
3649
|
+
# Issue warning to stderr, adding leading "Warning: " and trailing newline
|
|
3650
|
+
# if the warning isn't suppressed by the API NoWarning option
|
|
3651
|
+
# Inputs: 0) ExifTool ref, 1) warning string
|
|
3652
|
+
sub Warning($$)
|
|
3653
|
+
{
|
|
3654
|
+
my ($et, $str) = @_;
|
|
3655
|
+
my $noWarn = $et->Options('NoWarning');
|
|
3656
|
+
if (not defined $noWarn or not eval { $str =~ /$noWarn/ }) {
|
|
3657
|
+
Warn "Warning: $str\n";
|
|
3658
|
+
}
|
|
3659
|
+
}
|
|
3660
|
+
|
|
3644
3661
|
#------------------------------------------------------------------------------
|
|
3645
3662
|
# Set new values from file
|
|
3646
|
-
# Inputs: 0)
|
|
3663
|
+
# Inputs: 0) ExifTool ref, 1) filename, 2) reference to list of values to set
|
|
3647
3664
|
# Returns: 0 on error (and increments $countBadWr)
|
|
3648
3665
|
sub DoSetFromFile($$$)
|
|
3649
3666
|
{
|
|
@@ -3656,19 +3673,18 @@ sub DoSetFromFile($$$)
|
|
|
3656
3673
|
# delete all error and warning tags
|
|
3657
3674
|
my @warns = grep /^(Error|Warning)\b/, keys %$info;
|
|
3658
3675
|
$numSet -= scalar(@warns);
|
|
3659
|
-
# issue a warning for the main error
|
|
3660
|
-
|
|
3661
|
-
|
|
3662
|
-
|
|
3663
|
-
|
|
3664
|
-
}
|
|
3676
|
+
# issue a warning only for the main error
|
|
3677
|
+
my $err = $$info{Error};
|
|
3678
|
+
delete $$info{$_} foreach @warns;
|
|
3679
|
+
my $noWarn = $et->Options('NoWarning');
|
|
3680
|
+
$$info{Warning} = $err unless defined $noWarn and eval { $err =~ /$noWarn/ };
|
|
3665
3681
|
} elsif ($$info{Warning}) {
|
|
3666
3682
|
my $warns = 1;
|
|
3667
3683
|
++$warns while $$info{"Warning ($warns)"};
|
|
3668
3684
|
$numSet -= $warns;
|
|
3669
3685
|
}
|
|
3670
3686
|
PrintErrors($et, $info, $file) and EFile($file), ++$countBadWr, return 0;
|
|
3671
|
-
|
|
3687
|
+
Warning($et,"No writable tags set from $file") unless $numSet;
|
|
3672
3688
|
return 1;
|
|
3673
3689
|
}
|
|
3674
3690
|
|
|
@@ -3814,7 +3830,7 @@ sub ScanDir($$;$)
|
|
|
3814
3830
|
if ($evalWarning) {
|
|
3815
3831
|
chomp $evalWarning;
|
|
3816
3832
|
$evalWarning =~ s/ at .*//s;
|
|
3817
|
-
|
|
3833
|
+
Warning($et,"[Win32::FindFile] $evalWarning - $dir");
|
|
3818
3834
|
$winSurrogate = 1 if $evalWarning =~ /surrogate/;
|
|
3819
3835
|
} else {
|
|
3820
3836
|
$et->Options(CharsetFileName => 'UTF8'); # now using UTF8
|
|
@@ -4090,6 +4106,10 @@ sub SuggestedExtension($$$)
|
|
|
4090
4106
|
$ext = 'pict';
|
|
4091
4107
|
} elsif ($$valPt =~ /^\xff\x0a|\0\0\0\x0cJXL \x0d\x0a......ftypjxl/s) {
|
|
4092
4108
|
$ext = 'jxl';
|
|
4109
|
+
} elsif ($$valPt =~ /^.{4}jumb\0.{3}jumdc2pa/s) {
|
|
4110
|
+
$ext = 'c2pa';
|
|
4111
|
+
} elsif ($tag eq 'JUMBF') {
|
|
4112
|
+
$ext = 'jumbf';
|
|
4093
4113
|
} else {
|
|
4094
4114
|
$ext = 'dat';
|
|
4095
4115
|
}
|
|
@@ -4098,12 +4118,12 @@ sub SuggestedExtension($$$)
|
|
|
4098
4118
|
|
|
4099
4119
|
#------------------------------------------------------------------------------
|
|
4100
4120
|
# Load print format file
|
|
4101
|
-
# Inputs: 0) file name
|
|
4121
|
+
# Inputs: 0) file name, 1) flag to avoid adding newline to input argument
|
|
4102
4122
|
# - saves lines of file to %printFmt list
|
|
4103
4123
|
# - adds tag names to @tags list
|
|
4104
|
-
sub LoadPrintFormat(
|
|
4124
|
+
sub LoadPrintFormat($;$)
|
|
4105
4125
|
{
|
|
4106
|
-
my $arg =
|
|
4126
|
+
my ($arg, $noNL) = @_;
|
|
4107
4127
|
if (not defined $arg) {
|
|
4108
4128
|
Error "Must specify file or expression for -p option\n";
|
|
4109
4129
|
} elsif ($arg !~ /\n/ and -f $arg and $mt->Open(\*FMT_FILE, $arg)) {
|
|
@@ -4112,7 +4132,8 @@ sub LoadPrintFormat($)
|
|
|
4112
4132
|
}
|
|
4113
4133
|
close(FMT_FILE);
|
|
4114
4134
|
} else {
|
|
4115
|
-
|
|
4135
|
+
$arg .= "\n" unless $noNL;
|
|
4136
|
+
AddPrintFormat($arg);
|
|
4116
4137
|
}
|
|
4117
4138
|
}
|
|
4118
4139
|
|
|
@@ -4276,7 +4297,7 @@ sub CreateDirectory($)
|
|
|
4276
4297
|
return 0;
|
|
4277
4298
|
}
|
|
4278
4299
|
unless ($k32CreateDir) {
|
|
4279
|
-
$k32CreateDir =
|
|
4300
|
+
$k32CreateDir = Win32::API->new('KERNEL32', 'CreateDirectoryW', 'PP', 'I');
|
|
4280
4301
|
}
|
|
4281
4302
|
$success = $k32CreateDir->Call($d2, 0) if $k32CreateDir;
|
|
4282
4303
|
} else {
|
|
@@ -4636,49 +4657,50 @@ DESCRIPTION
|
|
|
4636
4657
|
|
|
4637
4658
|
File Types
|
|
4638
4659
|
------------+-------------+-------------+-------------+------------
|
|
4639
|
-
360 r/w | DOCX r |
|
|
4640
|
-
3FR r | DPX r |
|
|
4641
|
-
3G2 r/w | DR4 r/w/c |
|
|
4642
|
-
3GP r/w | DSS r |
|
|
4643
|
-
7Z r | DV r |
|
|
4644
|
-
A r | DVB r/w |
|
|
4645
|
-
AA r | DVR-MS r |
|
|
4646
|
-
AAC r | DYLIB r |
|
|
4647
|
-
AAE r | EIP r |
|
|
4648
|
-
AAX r/w | EPS r/w |
|
|
4649
|
-
ACR r | EPUB r |
|
|
4650
|
-
AFM r | ERF r/w |
|
|
4651
|
-
AI r/w | EXE r |
|
|
4652
|
-
AIFF r | EXIF r/w/c |
|
|
4653
|
-
APE r | EXR r |
|
|
4654
|
-
ARQ r/w | EXV r/w/c |
|
|
4655
|
-
ARW r/w | F4A/V r/w |
|
|
4656
|
-
ASF r | FFF r/w |
|
|
4657
|
-
AVI r | FITS r |
|
|
4658
|
-
AVIF r/w | FLA r |
|
|
4659
|
-
AZW r | FLAC r |
|
|
4660
|
-
BMP r | FLIF r/w |
|
|
4661
|
-
BPG r | FLV r |
|
|
4662
|
-
BTF r | FPF r |
|
|
4663
|
-
|
|
4664
|
-
|
|
4665
|
-
|
|
4666
|
-
|
|
4667
|
-
|
|
4668
|
-
|
|
4669
|
-
|
|
4670
|
-
|
|
4671
|
-
|
|
4672
|
-
|
|
4673
|
-
|
|
4674
|
-
|
|
4675
|
-
|
|
4676
|
-
|
|
4677
|
-
|
|
4678
|
-
|
|
4679
|
-
|
|
4680
|
-
|
|
4681
|
-
|
|
4660
|
+
360 r/w | DOCX r | ITC r | O r | RSRC r
|
|
4661
|
+
3FR r | DPX r | J2C r | ODP r | RTF r
|
|
4662
|
+
3G2 r/w | DR4 r/w/c | JNG r/w | ODS r | RW2 r/w
|
|
4663
|
+
3GP r/w | DSS r | JP2 r/w | ODT r | RWL r/w
|
|
4664
|
+
7Z r | DV r | JPEG r/w | OFR r | RWZ r
|
|
4665
|
+
A r | DVB r/w | JSON r | OGG r | RM r
|
|
4666
|
+
AA r | DVR-MS r | JXL r | OGV r | SEQ r
|
|
4667
|
+
AAC r | DYLIB r | K25 r | ONP r | SKETCH r
|
|
4668
|
+
AAE r | EIP r | KDC r | OPUS r | SO r
|
|
4669
|
+
AAX r/w | EPS r/w | KEY r | ORF r/w | SR2 r/w
|
|
4670
|
+
ACR r | EPUB r | LA r | ORI r/w | SRF r
|
|
4671
|
+
AFM r | ERF r/w | LFP r | OTF r | SRW r/w
|
|
4672
|
+
AI r/w | EXE r | LIF r | PAC r | SVG r
|
|
4673
|
+
AIFF r | EXIF r/w/c | LNK r | PAGES r | SWF r
|
|
4674
|
+
APE r | EXR r | LRV r/w | PBM r/w | THM r/w
|
|
4675
|
+
ARQ r/w | EXV r/w/c | M2TS r | PCD r | TIFF r/w
|
|
4676
|
+
ARW r/w | F4A/V r/w | M4A/V r/w | PCX r | TORRENT r
|
|
4677
|
+
ASF r | FFF r/w | MACOS r | PDB r | TTC r
|
|
4678
|
+
AVI r | FITS r | MAX r | PDF r/w | TTF r
|
|
4679
|
+
AVIF r/w | FLA r | MEF r/w | PEF r/w | TXT r
|
|
4680
|
+
AZW r | FLAC r | MIE r/w/c | PFA r | VCF r
|
|
4681
|
+
BMP r | FLIF r/w | MIFF r | PFB r | VNT r
|
|
4682
|
+
BPG r | FLV r | MKA r | PFM r | VRD r/w/c
|
|
4683
|
+
BTF r | FPF r | MKS r | PGF r | VSD r
|
|
4684
|
+
C2PA r | FPX r | MKV r | PGM r/w | WAV r
|
|
4685
|
+
CHM r | GIF r/w | MNG r/w | PLIST r | WDP r/w
|
|
4686
|
+
COS r | GLV r/w | MOBI r | PICT r | WEBP r/w
|
|
4687
|
+
CR2 r/w | GPR r/w | MODD r | PMP r | WEBM r
|
|
4688
|
+
CR3 r/w | GZ r | MOI r | PNG r/w | WMA r
|
|
4689
|
+
CRM r/w | HDP r/w | MOS r/w | PPM r/w | WMV r
|
|
4690
|
+
CRW r/w | HDR r | MOV r/w | PPT r | WPG r
|
|
4691
|
+
CS1 r/w | HEIC r/w | MP3 r | PPTX r | WTV r
|
|
4692
|
+
CSV r | HEIF r/w | MP4 r/w | PS r/w | WV r
|
|
4693
|
+
CUR r | HTML r | MPC r | PSB r/w | X3F r/w
|
|
4694
|
+
CZI r | ICC r/w/c | MPG r | PSD r/w | XCF r
|
|
4695
|
+
DCM r | ICO r | MPO r/w | PSP r | XISF r
|
|
4696
|
+
DCP r/w | ICS r | MQV r/w | QTIF r/w | XLS r
|
|
4697
|
+
DCR r | IDML r | MRC r | R3D r | XLSX r
|
|
4698
|
+
DFONT r | IIQ r/w | MRW r/w | RA r | XMP r/w/c
|
|
4699
|
+
DIVX r | IND r/w | MXF r | RAF r/w | ZIP r
|
|
4700
|
+
DJVU r | INSP r/w | NEF r/w | RAM r |
|
|
4701
|
+
DLL r | INSV r | NKSC r/w | RAR r |
|
|
4702
|
+
DNG r/w | INX r | NRW r/w | RAW r/w |
|
|
4703
|
+
DOC r | ISO r | NUMBERS r | RIFF r |
|
|
4682
4704
|
|
|
4683
4705
|
Meta Information
|
|
4684
4706
|
----------------------+----------------------+---------------------
|
|
@@ -4743,7 +4765,7 @@ OPTIONS
|
|
|
4743
4765
|
-lang [LANG] Set current language
|
|
4744
4766
|
-listItem INDEX Extract specific item from a list
|
|
4745
4767
|
-n (--printConv) No print conversion
|
|
4746
|
-
-p
|
|
4768
|
+
-p[-] STR (-printFormat) Print output in specified format
|
|
4747
4769
|
-php Export tags as a PHP Array
|
|
4748
4770
|
-s[NUM] (-short) Short output format (-s for tag names)
|
|
4749
4771
|
-S (-veryShort) Very short output format
|
|
@@ -5566,23 +5588,24 @@ OPTIONS
|
|
|
5566
5588
|
> exiftool -Orientation=6 -n a.jpg
|
|
5567
5589
|
> exiftool -Orientation#=6 a.jpg
|
|
5568
5590
|
|
|
5569
|
-
-p *
|
|
5570
|
-
Print output in the format specified by the given
|
|
5591
|
+
-p[-] *STR* or *FMTFILE* (-printFormat)
|
|
5592
|
+
Print output in the format specified by the given string or file.
|
|
5571
5593
|
The argument is interpreted as a string unless a file of that name
|
|
5572
5594
|
exists, in which case the string is loaded from the contents of the
|
|
5573
|
-
file. Tag names in the format
|
|
5595
|
+
file. Tag names in the format string or file begin with a "$"
|
|
5574
5596
|
symbol and may contain leading group names and/or a trailing "#"
|
|
5575
5597
|
(to disable print conversion). Case is not significant. Braces "{}"
|
|
5576
5598
|
may be used around the tag name to separate it from subsequent text
|
|
5577
5599
|
(and must be used if subsequent text begins with an alphanumeric
|
|
5578
5600
|
character, hyphen, underline, colon or number sign). Use $$ to
|
|
5579
|
-
represent a "$" symbol, and $/ for a newline.
|
|
5580
|
-
|
|
5581
|
-
|
|
5582
|
-
|
|
5583
|
-
|
|
5584
|
-
|
|
5585
|
-
|
|
5601
|
+
represent a "$" symbol, and $/ for a newline. When the string
|
|
5602
|
+
argument is used (ie. *STR*), a newline is added to the end of the
|
|
5603
|
+
string unless -p- is specified.
|
|
5604
|
+
|
|
5605
|
+
Multiple -p options may be used. Lines beginning with "#[HEAD]" and
|
|
5606
|
+
"#[TAIL]" are output before the first processed file and after the
|
|
5607
|
+
last processed file respectively. Lines beginning with "#[SECT]"
|
|
5608
|
+
and "#[ENDS]" are output before and after each section of files. A
|
|
5586
5609
|
section is defined as a group of consecutive files with the same
|
|
5587
5610
|
section header (eg. files are grouped by directory if "#[SECT]"
|
|
5588
5611
|
contains $directory). Lines beginning with "#[BODY]" and lines not
|
|
@@ -5604,16 +5627,22 @@ OPTIONS
|
|
|
5604
5627
|
|
|
5605
5628
|
produces output like this:
|
|
5606
5629
|
|
|
5607
|
-
-- Generated by ExifTool 12.
|
|
5630
|
+
-- Generated by ExifTool 12.76 --
|
|
5608
5631
|
File: a.jpg - 2003:10:31 15:44:19
|
|
5609
5632
|
(f/5.6, 1/60s, ISO 100)
|
|
5610
5633
|
File: b.jpg - 2006:05:23 11:57:38
|
|
5611
5634
|
(f/8.0, 1/13s, ISO 100)
|
|
5612
5635
|
-- end --
|
|
5613
5636
|
|
|
5614
|
-
The values of List-type tags with multiple items
|
|
5615
|
-
representing multiple tags
|
|
5616
|
-
|
|
5637
|
+
The values of List-type tags with multiple items, Shortcut tags
|
|
5638
|
+
representing multiple tags, and matching tags when the "All" group
|
|
5639
|
+
is specified are joined according the -sep option setting when
|
|
5640
|
+
interpolated in the string. (Note that when "All" is used as a
|
|
5641
|
+
group name, dupicate tags are included regardless of the Duplicates
|
|
5642
|
+
option setting.) When "All" is used as a tag name, a value of 1 is
|
|
5643
|
+
returned if any tag exists in the specified group, or 0 otherwise
|
|
5644
|
+
(unless the "All" group is also specified, in which case the values
|
|
5645
|
+
of all matching tags are joined).
|
|
5617
5646
|
|
|
5618
5647
|
When -ee (-extractEmbedded) is combined with -p, embedded documents
|
|
5619
5648
|
are effectively processed as separate input files.
|
|
@@ -6540,7 +6569,9 @@ OPTIONS
|
|
|
6540
6569
|
with "^=". If *OPT* is not specified a list of available options is
|
|
6541
6570
|
returned. The option name is not case senstive, but the option
|
|
6542
6571
|
values are. See Image::ExifTool Options for option details. This
|
|
6543
|
-
overrides API options set via the config file.
|
|
6572
|
+
overrides API options set via the config file. Note that the
|
|
6573
|
+
exiftool app sets some API options internally, and attempts to
|
|
6574
|
+
change these via the command line will have no effect.
|
|
6544
6575
|
|
|
6545
6576
|
-common_args
|
|
6546
6577
|
Specifies that all arguments following this option are common to
|
|
@@ -7348,7 +7379,7 @@ EXIT STATUS
|
|
|
7348
7379
|
the commands if -execute was used).
|
|
7349
7380
|
|
|
7350
7381
|
AUTHOR
|
|
7351
|
-
Copyright 2003-
|
|
7382
|
+
Copyright 2003-2024, Phil Harvey
|
|
7352
7383
|
|
|
7353
7384
|
This is free software; you can redistribute it and/or modify it under
|
|
7354
7385
|
the same terms as Perl itself.
|