exiftool-vendored.exe 12.38.0 → 12.41.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 -247
- package/bin/exiftool_files/Changes +62 -0
- package/bin/exiftool_files/README +45 -45
- package/bin/exiftool_files/arg_files/exif2xmp.args +5 -0
- package/bin/exiftool_files/arg_files/xmp2exif.args +6 -0
- package/bin/exiftool_files/config_files/acdsee.config +6 -6
- package/bin/exiftool_files/config_files/photoshop_paths.config +30 -7
- package/bin/exiftool_files/config_files/picasa_faces.config +1 -1
- package/bin/exiftool_files/config_files/pix4d.config +2 -2
- package/bin/exiftool_files/config_files/tiff_version.config +2 -2
- package/bin/exiftool_files/exiftool.pl +97 -65
- package/bin/exiftool_files/lib/File/RandomAccess.pm +1 -1
- package/bin/exiftool_files/lib/File/RandomAccess.pod +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/AES.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/AFCP.pm +1 -1
- 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 +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/BigTIFF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/BuildTagLookup.pm +6 -4
- package/bin/exiftool_files/lib/Image/ExifTool/CBOR.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Canon.pm +79 -5
- 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 +1 -1
- 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 +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/DJI.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/DNG.pm +1 -1
- 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 +53 -21
- 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 +16 -4
- package/bin/exiftool_files/lib/Image/ExifTool/Fixup.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Flash.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/FlashPix.pm +1 -1
- 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 +1 -1
- 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 -3
- 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 +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/ICC_Profile.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/ID3.pm +1 -1
- 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 +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/InDesign.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/JPEG.pm +6 -2
- package/bin/exiftool_files/lib/Image/ExifTool/JPEGDigest.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/JSON.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/JVC.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Jpeg2000.pm +1 -1
- 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 +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/fi.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/fr.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/it.pm +1 -1
- 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/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 +1 -1
- 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 +1 -1
- 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/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 +10 -10
- package/bin/exiftool_files/lib/Image/ExifTool/MakerNotes.pm +13 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Matroska.pm +9 -5
- 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 +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Motorola.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +924 -184
- package/bin/exiftool_files/lib/Image/ExifTool/NikonCapture.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/NikonCustom.pm +519 -6
- package/bin/exiftool_files/lib/Image/ExifTool/NikonSettings.pm +17 -18
- 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 +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Olympus.pm +8 -7
- 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 +1 -1
- 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 +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PLUS.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PNG.pm +28 -8
- 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 +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Parrot.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Pentax.pm +3 -2
- package/bin/exiftool_files/lib/Image/ExifTool/PhaseOne.pm +1 -1
- 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 +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PostScript.pm +1 -1
- 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 +10 -6
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTimeStream.pl +16 -5
- package/bin/exiftool_files/lib/Image/ExifTool/RIFF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/RSRC.pm +1 -1
- 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 +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Samsung.pm +6 -2
- 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 +3 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Shortcuts.pm +3 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Sigma.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/SigmaRaw.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Sony.pm +11 -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 +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +6382 -6290
- package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +340 -21
- 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/WTV.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WriteExif.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WriteIPTC.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WritePDF.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WritePNG.pl +30 -10
- 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 +9 -4
- package/bin/exiftool_files/lib/Image/ExifTool/WriteXMP.pl +3 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +6 -5
- package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +49 -23
- package/bin/exiftool_files/lib/Image/ExifTool/XMP2.pl +3 -2
- package/bin/exiftool_files/lib/Image/ExifTool/XMPStruct.pl +22 -8
- package/bin/exiftool_files/lib/Image/ExifTool/ZIP.pm +10 -2
- 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 +21 -5
- package/bin/exiftool_files/lib/Image/ExifTool.pod +71 -69
- package/package.json +14 -3
|
@@ -14,48 +14,48 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
|
14
14
|
|
|
15
15
|
File Types
|
|
16
16
|
------------+-------------+-------------+-------------+------------
|
|
17
|
-
360 r/w | DR4 r/w/c | JNG r/w |
|
|
18
|
-
3FR r | DSS r | JP2 r/w |
|
|
19
|
-
3G2 r/w | DV r | JPEG r/w |
|
|
20
|
-
3GP r/w | DVB r/w | JSON r |
|
|
21
|
-
A r | DVR-MS r | JXL r |
|
|
22
|
-
AA r | DYLIB r | K25 r |
|
|
23
|
-
AAE r | EIP r | KDC r |
|
|
24
|
-
AAX r/w | EPS r/w | KEY r |
|
|
25
|
-
ACR r | EPUB r | LA r |
|
|
26
|
-
AFM r | ERF r/w | LFP r |
|
|
27
|
-
AI r/w | EXE r | LIF r |
|
|
28
|
-
AIFF r | EXIF r/w/c | LNK r |
|
|
29
|
-
APE r | EXR r | LRV r/w |
|
|
30
|
-
ARQ r/w | EXV r/w/c | M2TS r |
|
|
31
|
-
ARW r/w | F4A/V r/w | M4A/V r/w |
|
|
32
|
-
ASF r | FFF r/w | MACOS r |
|
|
33
|
-
AVI r | FITS r | MAX r |
|
|
34
|
-
AVIF r/w | FLA r | MEF r/w |
|
|
35
|
-
AZW r | FLAC r | MIE r/w/ |
|
|
36
|
-
BMP r | FLIF r/w | MIFF r c |
|
|
37
|
-
BPG r | FLV r | MKA r |
|
|
38
|
-
BTF r | FPF r | MKS r |
|
|
39
|
-
CHM r | FPX r | MKV r |
|
|
40
|
-
COS r | GIF r/w | MNG r/w |
|
|
41
|
-
CR2 r/w | GPR r/w | MOBI r |
|
|
42
|
-
CR3 r/w | GZ r | MODD r |
|
|
43
|
-
CRM r/w | HDP r/w | MOI r |
|
|
44
|
-
CRW r/w | HDR r | MOS r/w |
|
|
45
|
-
CS1 r/w | HEIC r/w | MOV r/w |
|
|
46
|
-
CSV r | HEIF r/w | MP3 r |
|
|
47
|
-
CZI r | HTML r | MP4 r/w |
|
|
48
|
-
DCM r | ICC r/w/c | MPC r |
|
|
49
|
-
DCP r/w | ICS r | MPG r |
|
|
50
|
-
DCR r | IDML r | MPO r/w |
|
|
51
|
-
DFONT r | IIQ r/w | MQV r/w |
|
|
52
|
-
DIVX r | IND r/w | MRC r |
|
|
53
|
-
DJVU r | INSP r/w | MRW r/w |
|
|
54
|
-
DLL r | INSV r | MXF r |
|
|
55
|
-
DNG r/w | INX r | NEF r/w |
|
|
56
|
-
DOC r | ISO r |
|
|
57
|
-
DOCX r | ITC r |
|
|
58
|
-
DPX r | J2C r |
|
|
17
|
+
360 r/w | DR4 r/w/c | JNG r/w | O r | RAW r/w
|
|
18
|
+
3FR r | DSS r | JP2 r/w | ODP r | RIFF r
|
|
19
|
+
3G2 r/w | DV r | JPEG r/w | ODS r | RSRC r
|
|
20
|
+
3GP r/w | DVB r/w | JSON r | ODT r | RTF r
|
|
21
|
+
A r | DVR-MS r | JXL r | OFR r | RW2 r/w
|
|
22
|
+
AA r | DYLIB r | K25 r | OGG r | RWL r/w
|
|
23
|
+
AAE r | EIP r | KDC r | OGV r | RWZ r
|
|
24
|
+
AAX r/w | EPS r/w | KEY r | ONP r | RM r
|
|
25
|
+
ACR r | EPUB r | LA r | OPUS r | SEQ r
|
|
26
|
+
AFM r | ERF r/w | LFP r | ORF r/w | SKETCH r
|
|
27
|
+
AI r/w | EXE r | LIF r | ORI r/w | SO r
|
|
28
|
+
AIFF r | EXIF r/w/c | LNK r | OTF r | SR2 r/w
|
|
29
|
+
APE r | EXR r | LRV r/w | PAC r | SRF r
|
|
30
|
+
ARQ r/w | EXV r/w/c | M2TS r | PAGES r | SRW r/w
|
|
31
|
+
ARW r/w | F4A/V r/w | M4A/V r/w | PBM r/w | SVG r
|
|
32
|
+
ASF r | FFF r/w | MACOS r | PCD r | SWF r
|
|
33
|
+
AVI r | FITS r | MAX r | PCX r | THM r/w
|
|
34
|
+
AVIF r/w | FLA r | MEF r/w | PDB r | TIFF r/w
|
|
35
|
+
AZW r | FLAC r | MIE r/w/ | PDF r/w | TORRENT r
|
|
36
|
+
BMP r | FLIF r/w | MIFF r c | PEF r/w | TTC r
|
|
37
|
+
BPG r | FLV r | MKA r | PFA r | TTF r
|
|
38
|
+
BTF r | FPF r | MKS r | PFB r | TXT r
|
|
39
|
+
CHM r | FPX r | MKV r | PFM r | VCF r
|
|
40
|
+
COS r | GIF r/w | MNG r/w | PGF r | VRD r/w/c
|
|
41
|
+
CR2 r/w | GPR r/w | MOBI r | PGM r/w | VSD r
|
|
42
|
+
CR3 r/w | GZ r | MODD r | PLIST r | WAV r
|
|
43
|
+
CRM r/w | HDP r/w | MOI r | PICT r | WDP r/w
|
|
44
|
+
CRW r/w | HDR r | MOS r/w | PMP r | WEBP r
|
|
45
|
+
CS1 r/w | HEIC r/w | MOV r/w | PNG r/w | WEBM r
|
|
46
|
+
CSV r | HEIF r/w | MP3 r | PPM r/w | WMA r
|
|
47
|
+
CZI r | HTML r | MP4 r/w | PPT r | WMV r
|
|
48
|
+
DCM r | ICC r/w/c | MPC r | PPTX r | WTV r
|
|
49
|
+
DCP r/w | ICS r | MPG r | PS r/w | WV r
|
|
50
|
+
DCR r | IDML r | MPO r/w | PSB r/w | X3F r/w
|
|
51
|
+
DFONT r | IIQ r/w | MQV r/w | PSD r/w | XCF r
|
|
52
|
+
DIVX r | IND r/w | MRC r | PSP r | XLS r
|
|
53
|
+
DJVU r | INSP r/w | MRW r/w | QTIF r/w | XLSX r
|
|
54
|
+
DLL r | INSV r | MXF r | R3D r | XMP r/w/c
|
|
55
|
+
DNG r/w | INX r | NEF r/w | RA r | ZIP r
|
|
56
|
+
DOC r | ISO r | NKSC r/w | RAF r/w |
|
|
57
|
+
DOCX r | ITC r | NRW r/w | RAM r |
|
|
58
|
+
DPX r | J2C r | NUMBERS r | RAR r |
|
|
59
59
|
|
|
60
60
|
Meta Information
|
|
61
61
|
----------------------+----------------------+---------------------
|
|
@@ -107,8 +107,8 @@ your home directory, then you would type the following commands in a
|
|
|
107
107
|
terminal window to extract and run ExifTool:
|
|
108
108
|
|
|
109
109
|
cd ~/Desktop
|
|
110
|
-
gzip -dc Image-ExifTool-12.
|
|
111
|
-
cd Image-ExifTool-12.
|
|
110
|
+
gzip -dc Image-ExifTool-12.41.tar.gz | tar -xf -
|
|
111
|
+
cd Image-ExifTool-12.41
|
|
112
112
|
./exiftool t/images/ExifTool.jpg
|
|
113
113
|
|
|
114
114
|
Note: These commands extract meta information from one of the test images.
|
|
@@ -162,7 +162,7 @@ for calculating digest values and providing other features listed below:
|
|
|
162
162
|
|
|
163
163
|
COPYRIGHT AND LICENSE
|
|
164
164
|
|
|
165
|
-
Copyright 2003-
|
|
165
|
+
Copyright 2003-2022, Phil Harvey
|
|
166
166
|
|
|
167
167
|
This is free software; you can redistribute it and/or modify it under the
|
|
168
168
|
same terms as Perl itself.
|
|
@@ -12,8 +12,10 @@
|
|
|
12
12
|
# 2013/06/12 - PH Additions for the Exif 2.3 for XMP spec
|
|
13
13
|
# 2015/01/12 - PH Avoid copying to non-standard namespaces
|
|
14
14
|
# 2018/05/07 - PH Added support for GPSDestXxxRef tags
|
|
15
|
+
# 2022/03/31 - PH IPTC Photometadata Mapping Guidelines 2202.1 update
|
|
15
16
|
#
|
|
16
17
|
# References: http://www.metadataworkinggroup.org/specs/
|
|
18
|
+
# https://iptc.org/std/photometadata/documentation/mappingguidelines/
|
|
17
19
|
#
|
|
18
20
|
# Notes: 1) The first three arguments copy most of the EXIF and GPS tags to
|
|
19
21
|
# XMP-exif/XMP-tiff, and the remaining arguments handle tags
|
|
@@ -22,6 +24,8 @@
|
|
|
22
24
|
# 2) These arguments will not delete existing XMP tags which are
|
|
23
25
|
# missing from the EXIF. The XMP tags should be deleted
|
|
24
26
|
# beforehand if required.
|
|
27
|
+
#
|
|
28
|
+
# 3) EXIF:SubjectArea is not currently mapped into XMP-iptcExt:ImageRegion
|
|
25
29
|
#------------------------------------------------------------------------------
|
|
26
30
|
-XMP-exif:all < EXIF:all
|
|
27
31
|
-XMP-exifEX:all < EXIF:all
|
|
@@ -37,6 +41,7 @@
|
|
|
37
41
|
-XMP-xmp:CreatorTool < EXIF:Software
|
|
38
42
|
-XMP-dc:Rights < EXIF:Copyright
|
|
39
43
|
-XMP-dc:Creator < EXIF:Artist
|
|
44
|
+
-XMP-iptcExt:DigitalImageGUID < EXIF:DigImageGUID
|
|
40
45
|
# XMP flash information is translated by the Composite Flash tag
|
|
41
46
|
-Composite:Flash < EXIF:Flash
|
|
42
47
|
# overwrite GPS tags which have different formats in XMP
|
|
@@ -14,8 +14,10 @@
|
|
|
14
14
|
# 2016/09/26 - PH Write Composite SubSec tags
|
|
15
15
|
# 2018/05/07 - PH Added support for GPSDestXxxRef tags
|
|
16
16
|
# 2021/09/30 - PH Removed erroneous "-" when copying CreatorTool
|
|
17
|
+
# 2022/03/31 - PH IPTC Photometadata Mapping Guidelines 2202.1 update
|
|
17
18
|
#
|
|
18
19
|
# References: http://www.metadataworkinggroup.org/specs/
|
|
20
|
+
# https://iptc.org/std/photometadata/documentation/mappingguidelines/
|
|
19
21
|
#
|
|
20
22
|
# Notes: 1) The first three arguments copy the bulk of the EXIF and GPS
|
|
21
23
|
# information, and the remaining arguments handle the tags
|
|
@@ -24,6 +26,8 @@
|
|
|
24
26
|
# 2) These arguments will not delete existing EXIF tags which are
|
|
25
27
|
# missing from the XMP. The EXIF tags should be deleted
|
|
26
28
|
# beforehand if required.
|
|
29
|
+
#
|
|
30
|
+
# 3) XMP-iptcExt:ImageRegion is not currently mapped into EXIF:SubjectArea
|
|
27
31
|
#------------------------------------------------------------------------------
|
|
28
32
|
-EXIF:all < XMP-exif:all
|
|
29
33
|
-EXIF:all < XMP-exifEX:all
|
|
@@ -37,7 +41,9 @@
|
|
|
37
41
|
-Composite:SubSecModifyDate < XMP-xmp:ModifyDate
|
|
38
42
|
-EXIF:Software < XMP-xmp:CreatorTool
|
|
39
43
|
-EXIF:Copyright < XMP-dc:Rights
|
|
44
|
+
-EXIF:Artist < XMP-plus:ImageCreatorName
|
|
40
45
|
-EXIF:Artist < XMP-dc:Creator
|
|
46
|
+
-EXIF:DigImageGUID < XMP-iptcExt:DigitalImageGUID
|
|
41
47
|
# XMP flash information is translated by the Composite Flash tag
|
|
42
48
|
-EXIF:Flash < Composite:Flash
|
|
43
49
|
# generate GPS tags which have been combined into other XMP tags
|
|
@@ -97,8 +97,8 @@ my %sACDSeeRegionStruct = (
|
|
|
97
97
|
# new XMP namespaces for ACDSee regions
|
|
98
98
|
'Image::ExifTool::XMP::Main' => {
|
|
99
99
|
'acdsee-rs' => { # <-- must be the same as the NAMESPACE prefix
|
|
100
|
-
SubDirectory => {
|
|
101
|
-
TagTable => 'Image::ExifTool::UserDefined::ACDSeeRegions'
|
|
100
|
+
SubDirectory => {
|
|
101
|
+
TagTable => 'Image::ExifTool::UserDefined::ACDSeeRegions'
|
|
102
102
|
},
|
|
103
103
|
},
|
|
104
104
|
},
|
|
@@ -147,7 +147,7 @@ my %sACDSeeRegionStruct = (
|
|
|
147
147
|
},
|
|
148
148
|
ValueConv => q{
|
|
149
149
|
my ($rgn, @newRgns);
|
|
150
|
-
my $rgns = ref $val[0] eq 'ARRAY' ? $val[0] : [ $val[0] ];
|
|
150
|
+
my $rgns = ref $val[0] eq 'ARRAY' ? $val[0] : [ $val[0] ];
|
|
151
151
|
foreach $rgn (@$rgns) {
|
|
152
152
|
my %newRgn = ( Type => 'Face' );
|
|
153
153
|
if ($$rgn{RegionBoundary} and $$rgn{RegionBoundary}{RbShape} eq 'rectangle') {
|
|
@@ -220,13 +220,13 @@ my %sACDSeeRegionStruct = (
|
|
|
220
220
|
# the "Struct" entry defines the structure fields
|
|
221
221
|
Struct => {
|
|
222
222
|
# optional structure name (used for warning messages only)
|
|
223
|
-
STRUCT_NAME => 'ACDSee RegionInfo',
|
|
223
|
+
STRUCT_NAME => 'ACDSee RegionInfo',
|
|
224
224
|
RegionList => {
|
|
225
225
|
FlatName => 'Region',
|
|
226
226
|
Struct => \%sACDSeeRegionStruct,
|
|
227
227
|
List => 'Bag',
|
|
228
228
|
},
|
|
229
|
-
AppliedToDimensions => {
|
|
229
|
+
AppliedToDimensions => {
|
|
230
230
|
FlatName => 'RegionAppliedToDimensions',Struct => \%sACDSeeDimensions },
|
|
231
231
|
},
|
|
232
232
|
},
|
|
@@ -239,7 +239,7 @@ my %sACDSeeRegionStruct = (
|
|
|
239
239
|
RegionInfoACDSeeAppliedToDimensionsW => 'ACDSeeRegionAppliedToDimensionsW',
|
|
240
240
|
RegionInfoACDSeeRegionListDLYAreaH => 'ACDSeeRegionDLYAreaH',
|
|
241
241
|
RegionInfoACDSeeRegionListDLYAreaW => 'ACDSeeRegionDLYAreaW',
|
|
242
|
-
RegionInfoACDSeeRegionListDLYAreaX => 'ACDSeeRegionDLYAreaX',
|
|
242
|
+
RegionInfoACDSeeRegionListDLYAreaX => 'ACDSeeRegionDLYAreaX',
|
|
243
243
|
RegionInfoACDSeeRegionListDLYAreaY => 'ACDSeeRegionDLYAreaY',
|
|
244
244
|
RegionInfoACDSeeRegionListALGAreaH => 'ACDSeeRegionALGAreaH',
|
|
245
245
|
RegionInfoACDSeeRegionListALGAreaW => 'ACDSeeRegionALGAreaW',
|
|
@@ -34,15 +34,15 @@
|
|
|
34
34
|
# Usage:
|
|
35
35
|
#
|
|
36
36
|
# 1) Extract Photoshop path names:
|
|
37
|
-
#
|
|
37
|
+
#
|
|
38
38
|
# exiftool -config photoshop_paths.config -allpaths FILE
|
|
39
39
|
#
|
|
40
40
|
# 2) Extract Photoshop path names and anchor points:
|
|
41
|
-
#
|
|
41
|
+
#
|
|
42
42
|
# exiftool -config photoshop_paths.config -userparam anchor -allpaths FILE
|
|
43
43
|
#
|
|
44
44
|
# 3) Extract Photoshop path anchor points only:
|
|
45
|
-
#
|
|
45
|
+
#
|
|
46
46
|
# exiftool -config photoshop_paths.config -userparam anchoronly -allpaths FILE
|
|
47
47
|
#
|
|
48
48
|
# 4) Copy all Photoshop paths from one file (SRC) to another (DST):
|
|
@@ -68,6 +68,7 @@
|
|
|
68
68
|
# subpath respectively
|
|
69
69
|
# 2017/06/03 - PH Added TotalPathPoints
|
|
70
70
|
# 2017/07/17 - PH Added UniquePathPoints
|
|
71
|
+
# 2022/02/03 - PH Added WorkingPath and WorkingPathPix
|
|
71
72
|
#
|
|
72
73
|
# References: https://exiftool.org/forum/index.php/topic,1621.0.html
|
|
73
74
|
# https://exiftool.org/forum/index.php/topic,3910.0.html
|
|
@@ -77,10 +78,11 @@
|
|
|
77
78
|
# Print Photoshop path name and/or anchor points
|
|
78
79
|
# Inputs: 0) reference to Photoshop path data, 1) ExifTool object reference
|
|
79
80
|
# 2-3) optional image width/height to convert anchor points to pixels
|
|
81
|
+
# 4) optional path name
|
|
80
82
|
# Returns: String with name and/or Bezier knot anchor points
|
|
81
|
-
sub PrintPath(
|
|
83
|
+
sub PrintPath($$;$$$)
|
|
82
84
|
{
|
|
83
|
-
my ($val, $et, $w, $h) = @_;
|
|
85
|
+
my ($val, $et, $w, $h, $nm) = @_;
|
|
84
86
|
my ($pos, $name, @rtn);
|
|
85
87
|
my $len = length($$val) - 26;
|
|
86
88
|
|
|
@@ -88,8 +90,9 @@ sub PrintPath($$;$$)
|
|
|
88
90
|
if ($$val =~ m{.*/#(.{0,255})#/$}s) {
|
|
89
91
|
$name = $1;
|
|
90
92
|
$len -= length($1) + 4;
|
|
93
|
+
$name = $nm if defined $nm and not length $name;
|
|
91
94
|
} else {
|
|
92
|
-
$name = '<none>';
|
|
95
|
+
$name = defined $nm ? $nm : '<none>';
|
|
93
96
|
}
|
|
94
97
|
my $anchorOnly = $et->Options(UserParam => 'AnchorOnly');
|
|
95
98
|
push @rtn, $name unless $anchorOnly;
|
|
@@ -118,7 +121,7 @@ sub PrintPath($$;$$)
|
|
|
118
121
|
}
|
|
119
122
|
|
|
120
123
|
%Image::ExifTool::Shortcuts::UserDefined = (
|
|
121
|
-
# create "AllPaths" shortcut for all Photoshop path tags
|
|
124
|
+
# create "AllPaths" shortcut for all Photoshop path tags (except WorkingPath)
|
|
122
125
|
AllPaths => [
|
|
123
126
|
map { sprintf "Path%x", $_ } (0x7d0 .. 0xbb5),
|
|
124
127
|
],
|
|
@@ -133,6 +136,14 @@ sub PrintPath($$;$$)
|
|
|
133
136
|
Name => 'OriginPathInfo',
|
|
134
137
|
Flags => [ qw(Writable Protected Binary SetResourceName) ],
|
|
135
138
|
},
|
|
139
|
+
0x401 => {
|
|
140
|
+
Name => 'WorkingPath',
|
|
141
|
+
Flags => [ qw(Writable Protected Binary ConvertBinary SetResourceName) ],
|
|
142
|
+
PrintConv => sub {
|
|
143
|
+
my ($val, $et) = @_;
|
|
144
|
+
PrintPath($val, $et, undef, undef, 'Work Path');
|
|
145
|
+
},
|
|
146
|
+
},
|
|
136
147
|
# generate tags for each of the 998 possible Photoshop paths
|
|
137
148
|
map { $_ => {
|
|
138
149
|
Name => sprintf('Path%x', $_),
|
|
@@ -143,6 +154,7 @@ sub PrintPath($$;$$)
|
|
|
143
154
|
},
|
|
144
155
|
'Image::ExifTool::Composite' => {
|
|
145
156
|
PathCount => {
|
|
157
|
+
# (PathCount statistics do not include WorkingPath)
|
|
146
158
|
Desire => {
|
|
147
159
|
map { $_-0x7d0 => sprintf('Path%x', $_) } (0x7d0 .. 0xbb5),
|
|
148
160
|
},
|
|
@@ -180,6 +192,17 @@ sub PrintPath($$;$$)
|
|
|
180
192
|
Require => 'PathCount',
|
|
181
193
|
ValueConv => '$$self{TotalPathPoints}',
|
|
182
194
|
},
|
|
195
|
+
WorkingPathPix => {
|
|
196
|
+
Require => {
|
|
197
|
+
0 => 'ImageWidth',
|
|
198
|
+
1 => 'ImageHeight',
|
|
199
|
+
2 => 'WorkingPath',
|
|
200
|
+
},
|
|
201
|
+
ValueConv => sub {
|
|
202
|
+
my ($val, $et) = @_;
|
|
203
|
+
PrintPath($$val[2], $et, $$val[0], $$val[1], 'Work Path');
|
|
204
|
+
},
|
|
205
|
+
},
|
|
183
206
|
map { sprintf('PathPix%x', $_) => {
|
|
184
207
|
Require => {
|
|
185
208
|
0 => 'ImageWidth',
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
# 2015/05/12 - PH Minor code tweaks
|
|
64
64
|
# 2015/10/26 - BKW Round off area sizes to 7 decimal places
|
|
65
65
|
# 2016/01/18 - BKW Improved rounding algorithm
|
|
66
|
-
# 2016/05/14 - BKW Increased rounding to 9 decimal places (Max Picasa accepts),
|
|
66
|
+
# 2016/05/14 - BKW Increased rounding to 9 decimal places (Max Picasa accepts),
|
|
67
67
|
# moved rounding operation to subroutine
|
|
68
68
|
#
|
|
69
69
|
# References: https://exiftool.org/forum/index.php/topic,6354.0.html
|
|
@@ -16,13 +16,13 @@
|
|
|
16
16
|
|
|
17
17
|
%Image::ExifTool::UserDefined = (
|
|
18
18
|
'Image::ExifTool::XMP::Main' => {
|
|
19
|
-
Camera => {
|
|
19
|
+
Camera => {
|
|
20
20
|
SubDirectory => {
|
|
21
21
|
TagTable => 'Image::ExifTool::UserDefined::Camera',
|
|
22
22
|
},
|
|
23
23
|
},
|
|
24
24
|
},
|
|
25
|
-
);
|
|
25
|
+
);
|
|
26
26
|
|
|
27
27
|
%Image::ExifTool::UserDefined::Camera = (
|
|
28
28
|
GROUPS => { 0 => 'XMP', 1 => 'XMP-Camera', 2 => 'Camera' },
|
|
@@ -68,9 +68,9 @@ sub has_defined {
|
|
|
68
68
|
35 => 'EXIF:TransferRange', # TransferRange (342/0x0156)
|
|
69
69
|
36 => 'EXIF:YCbCrCoefficients', # YCbCrCoefficients (529/0x0211)
|
|
70
70
|
37 => 'EXIF:YCbCrPositioning', # YCbCrPositioning (531/0x0213)
|
|
71
|
-
38 => 'EXIF:YCbCrSubSampling', # YCbCrSubSampling (530/0x0212)
|
|
71
|
+
38 => 'EXIF:YCbCrSubSampling', # YCbCrSubSampling (530/0x0212)
|
|
72
72
|
# Other tags to check
|
|
73
|
-
39 => 'EXIF:PhotometricInterpretation', # PhotometricInterpretation (262/0x0106)
|
|
73
|
+
39 => 'EXIF:PhotometricInterpretation', # PhotometricInterpretation (262/0x0106)
|
|
74
74
|
40 => 'EXIF:Compression', # Compression (259/0x0103)
|
|
75
75
|
},
|
|
76
76
|
ValueConv => q{
|
|
@@ -8,9 +8,10 @@
|
|
|
8
8
|
# (See html/history.html for revision history)
|
|
9
9
|
#------------------------------------------------------------------------------
|
|
10
10
|
use strict;
|
|
11
|
+
use warnings;
|
|
11
12
|
require 5.004;
|
|
12
13
|
|
|
13
|
-
my $version = '12.
|
|
14
|
+
my $version = '12.41';
|
|
14
15
|
|
|
15
16
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
|
16
17
|
my $exePath;
|
|
@@ -102,6 +103,8 @@ my %database; # lookup for database information based on file name (in Exi
|
|
|
102
103
|
my %filterExt; # lookup for filtered extensions
|
|
103
104
|
my %ignore; # directory names to ignore
|
|
104
105
|
my $ignoreHidden; # flag to ignore hidden files
|
|
106
|
+
my %outComma; # flag that output text file needs a comma
|
|
107
|
+
my %outTrailer; # trailer for output text file
|
|
105
108
|
my %preserveTime; # preserved timestamps for files
|
|
106
109
|
my %printFmt; # the contents of the print format file
|
|
107
110
|
my %setTags; # hash of list references for tags to set from files
|
|
@@ -455,6 +458,8 @@ undef %database;
|
|
|
455
458
|
undef %endDir;
|
|
456
459
|
undef %filterExt;
|
|
457
460
|
undef %ignore;
|
|
461
|
+
undef %outComma;
|
|
462
|
+
undef %outTrailer;
|
|
458
463
|
undef %printFmt;
|
|
459
464
|
undef %preserveTime;
|
|
460
465
|
undef %setTags;
|
|
@@ -1819,8 +1824,21 @@ if ($filtered and not $validFile) {
|
|
|
1819
1824
|
PrintCSV() if $csv and not $isWriting;
|
|
1820
1825
|
|
|
1821
1826
|
# print folder/file trailer if necessary
|
|
1822
|
-
|
|
1823
|
-
|
|
1827
|
+
if ($textOut) {
|
|
1828
|
+
foreach (keys %outTrailer) {
|
|
1829
|
+
next unless $outTrailer{$_};
|
|
1830
|
+
if ($mt->Open(\*OUTTRAIL, $_, '>>')) {
|
|
1831
|
+
my $fp = \*OUTTRAIL;
|
|
1832
|
+
print $fp $outTrailer{$_};
|
|
1833
|
+
close $fp;
|
|
1834
|
+
} else {
|
|
1835
|
+
Error("Error appending to $_\n");
|
|
1836
|
+
}
|
|
1837
|
+
}
|
|
1838
|
+
} else {
|
|
1839
|
+
print $sectTrailer if $sectTrailer;
|
|
1840
|
+
print $fileTrailer if $fileTrailer and not $fileHeader;
|
|
1841
|
+
}
|
|
1824
1842
|
|
|
1825
1843
|
my $totWr = $countGoodWr + $countBadWr + $countSameWr + $countCopyWr +
|
|
1826
1844
|
$countGoodCr + $countBadCr;
|
|
@@ -2158,6 +2176,9 @@ sub GetImageInfo($$)
|
|
|
2158
2176
|
$tmpText = $outfile unless $append;
|
|
2159
2177
|
}
|
|
2160
2178
|
|
|
2179
|
+
# restore state of comma flag for this file if appending
|
|
2180
|
+
$comma = $outComma{$outfile} if $append and ($textOverwrite & 0x02);
|
|
2181
|
+
|
|
2161
2182
|
# print the results for this file
|
|
2162
2183
|
if (%printFmt) {
|
|
2163
2184
|
# output using print format file (-p) option
|
|
@@ -2219,7 +2240,7 @@ sub GetImageInfo($$)
|
|
|
2219
2240
|
if ($fp) {
|
|
2220
2241
|
# print file header (only once)
|
|
2221
2242
|
if ($fileHeader) {
|
|
2222
|
-
print $fp $fileHeader;
|
|
2243
|
+
print $fp $fileHeader unless defined $outfile and ($created{$outfile} or $appended{$outfile});
|
|
2223
2244
|
undef $fileHeader unless $textOut;
|
|
2224
2245
|
}
|
|
2225
2246
|
if ($html) {
|
|
@@ -2672,9 +2693,17 @@ TAG: foreach $tag (@foundTags) {
|
|
|
2672
2693
|
}
|
|
2673
2694
|
}
|
|
2674
2695
|
if ($outfile) {
|
|
2675
|
-
|
|
2676
|
-
|
|
2677
|
-
|
|
2696
|
+
if ($textOverwrite & 0x02) {
|
|
2697
|
+
# save state of this file if we may be appending
|
|
2698
|
+
$outComma{$outfile} = $comma;
|
|
2699
|
+
$outTrailer{$outfile} = '';
|
|
2700
|
+
$outTrailer{$outfile} .= $sectTrailer and $sectTrailer = '' if $sectTrailer;
|
|
2701
|
+
$outTrailer{$outfile} .= $fileTrailer if $fileTrailer;
|
|
2702
|
+
} else {
|
|
2703
|
+
# write section and file trailers before closing the file
|
|
2704
|
+
print $fp $sectTrailer and $sectTrailer = '' if $sectTrailer;
|
|
2705
|
+
print $fp $fileTrailer if $fileTrailer;
|
|
2706
|
+
}
|
|
2678
2707
|
close($fp);
|
|
2679
2708
|
undef $tmpText;
|
|
2680
2709
|
if ($lineCount) {
|
|
@@ -2924,7 +2953,7 @@ sub SetImageInfo($$$)
|
|
|
2924
2953
|
}
|
|
2925
2954
|
}
|
|
2926
2955
|
if (defined $outfile) {
|
|
2927
|
-
$verbose and print $vout "'${infile}' --> '${outfile}'\n";
|
|
2956
|
+
defined $verbose and print $vout "'${infile}' --> '${outfile}'\n";
|
|
2928
2957
|
# create output directory if necessary
|
|
2929
2958
|
CreateDirectory($outfile);
|
|
2930
2959
|
# set temporary file (automatically erased on abnormal exit)
|
|
@@ -4469,7 +4498,7 @@ SYNOPSIS
|
|
|
4469
4498
|
exiftool [*OPTIONS*] -*TAG*[+-<]=[*VALUE*]... *FILE*...
|
|
4470
4499
|
|
|
4471
4500
|
Copying
|
|
4472
|
-
exiftool [*OPTIONS*] -tagsFromFile *SRCFILE* [
|
|
4501
|
+
exiftool [*OPTIONS*] -tagsFromFile *SRCFILE* [-[*DSTTAG*<]*SRCTAG*...]
|
|
4473
4502
|
*FILE*...
|
|
4474
4503
|
|
|
4475
4504
|
Other
|
|
@@ -4508,48 +4537,48 @@ DESCRIPTION
|
|
|
4508
4537
|
|
|
4509
4538
|
File Types
|
|
4510
4539
|
------------+-------------+-------------+-------------+------------
|
|
4511
|
-
360 r/w | DR4 r/w/c | JNG r/w |
|
|
4512
|
-
3FR r | DSS r | JP2 r/w |
|
|
4513
|
-
3G2 r/w | DV r | JPEG r/w |
|
|
4514
|
-
3GP r/w | DVB r/w | JSON r |
|
|
4515
|
-
A r | DVR-MS r | JXL r |
|
|
4516
|
-
AA r | DYLIB r | K25 r |
|
|
4517
|
-
AAE r | EIP r | KDC r |
|
|
4518
|
-
AAX r/w | EPS r/w | KEY r |
|
|
4519
|
-
ACR r | EPUB r | LA r |
|
|
4520
|
-
AFM r | ERF r/w | LFP r |
|
|
4521
|
-
AI r/w | EXE r | LIF r |
|
|
4522
|
-
AIFF r | EXIF r/w/c | LNK r |
|
|
4523
|
-
APE r | EXR r | LRV r/w |
|
|
4524
|
-
ARQ r/w | EXV r/w/c | M2TS r |
|
|
4525
|
-
ARW r/w | F4A/V r/w | M4A/V r/w |
|
|
4526
|
-
ASF r | FFF r/w | MACOS r |
|
|
4527
|
-
AVI r | FITS r | MAX r |
|
|
4528
|
-
AVIF r/w | FLA r | MEF r/w |
|
|
4529
|
-
AZW r | FLAC r | MIE r/w/ |
|
|
4530
|
-
BMP r | FLIF r/w | MIFF r c |
|
|
4531
|
-
BPG r | FLV r | MKA r |
|
|
4532
|
-
BTF r | FPF r | MKS r |
|
|
4533
|
-
CHM r | FPX r | MKV r |
|
|
4534
|
-
COS r | GIF r/w | MNG r/w |
|
|
4535
|
-
CR2 r/w | GPR r/w | MOBI r |
|
|
4536
|
-
CR3 r/w | GZ r | MODD r |
|
|
4537
|
-
CRM r/w | HDP r/w | MOI r |
|
|
4538
|
-
CRW r/w | HDR r | MOS r/w |
|
|
4539
|
-
CS1 r/w | HEIC r/w | MOV r/w |
|
|
4540
|
-
CSV r | HEIF r/w | MP3 r |
|
|
4541
|
-
CZI r | HTML r | MP4 r/w |
|
|
4542
|
-
DCM r | ICC r/w/c | MPC r |
|
|
4543
|
-
DCP r/w | ICS r | MPG r |
|
|
4544
|
-
DCR r | IDML r | MPO r/w |
|
|
4545
|
-
DFONT r | IIQ r/w | MQV r/w |
|
|
4546
|
-
DIVX r | IND r/w | MRC r |
|
|
4547
|
-
DJVU r | INSP r/w | MRW r/w |
|
|
4548
|
-
DLL r | INSV r | MXF r |
|
|
4549
|
-
DNG r/w | INX r | NEF r/w |
|
|
4550
|
-
DOC r | ISO r |
|
|
4551
|
-
DOCX r | ITC r |
|
|
4552
|
-
DPX r | J2C r |
|
|
4540
|
+
360 r/w | DR4 r/w/c | JNG r/w | O r | RAW r/w
|
|
4541
|
+
3FR r | DSS r | JP2 r/w | ODP r | RIFF r
|
|
4542
|
+
3G2 r/w | DV r | JPEG r/w | ODS r | RSRC r
|
|
4543
|
+
3GP r/w | DVB r/w | JSON r | ODT r | RTF r
|
|
4544
|
+
A r | DVR-MS r | JXL r | OFR r | RW2 r/w
|
|
4545
|
+
AA r | DYLIB r | K25 r | OGG r | RWL r/w
|
|
4546
|
+
AAE r | EIP r | KDC r | OGV r | RWZ r
|
|
4547
|
+
AAX r/w | EPS r/w | KEY r | ONP r | RM r
|
|
4548
|
+
ACR r | EPUB r | LA r | OPUS r | SEQ r
|
|
4549
|
+
AFM r | ERF r/w | LFP r | ORF r/w | SKETCH r
|
|
4550
|
+
AI r/w | EXE r | LIF r | ORI r/w | SO r
|
|
4551
|
+
AIFF r | EXIF r/w/c | LNK r | OTF r | SR2 r/w
|
|
4552
|
+
APE r | EXR r | LRV r/w | PAC r | SRF r
|
|
4553
|
+
ARQ r/w | EXV r/w/c | M2TS r | PAGES r | SRW r/w
|
|
4554
|
+
ARW r/w | F4A/V r/w | M4A/V r/w | PBM r/w | SVG r
|
|
4555
|
+
ASF r | FFF r/w | MACOS r | PCD r | SWF r
|
|
4556
|
+
AVI r | FITS r | MAX r | PCX r | THM r/w
|
|
4557
|
+
AVIF r/w | FLA r | MEF r/w | PDB r | TIFF r/w
|
|
4558
|
+
AZW r | FLAC r | MIE r/w/ | PDF r/w | TORRENT r
|
|
4559
|
+
BMP r | FLIF r/w | MIFF r c | PEF r/w | TTC r
|
|
4560
|
+
BPG r | FLV r | MKA r | PFA r | TTF r
|
|
4561
|
+
BTF r | FPF r | MKS r | PFB r | TXT r
|
|
4562
|
+
CHM r | FPX r | MKV r | PFM r | VCF r
|
|
4563
|
+
COS r | GIF r/w | MNG r/w | PGF r | VRD r/w/c
|
|
4564
|
+
CR2 r/w | GPR r/w | MOBI r | PGM r/w | VSD r
|
|
4565
|
+
CR3 r/w | GZ r | MODD r | PLIST r | WAV r
|
|
4566
|
+
CRM r/w | HDP r/w | MOI r | PICT r | WDP r/w
|
|
4567
|
+
CRW r/w | HDR r | MOS r/w | PMP r | WEBP r
|
|
4568
|
+
CS1 r/w | HEIC r/w | MOV r/w | PNG r/w | WEBM r
|
|
4569
|
+
CSV r | HEIF r/w | MP3 r | PPM r/w | WMA r
|
|
4570
|
+
CZI r | HTML r | MP4 r/w | PPT r | WMV r
|
|
4571
|
+
DCM r | ICC r/w/c | MPC r | PPTX r | WTV r
|
|
4572
|
+
DCP r/w | ICS r | MPG r | PS r/w | WV r
|
|
4573
|
+
DCR r | IDML r | MPO r/w | PSB r/w | X3F r/w
|
|
4574
|
+
DFONT r | IIQ r/w | MQV r/w | PSD r/w | XCF r
|
|
4575
|
+
DIVX r | IND r/w | MRC r | PSP r | XLS r
|
|
4576
|
+
DJVU r | INSP r/w | MRW r/w | QTIF r/w | XLSX r
|
|
4577
|
+
DLL r | INSV r | MXF r | R3D r | XMP r/w/c
|
|
4578
|
+
DNG r/w | INX r | NEF r/w | RA r | ZIP r
|
|
4579
|
+
DOC r | ISO r | NKSC r/w | RAF r/w |
|
|
4580
|
+
DOCX r | ITC r | NRW r/w | RAM r |
|
|
4581
|
+
DPX r | J2C r | NUMBERS r | RAR r |
|
|
4553
4582
|
|
|
4554
4583
|
Meta Information
|
|
4555
4584
|
----------------------+----------------------+---------------------
|
|
@@ -5155,14 +5184,15 @@ OPTIONS
|
|
|
5155
5184
|
# update metadata for all images in a directory from CSV file
|
|
5156
5185
|
exiftool -csv=a.csv dir
|
|
5157
5186
|
|
|
5158
|
-
|
|
5159
|
-
used and the API MissingTagValue is set to an empty string
|
|
5187
|
+
When importing, empty values are ignored unless the -f option is
|
|
5188
|
+
used and the API MissingTagValue is set to an empty string (in
|
|
5160
5189
|
which case the tag is deleted). Also, FileName and Directory
|
|
5161
5190
|
columns are ignored if they exist (ie. ExifTool will not attempt to
|
|
5162
|
-
write these tags with a CSV import)
|
|
5163
|
-
|
|
5164
|
-
the
|
|
5165
|
-
databases may be imported in a
|
|
5191
|
+
write these tags with a CSV import), but all other columns are
|
|
5192
|
+
imported. To force a tag to be deleted, use the -f option and set
|
|
5193
|
+
the value to "-" in the CSV file (or to the MissingTagValue if this
|
|
5194
|
+
API option was used). Multiple databases may be imported in a
|
|
5195
|
+
single command.
|
|
5166
5196
|
|
|
5167
5197
|
When exporting a CSV file, the -g or -G option adds group names to
|
|
5168
5198
|
the tag headings. If the -a option is used to allow duplicate tag
|
|
@@ -5461,7 +5491,7 @@ OPTIONS
|
|
|
5461
5491
|
|
|
5462
5492
|
produces output like this:
|
|
5463
5493
|
|
|
5464
|
-
-- Generated by ExifTool 12.
|
|
5494
|
+
-- Generated by ExifTool 12.41 --
|
|
5465
5495
|
File: a.jpg - 2003:10:31 15:44:19
|
|
5466
5496
|
(f/5.6, 1/60s, ISO 100)
|
|
5467
5497
|
File: b.jpg - 2006:05:23 11:57:38
|
|
@@ -5576,7 +5606,9 @@ OPTIONS
|
|
|
5576
5606
|
extracted. Using -v0 causes the console output buffer to be flushed
|
|
5577
5607
|
after each line (which may be useful to avoid delays when piping
|
|
5578
5608
|
exiftool output), and prints the name of each processed file when
|
|
5579
|
-
writing
|
|
5609
|
+
writing and the new file name when renaming, moving or copying.
|
|
5610
|
+
Verbose levels above -v0 do not flush after each line. Also see the
|
|
5611
|
+
-progress option.
|
|
5580
5612
|
|
|
5581
5613
|
-w[+|!] *EXT* or *FMT* (-textOut)
|
|
5582
5614
|
Write console output to files with names ending in *EXT*, one for
|
|
@@ -5794,9 +5826,9 @@ OPTIONS
|
|
|
5794
5826
|
Allow (-a) or suppress (--a) duplicate tag names to be extracted.
|
|
5795
5827
|
By default, duplicate tags are suppressed when reading unless the
|
|
5796
5828
|
-ee or -X options are used or the Duplicates option is enabled in
|
|
5797
|
-
the configuration file.
|
|
5798
|
-
|
|
5799
|
-
|
|
5829
|
+
the configuration file. When writing, this option allows multiple
|
|
5830
|
+
Warning messages to be shown. Duplicate tags are always extracted
|
|
5831
|
+
when copying.
|
|
5800
5832
|
|
|
5801
5833
|
-e (--composite)
|
|
5802
5834
|
Extract existing tags only -- don't generate composite tags.
|
|
@@ -7144,7 +7176,7 @@ EXIT STATUS
|
|
|
7144
7176
|
the commands if -execute was used).
|
|
7145
7177
|
|
|
7146
7178
|
AUTHOR
|
|
7147
|
-
Copyright 2003-
|
|
7179
|
+
Copyright 2003-2022, Phil Harvey
|
|
7148
7180
|
|
|
7149
7181
|
This is free software; you can redistribute it and/or modify it under
|
|
7150
7182
|
the same terms as Perl itself.
|
|
@@ -7157,9 +7189,9 @@ __HELP__
|
|
|
7157
7189
|
|
|
7158
7190
|
my $dir = $ENV{PAR_GLOBAL_TEMP} || $ENV{PAR_TEMP} || $ENV{TMP} || $ENV{TEMP} || '/tmp';
|
|
7159
7191
|
my $docFile = "$dir/exiftool_${version}_doc.txt";
|
|
7192
|
+
# try backslashes first if it seems we may be running in cmd.exe
|
|
7193
|
+
$docFile =~ tr/\//\\/ if $ENV{ComSpec} or $docFile =~ /\\/;
|
|
7160
7194
|
unless (-e $docFile) {
|
|
7161
|
-
# try backslashes first if it seems we may be running in cmd.exe
|
|
7162
|
-
$docFile =~ tr/\//\\/ if $ENV{ComSpec} or $docFile =~ /\\/;
|
|
7163
7195
|
unless (open(TEMP, ">$docFile") or
|
|
7164
7196
|
($docFile =~ tr/\/\\/\\\// and open(TEMP, ">$docFile")) or # try forward slash
|
|
7165
7197
|
(CreateDirectory($docFile) and open(TEMP, ">$docFile"))) # try creating dir
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
#
|
|
26
26
|
# May also be used for string i/o (just pass a scalar reference)
|
|
27
27
|
#
|
|
28
|
-
# Legal: Copyright (c) 2003-
|
|
28
|
+
# Legal: Copyright (c) 2003-2022 Phil Harvey (philharvey66 at gmail.com)
|
|
29
29
|
# This library is free software; you can redistribute it and/or
|
|
30
30
|
# modify it under the same terms as Perl itself.
|
|
31
31
|
#------------------------------------------------------------------------------
|