exiftool_vendored 9.37.0 → 9.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.
- checksums.yaml +6 -14
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/Changes +74 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/MANIFEST +14 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/META.yml +1 -1
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/Makefile.PL +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/README +30 -30
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/exif2iptc.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/exif2xmp.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/gps2xmp.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/iptc2exif.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/iptc2xmp.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/iptcCore.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/pdf2xmp.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/xmp2exif.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/xmp2gps.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/xmp2iptc.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/xmp2pdf.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/config_files/ExifTool_config +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/config_files/convert_regions.config +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/exiftool +266 -226
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/fmt_files/gpx.fmt +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/fmt_files/gpx_wpt.fmt +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/fmt_files/kml.fmt +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/ExifTool.html +79 -54
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/MIE1.1-20070121.pdf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/Shift.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/AFCP.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/AIFF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/APE.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/APP12.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/ASF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Apple.html +11 -8
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/BMP.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Canon.html +138 -14
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/CanonCustom.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/CanonRaw.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/CanonVRD.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Casio.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Composite.html +19 -13
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/DICOM.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/DNG.html +0 -0
- data/bin/Image-ExifTool-9.41/html/TagNames/DPX.html +190 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/DV.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/DarwinCore.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/DjVu.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/EXE.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/EXIF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Extra.html +13 -6
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/FLAC.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/FLIR.html +166 -2
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Flash.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/FlashPix.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Font.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/FotoStation.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/FujiFilm.html +11 -1
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/GE.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/GIF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/GIMP.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/GPS.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/GeoTiff.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/H264.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/HP.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/HTML.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/ICC_Profile.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/ID3.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/IPTC.html +3 -3
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/ITC.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/JFIF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/JPEG.html +6 -4
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/JVC.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Jpeg2000.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Kodak.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/KyoceraRaw.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/LNK.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Leaf.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/M2TS.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MIE.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MIFF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MNG.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MPC.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MPEG.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MPF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MWG.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MXF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Matroska.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Microsoft.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Minolta.html +30 -19
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MinoltaRaw.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Nikon.html +81 -60
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/NikonCapture.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/NikonCustom.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/OOXML.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Ogg.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Olympus.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/OpenEXR.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PDF.html +6 -6
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PGF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PICT.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PLIST.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PNG.html +25 -18
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PSP.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Panasonic.html +51 -14
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PanasonicRaw.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Pentax.html +23 -6
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PhaseOne.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PhotoCD.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PhotoMechanic.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Photoshop.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PostScript.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PrintIM.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Qualcomm.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/QuickTime.html +404 -126
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/RIFF.html +19 -13
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/RSRC.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/RTF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Radiance.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Rawzor.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Real.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Reconyx.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Ricoh.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Samsung.html +27 -1
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Sanyo.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Scalado.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Shortcuts.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Sigma.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/SigmaRaw.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Sony.html +491 -121
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/SonyIDC.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Stim.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Theora.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Torrent.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Unknown.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Vorbis.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/XMP.html +824 -175
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/ZIP.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/iWork.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/index.html +7 -5
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/style.css +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/ancient_history.html +201 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/canon_raw.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/commentary.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/config.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/data_members.html +9 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/exiftool_pod.html +92 -71
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/faq.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/filename.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/geotag.html +13 -9
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/history.html +82 -201
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/htmldump.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/idiosyncracies.html +4 -2
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/index.html +46 -35
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/install.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/metafiles.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/overview.png +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/standards.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/struct.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/style.css +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/under.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/verbose.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/writing.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/File/RandomAccess.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/File/RandomAccess.pod +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool.pm +387 -331
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool.pod +101 -81
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/AES.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/AFCP.pm +14 -14
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/AIFF.pm +17 -17
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/APE.pm +18 -18
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/APP12.pm +21 -21
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/ASF.pm +48 -48
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Apple.pm +31 -19
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/BMP.pm +4 -4
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/BZZ.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/BigTIFF.pm +36 -36
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/BuildTagLookup.pm +12 -12
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Canon.pm +126 -38
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/CanonCustom.pm +37 -37
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/CanonRaw.pm +30 -30
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/CanonVRD.pm +75 -75
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/CaptureOne.pm +18 -18
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Casio.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset.pm +13 -13
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Arabic.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Baltic.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Cyrillic.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Greek.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Hebrew.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/JIS.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Latin.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Latin2.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacArabic.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacChineseCN.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacChineseTW.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacCroatian.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacCyrillic.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacGreek.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacHebrew.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacIceland.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacJapanese.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacKorean.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacLatin2.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacRSymbol.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacRoman.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacRomanian.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacThai.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacTurkish.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/PDFDoc.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/ShiftJIS.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Symbol.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Thai.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Turkish.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Vietnam.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/DICOM.pm +56 -17
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/DNG.pm +85 -85
- data/bin/Image-ExifTool-9.41/lib/Image/ExifTool/DPX.pm +151 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/DV.pm +6 -6
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/DarwinCore.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/DjVu.pm +14 -14
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/EXE.pm +47 -47
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Exif.pm +126 -116
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/FLAC.pm +14 -14
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/FLIR.pm +282 -22
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Fixup.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Flash.pm +41 -41
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/FlashPix.pm +97 -97
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Font.pm +46 -46
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/FotoStation.pm +21 -20
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/FujiFilm.pm +40 -38
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/GE.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/GIF.pm +32 -32
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/GIMP.pm +11 -11
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/GPS.pm +3 -3
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/GeoTiff.pm +19 -19
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Geotag.pm +69 -66
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/H264.pm +42 -42
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/HP.pm +9 -9
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/HTML.pm +16 -16
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/HtmlDump.pm +10 -10
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/ICC_Profile.pm +48 -48
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/ID3.pm +84 -84
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/IPTC.pm +38 -38
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/ITC.pm +11 -11
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Import.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/InDesign.pm +18 -18
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/JPEG.pm +10 -6
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/JPEGDigest.pm +4 -4
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/JVC.pm +8 -8
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Jpeg2000.pm +50 -58
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Kodak.pm +15 -15
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/KyoceraRaw.pm +4 -4
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/LNK.pm +24 -24
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/cs.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/de.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/en_ca.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/en_gb.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/es.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/fi.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/fr.pm +1 -1
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/it.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/ja.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/ko.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/nl.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/pl.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/ru.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/sv.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/tr.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/zh_cn.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/zh_tw.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Leaf.pm +11 -11
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/M2TS.pm +37 -37
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MIE.pm +95 -95
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MIEUnits.pod +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MIFF.pm +17 -17
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MNG.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MPC.pm +11 -11
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MPEG.pm +28 -28
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MPF.pm +22 -22
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MWG.pm +9 -9
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MXF.pm +46 -46
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MakerNotes.pm +61 -59
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Matroska.pm +27 -27
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Microsoft.pm +8 -8
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Minolta.pm +50 -28
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MinoltaRaw.pm +17 -17
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Nikon.pm +80 -63
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/NikonCapture.pm +29 -29
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/NikonCustom.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/OOXML.pm +20 -20
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Ogg.pm +19 -19
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Olympus.pm +3 -3
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/OpenEXR.pm +16 -16
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PDF.pm +126 -126
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PGF.pm +7 -7
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PICT.pm +18 -18
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PLIST.pm +39 -39
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PNG.pm +141 -95
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PPM.pm +11 -11
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PSP.pm +14 -14
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Panasonic.pm +82 -37
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PanasonicRaw.pm +40 -40
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Pentax.pm +86 -14
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PhaseOne.pm +36 -36
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PhotoCD.pm +4 -4
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PhotoMechanic.pm +12 -12
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Photoshop.pm +23 -23
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PostScript.pm +36 -36
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PrintIM.pm +10 -10
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Qualcomm.pm +5 -5
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/QuickTime.pm +528 -219
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/README +5 -3
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/RIFF.pm +40 -32
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/RSRC.pm +15 -15
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/RTF.pm +15 -15
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Radiance.pm +9 -9
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Rawzor.pm +19 -19
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Real.pm +43 -43
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Reconyx.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Ricoh.pm +24 -24
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Samsung.pm +41 -15
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Sanyo.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Scalado.pm +5 -5
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Shift.pl +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Shortcuts.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Sigma.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/SigmaRaw.pm +56 -56
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Sony.pm +450 -166
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/SonyIDC.pm +9 -9
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Stim.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/TagInfoXML.pm +6 -4
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/TagLookup.pm +1707 -1468
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/TagNames.pod +568 -102
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Theora.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Torrent.pm +11 -11
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Unknown.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Vorbis.pm +5 -5
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WriteCanonRaw.pl +51 -51
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WriteExif.pl +273 -273
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WriteIPTC.pl +44 -44
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WritePDF.pl +45 -39
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WritePNG.pl +86 -40
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WritePhotoshop.pl +27 -27
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WritePostScript.pl +47 -47
- data/bin/Image-ExifTool-9.41/lib/Image/ExifTool/WriteQuickTime.pl +344 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WriteXMP.pl +112 -112
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Writer.pl +428 -360
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/XMP.pm +195 -104
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/XMP2.pl +1 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/XMPStruct.pl +53 -52
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/ZIP.pm +50 -50
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/iWork.pm +17 -17
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/perl-Image-ExifTool.spec +31 -31
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/AFCP.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/AFCP_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/AFCP_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/AIFF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/AIFF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/APE.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/APE_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/APE_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ASF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ASF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/BMP.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/BMP_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/BigTIFF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/BigTIFF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Canon.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonRaw.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonRaw_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonRaw_4.out +5 -7
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonRaw_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonRaw_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonRaw_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_11.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_12.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_8.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_9.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Canon_2.out +4 -3
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Canon_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Casio.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Casio_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Casio_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Casio_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Casio_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Casio_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DICOM.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DICOM_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DNG.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DNG_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DNG_3.out +0 -0
- data/bin/Image-ExifTool-9.41/t/DPX.t +28 -0
- data/bin/Image-ExifTool-9.41/t/DPX_2.out +35 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DV.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DV_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DjVu.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DjVu_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/EXE.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/EXE_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/EXE_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/EXE_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_16.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_17.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_20.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_21.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_22.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_23.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_24.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_25.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_26.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_8.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_9.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FLAC.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FLAC_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FLAC_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FLIR.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FLIR_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FLIR_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Flash.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FlashPix.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FlashPix_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Flash_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Flash_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Font.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Font_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Font_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Font_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Font_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Font_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Font_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FotoStation.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FotoStation_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FotoStation_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FujiFilm.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FujiFilm_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FujiFilm_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FujiFilm_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FujiFilm_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GE.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GE_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GE_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GIF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GIF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GIF_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GIF_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GIMP.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GIMP_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GPS.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GPS_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GPS_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GeoTiff.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GeoTiff_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GeoTiff_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Geotag.t +18 -1
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Geotag_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Geotag_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Geotag_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Geotag_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Geotag_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Geotag_8.out +0 -0
- data/bin/Image-ExifTool-9.41/t/Geotag_9.out +7 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/HTML.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/HTML_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/IPTC.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/IPTC_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/IPTC_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/IPTC_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/IPTC_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/IPTC_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/IPTC_8.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ITC.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ITC_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/InDesign.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/InDesign_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/InDesign_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/InDesign_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/JVC.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/JVC_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/JVC_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Jpeg2000.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Jpeg2000_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Jpeg2000_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Jpeg2000_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Kodak.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Kodak_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Kodak_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/KyoceraRaw.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/KyoceraRaw_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/LNK.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/LNK_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_1.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_10.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_11.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_12.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_13.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_14.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_15.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_16.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_17.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_18.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_8.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_9.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/M2TS.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/M2TS_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MIE.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MIE_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MIE_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MIE_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MIE_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MIFF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MIFF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MP3.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MP3_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MWG.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MWG_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MWG_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MWG_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MWG_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MWG_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MXF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MXF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Matroska.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Matroska_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Minolta.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Minolta_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Minolta_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Minolta_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Nikon.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Nikon_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Nikon_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Nikon_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Nikon_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Nikon_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Nikon_8.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Olympus.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Olympus_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Olympus_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Olympus_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Olympus_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Olympus_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Olympus_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/OpenEXR.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/OpenEXR_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_10.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_11.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_12.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_14.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_15.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_16.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_17.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_18.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_19.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_20.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_22.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_8.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_9.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PGF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PGF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PICT.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PICT_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PLIST.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PLIST_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PLIST_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PNG.t +31 -1
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PNG_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PNG_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PNG_4.out +0 -0
- data/bin/Image-ExifTool-9.41/t/PNG_5.out +17 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PPM.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PPM_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PPM_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PSP.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PSP_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Panasonic.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Panasonic_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Panasonic_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Panasonic_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Panasonic_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Pentax.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Pentax_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Pentax_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Pentax_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PhotoCD.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PhotoCD_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PhotoMechanic.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PhotoMechanic_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PhotoMechanic_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Photoshop.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Photoshop_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Photoshop_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PostScript.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PostScript_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PostScript_3.out +0 -0
- data/bin/Image-ExifTool-9.41/t/QuickTime.t +54 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/QuickTime_2.out +10 -8
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/QuickTime_3.out +10 -8
- data/bin/Image-ExifTool-9.41/t/QuickTime_4.out +16 -0
- data/bin/Image-ExifTool-9.41/t/QuickTime_5.out +12 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/RIFF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/RIFF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/RIFF_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/RIFF_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/RTF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/RTF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Radiance.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Radiance_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Real.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Real_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Real_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Real_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Ricoh.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Ricoh_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Ricoh_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Ricoh_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sanyo.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sanyo_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sanyo_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sigma.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sigma_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sigma_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sigma_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sigma_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sony.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sony_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sony_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sony_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/TestLib.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Torrent.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Torrent_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Unknown.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Unknown_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Unknown_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Vorbis.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Vorbis_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer.t +53 -1
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_10.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_11.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_13.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_14.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_15.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_16.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_17.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_18.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_19.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_22.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_24.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_25.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_26.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_27.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_28.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_29.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_30.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_31.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_32.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_33.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_34.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_35.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_36.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_37.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_38.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_39.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_40.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_41.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_42.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_43.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_44.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_45.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_46.out +8 -6
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_47.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_48.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_50.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_51.out +0 -0
- data/bin/Image-ExifTool-9.41/t/Writer_52.out +22 -0
- data/bin/Image-ExifTool-9.41/t/Writer_53.out +33 -0
- data/bin/Image-ExifTool-9.41/t/Writer_54.out +2 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_9.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_10.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_11.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_12.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_13.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_14.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_15.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_16.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_17.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_18.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_19.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_20.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_21.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_22.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_23.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_24.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_25.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_26.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_27.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_28.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_29.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_30.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_31.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_32.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_34.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_36.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_37.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_39.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_40.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_41.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_8.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_9.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ZIP.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ZIP_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ZIP_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ZIP_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ZIP_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ZIP_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ZIP_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/AFCP.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/AIFF.aif +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/APE.ape +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/APE.mpc +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/ASF.wmv +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/BMP.bmp +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/BigTIFF.btf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Canon.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Canon1DmkIII.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/CanonRaw.cr2 +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/CanonRaw.crw +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/CanonVRD.vrd +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/CaptureOne.eip +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Casio.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Casio2.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/CasioQVCI.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/DICOM.dcm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/DNG.dng +0 -0
- data/bin/Image-ExifTool-9.41/t/images/DPX.dpx +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/DV.dv +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/DjVu.djvu +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/EXE.elf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/EXE.exe +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/EXE.macho +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/ExifTool.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/ExifTool.tif +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/ExtendedXMP.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FLAC.flac +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FLAC.ogg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FLIR.fpf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FLIR.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Flash.flv +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Flash.swf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FlashPix.ppt +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Font.afm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Font.dfont +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Font.pfa +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Font.pfb +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Font.pfm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Font.ttf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FotoStation.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FujiFilm.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FujiFilm.raf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/GE.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/GIF.gif +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/GIMP.xcf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/GPS.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/GeoTiff.tif +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Geotag.gpx +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Geotag.igc +0 -0
- data/bin/Image-ExifTool-9.41/t/images/Geotag.kml +55 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Geotag.log +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Geotag.xml +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Geotag2.log +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/HTML.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/IPTC.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/ITC.itc +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/InDesign.indd +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/JVC.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/JVC2.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Jpeg2000.j2c +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Jpeg2000.jp2 +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Kodak.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/KyoceraRaw.raw +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/LNK.lnk +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/M2TS.mts +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/MIE.mie +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/MIFF.miff +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/MP3.mp3 +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/MWG.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/MXF.mxf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Matroska.mkv +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Minolta.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Minolta.mrw +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Nikon.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Nikon.nef +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/NikonD2Hs.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/NikonD70.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/OOXML.docx +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Olympus.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Olympus2.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/OlympusE1.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/OpenDoc.ods +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/OpenEXR.exr +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PDF.pdf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PDF2.pdf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PGF.pgf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PICT.pict +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PLIST-bin.plist +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PLIST-xml.plist +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PNG.png +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PPM.ppm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PSP.psp +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Panasonic.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Panasonic.rw2 +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Pentax.avi +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Pentax.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PhotoCD.pcd +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PhotoMechanic.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Photoshop.psd +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PostScript.eps +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/QuickTime.m4a +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/QuickTime.mov +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/RIFF.avi +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/RIFF.wav +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/RIFF.webp +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/RTF.rtf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Radiance.hdr +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Real.ra +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Real.ram +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Real.rm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Ricoh.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Ricoh2.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Sanyo.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Sigma.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Sigma.x3f +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/SigmaDP2.x3f +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Sony.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Sony.pmp +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Torrent.torrent +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Unknown.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Vorbis.ogg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Writer.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP.inx +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP.svg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP.xml +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP.xmp +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP2.xmp +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP3.xmp +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP4.xmp +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP5.xmp +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/ZIP.gz +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/ZIP.zip +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/iWork.numbers +0 -0
- data/lib/exiftool_vendored.rb +11 -3
- data/lib/exiftool_vendored/version.rb +1 -1
- data/lib/exiftool_vendored/version_extractor.rb +5 -7
- metadata +942 -886
- data/bin/Image-ExifTool-9.37/t/QuickTime.t +0 -31
checksums.yaml
CHANGED
|
@@ -1,15 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
metadata.gz: !binary |-
|
|
9
|
-
YTQ2NGUwMTMwNDkzMjdhYzRkNDk1MWNmODBiYjZiNzRmOWRhYzdhZTU4NmY5
|
|
10
|
-
NWRhMTU5MDk1ZWM1ZmFkYzdlYWY0NTQ1MWVjZjM1YzFiYzMwYzlkZjQwMmQ4
|
|
11
|
-
ZjdjODNiMjI2NzUyMjdkYjg2MjdkMmY2ZDgzYTU2NTRmMTY2ZDA=
|
|
12
|
-
data.tar.gz: !binary |-
|
|
13
|
-
MzAzZWIwMDNmYWFjN2IyZjUxODU3YjQ5ZTBkZTI2MDNiNjE0ZTRhMzI0Njlm
|
|
14
|
-
MzY0OWFmNWFhNjg5OTYyZjk1N2UzMWViZDJkZTI0MzM5MTk5YjBhOTY0NDZh
|
|
15
|
-
MTcxMzkzODZjNmRkNWQ4ZjdmYjc0NTY0NGMwNGM1M2JkNjg0ZmQ=
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 82a88f2db7526ba7bc68a0b3cf6ee97290b10b15
|
|
4
|
+
data.tar.gz: 284960cf2566cc5e9f2abf143a73fab6f23298a4
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 87de268fa289ad7491061cf2ecdda5d41acecf3a22b2025f30b7080ddabf3a2ff54dfd37c4f870238a0f28a1e37b3577e0c0a8bfd32cf6932267c1ebfa73a973
|
|
7
|
+
data.tar.gz: cbb852739d5f267ecbc1f0e0251ac8b9c48470f76c920a6620d2daf186c4a268f84272b32b2568e5b05e8589104c10a906fa90288a7e42c0a66f02cf3b7351e6
|
|
@@ -7,6 +7,80 @@ RSS feed: http://owl.phy.queensu.ca/~phil/exiftool/rss.xml
|
|
|
7
7
|
Note: The most recent production release is Version 9.27. (Other versions are
|
|
8
8
|
considered development releases, and are not uploaded to CPAN.)
|
|
9
9
|
|
|
10
|
+
Nov. 16, 2013 - Version 9.41
|
|
11
|
+
|
|
12
|
+
- Added the ability to use multiple group qualifiers on tag names when writing
|
|
13
|
+
and copying (ie. "-QuickTime:Time:All=now")
|
|
14
|
+
- Added ability to geotag from Google Location Services KML files
|
|
15
|
+
- Added a new Pentax LensType (thanks Louis Granboulan)
|
|
16
|
+
- Added a new Canon LensType (thanks David Monro)
|
|
17
|
+
- Added a new Sony LensType2 (thanks Jos Roost)
|
|
18
|
+
- Decode a bunch more Nikon, Canon, Sony and FujiFilm WhiteBalance tags
|
|
19
|
+
(thanks Iliah Borg)
|
|
20
|
+
- Extract information from the new Pentax APP7 segment
|
|
21
|
+
|
|
22
|
+
Nov. 8, 2013 - Version 9.40 - "Write QuickTime"
|
|
23
|
+
|
|
24
|
+
- Added ability to write XMP and edit date/time tags in QuickTime-format files
|
|
25
|
+
(ie. MOV, MP4)
|
|
26
|
+
- Added -api option to allow API options to be set via the command line
|
|
27
|
+
- Added ability to specify family 2 group name when writing
|
|
28
|
+
- Added write support for a number of new XMP tags
|
|
29
|
+
- Added a new Nikon LensID
|
|
30
|
+
- Added new Canon and Minolta/Sony LensType values (thanks Jos Roost)
|
|
31
|
+
- Added a few of the new values defined in the DICOM 2011 specification
|
|
32
|
+
- Add standard XMP to a PNG image when writing, even if XMP already exists in
|
|
33
|
+
another non-standard chunk
|
|
34
|
+
- Decode a few more Sony tags (thanks Jos Roost)
|
|
35
|
+
- Decode a few more QuickTime tags
|
|
36
|
+
- Decode a few more Panasonic tags (thanks Thomas Modes)
|
|
37
|
+
- Extract EXIF information from WEBP images
|
|
38
|
+
- Extract a few more unknown tags in Samsung MP4 videos
|
|
39
|
+
- Extract ProfileName from the PNG iCCP chunk
|
|
40
|
+
- Improved error message if no matches found when writing to tag(s) specified
|
|
41
|
+
by wildcards
|
|
42
|
+
- Improved XML output so EXIF tags now report a count (if constant, and > 1)
|
|
43
|
+
- Avoid writing a few XMP-crs tags which have XMP-exifEX equivalents unless
|
|
44
|
+
specified explicitly
|
|
45
|
+
- Patched POD documentation in MIE.pm to remove non-ASCII characters
|
|
46
|
+
- Fixed bug adding back XMP tags in PDF files after deleting all in the same
|
|
47
|
+
command (also made XMP the preferred group when writing PDF files)
|
|
48
|
+
- Fixed bug extracting some font information from QuickTime videos
|
|
49
|
+
- Fixed inconsistencies in behaviour when extracting XML as a block from
|
|
50
|
+
JPEG2000 images
|
|
51
|
+
- Fixed problem where FileName was changed when using -srcfile option and
|
|
52
|
+
writing only the Directory
|
|
53
|
+
- API Changes:
|
|
54
|
+
- Added the PNGEarlyXMP option
|
|
55
|
+
- Internal Changes:
|
|
56
|
+
- Changed all "$exifTool" variable names to "$et" throughout -- my
|
|
57
|
+
apologies to the diff engines
|
|
58
|
+
|
|
59
|
+
Oct. 19, 2013 - Version 9.39
|
|
60
|
+
|
|
61
|
+
- Added a new PentaxCameraID and some new LensTypes (thanks Louis Granboulan)
|
|
62
|
+
- Added a new Nikon LensID
|
|
63
|
+
- Added a new Panasonic ShutterType
|
|
64
|
+
- Additions and improvements to Pentax makernote decoding for K-3
|
|
65
|
+
- Decode a number of new tags including purchase information from MP4 videos
|
|
66
|
+
- Decode FLIR information acquired by Extech MeterLink meters (thanks Tomas)
|
|
67
|
+
- Decode more Sony tags (thanks Jos Roost)
|
|
68
|
+
- Patched to suppress the run-time "No such file or directory" error that has
|
|
69
|
+
been seen when using the -csv option on Windows systems
|
|
70
|
+
|
|
71
|
+
Oct. 7, 2013 - Version 9.38
|
|
72
|
+
|
|
73
|
+
- Added read support for DPX images
|
|
74
|
+
- Added a new Pentax LensType
|
|
75
|
+
- Added a few new CanonModelID values
|
|
76
|
+
- Added a new XMP-apple-fi tag
|
|
77
|
+
- Decode a few more Canon tags (thanks Tomasz Kawecki)
|
|
78
|
+
- Decode a few more Sony tags (thanks Jos Roost)
|
|
79
|
+
- Improved the names of a few Apple tags (thanks Neal Krawetz) and added new
|
|
80
|
+
Composite tag
|
|
81
|
+
- Tolerate NMEA sentences with missing degrees written by some crappy software
|
|
82
|
+
- Changed Duration conversion to print number of days if more than 24 hours
|
|
83
|
+
|
|
10
84
|
Sept. 14, 2013 - Version 9.37
|
|
11
85
|
|
|
12
86
|
- Added support for maker notes from Apple iPhone5 iOS 7
|
|
@@ -38,6 +38,7 @@ html/TagNames/Casio.html
|
|
|
38
38
|
html/TagNames/Composite.html
|
|
39
39
|
html/TagNames/DICOM.html
|
|
40
40
|
html/TagNames/DNG.html
|
|
41
|
+
html/TagNames/DPX.html
|
|
41
42
|
html/TagNames/DV.html
|
|
42
43
|
html/TagNames/DarwinCore.html
|
|
43
44
|
html/TagNames/DjVu.html
|
|
@@ -210,6 +211,7 @@ lib/Image/ExifTool/Charset/Turkish.pm
|
|
|
210
211
|
lib/Image/ExifTool/Charset/Vietnam.pm
|
|
211
212
|
lib/Image/ExifTool/DICOM.pm
|
|
212
213
|
lib/Image/ExifTool/DNG.pm
|
|
214
|
+
lib/Image/ExifTool/DPX.pm
|
|
213
215
|
lib/Image/ExifTool/DV.pm
|
|
214
216
|
lib/Image/ExifTool/DarwinCore.pm
|
|
215
217
|
lib/Image/ExifTool/DjVu.pm
|
|
@@ -337,6 +339,7 @@ lib/Image/ExifTool/WritePDF.pl
|
|
|
337
339
|
lib/Image/ExifTool/WritePNG.pl
|
|
338
340
|
lib/Image/ExifTool/WritePhotoshop.pl
|
|
339
341
|
lib/Image/ExifTool/WritePostScript.pl
|
|
342
|
+
lib/Image/ExifTool/WriteQuickTime.pl
|
|
340
343
|
lib/Image/ExifTool/WriteXMP.pl
|
|
341
344
|
lib/Image/ExifTool/Writer.pl
|
|
342
345
|
lib/Image/ExifTool/XMP.pm
|
|
@@ -390,6 +393,8 @@ t/DICOM_2.out
|
|
|
390
393
|
t/DNG.t
|
|
391
394
|
t/DNG_2.out
|
|
392
395
|
t/DNG_3.out
|
|
396
|
+
t/DPX.t
|
|
397
|
+
t/DPX_2.out
|
|
393
398
|
t/DV.t
|
|
394
399
|
t/DV_2.out
|
|
395
400
|
t/DjVu.t
|
|
@@ -464,6 +469,7 @@ t/Geotag_5.out
|
|
|
464
469
|
t/Geotag_6.out
|
|
465
470
|
t/Geotag_7.out
|
|
466
471
|
t/Geotag_8.out
|
|
472
|
+
t/Geotag_9.out
|
|
467
473
|
t/HTML.t
|
|
468
474
|
t/HTML_2.out
|
|
469
475
|
t/IPTC.t
|
|
@@ -583,6 +589,7 @@ t/PNG.t
|
|
|
583
589
|
t/PNG_2.out
|
|
584
590
|
t/PNG_3.out
|
|
585
591
|
t/PNG_4.out
|
|
592
|
+
t/PNG_5.out
|
|
586
593
|
t/PPM.t
|
|
587
594
|
t/PPM_2.out
|
|
588
595
|
t/PPM_3.out
|
|
@@ -611,6 +618,8 @@ t/PostScript_3.out
|
|
|
611
618
|
t/QuickTime.t
|
|
612
619
|
t/QuickTime_2.out
|
|
613
620
|
t/QuickTime_3.out
|
|
621
|
+
t/QuickTime_4.out
|
|
622
|
+
t/QuickTime_5.out
|
|
614
623
|
t/RIFF.t
|
|
615
624
|
t/RIFF_2.out
|
|
616
625
|
t/RIFF_3.out
|
|
@@ -687,6 +696,9 @@ t/Writer_47.out
|
|
|
687
696
|
t/Writer_48.out
|
|
688
697
|
t/Writer_50.out
|
|
689
698
|
t/Writer_51.out
|
|
699
|
+
t/Writer_52.out
|
|
700
|
+
t/Writer_53.out
|
|
701
|
+
t/Writer_54.out
|
|
690
702
|
t/Writer_6.out
|
|
691
703
|
t/Writer_7.out
|
|
692
704
|
t/Writer_9.out
|
|
@@ -752,6 +764,7 @@ t/images/Casio2.jpg
|
|
|
752
764
|
t/images/CasioQVCI.jpg
|
|
753
765
|
t/images/DICOM.dcm
|
|
754
766
|
t/images/DNG.dng
|
|
767
|
+
t/images/DPX.dpx
|
|
755
768
|
t/images/DV.dv
|
|
756
769
|
t/images/DjVu.djvu
|
|
757
770
|
t/images/EXE.elf
|
|
@@ -783,6 +796,7 @@ t/images/GPS.jpg
|
|
|
783
796
|
t/images/GeoTiff.tif
|
|
784
797
|
t/images/Geotag.gpx
|
|
785
798
|
t/images/Geotag.igc
|
|
799
|
+
t/images/Geotag.kml
|
|
786
800
|
t/images/Geotag.log
|
|
787
801
|
t/images/Geotag.xml
|
|
788
802
|
t/images/Geotag2.log
|
|
File without changes
|
|
@@ -14,38 +14,38 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
|
14
14
|
|
|
15
15
|
File Types
|
|
16
16
|
------------+-------------+-------------+-------------+------------
|
|
17
|
-
3FR r |
|
|
18
|
-
3G2 r
|
|
19
|
-
3GP r
|
|
20
|
-
ACR r |
|
|
21
|
-
AFM r |
|
|
22
|
-
AI r/w |
|
|
23
|
-
AIFF r |
|
|
24
|
-
APE r |
|
|
25
|
-
ARW r/w |
|
|
26
|
-
ASF r |
|
|
27
|
-
AVI r |
|
|
28
|
-
BMP r |
|
|
29
|
-
BTF r |
|
|
30
|
-
CHM r |
|
|
31
|
-
COS r |
|
|
32
|
-
CR2 r/w |
|
|
33
|
-
CRW r/w |
|
|
34
|
-
CS1 r/w |
|
|
35
|
-
DCM r |
|
|
36
|
-
DCP r/w |
|
|
37
|
-
DCR r |
|
|
38
|
-
DFONT r |
|
|
39
|
-
DIVX r |
|
|
40
|
-
DJVU r |
|
|
41
|
-
DLL r |
|
|
42
|
-
DNG r/w |
|
|
43
|
-
DOC r |
|
|
44
|
-
DOCX r |
|
|
17
|
+
3FR r | EIP r | LNK r | PAC r | RWL r/w
|
|
18
|
+
3G2 r/w | EPS r/w | M2TS r | PAGES r | RWZ r
|
|
19
|
+
3GP r/w | ERF r/w | M4A/V r/w | PBM r/w | RM r
|
|
20
|
+
ACR r | EXE r | MEF r/w | PCD r | SO r
|
|
21
|
+
AFM r | EXIF r/w/c | MIE r/w/c | PDF r/w | SR2 r/w
|
|
22
|
+
AI r/w | EXR r | MIFF r | PEF r/w | SRF r
|
|
23
|
+
AIFF r | F4A/V r/w | MKA r | PFA r | SRW r/w
|
|
24
|
+
APE r | FFF r/w | MKS r | PFB r | SVG r
|
|
25
|
+
ARW r/w | FLA r | MKV r | PFM r | SWF r
|
|
26
|
+
ASF r | FLAC r | MNG r/w | PGF r | THM r/w
|
|
27
|
+
AVI r | FLV r | MODD r | PGM r/w | TIFF r/w
|
|
28
|
+
BMP r | FPF r | MOS r/w | PLIST r | TORRENT r
|
|
29
|
+
BTF r | FPX r | MOV r/w | PICT r | TTC r
|
|
30
|
+
CHM r | GIF r/w | MP3 r | PMP r | TTF r
|
|
31
|
+
COS r | GZ r | MP4 r/w | PNG r/w | VRD r/w/c
|
|
32
|
+
CR2 r/w | HDP r/w | MPC r | PPM r/w | VSD r
|
|
33
|
+
CRW r/w | HDR r | MPG r | PPT r | WAV r
|
|
34
|
+
CS1 r/w | HTML r | MPO r/w | PPTX r | WDP r/w
|
|
35
|
+
DCM r | ICC r/w/c | MQV r/w | PS r/w | WEBP r
|
|
36
|
+
DCP r/w | IDML r | MRW r/w | PSB r/w | WEBM r
|
|
37
|
+
DCR r | IIQ r/w | MXF r | PSD r/w | WMA r
|
|
38
|
+
DFONT r | IND r/w | NEF r/w | PSP r | WMV r
|
|
39
|
+
DIVX r | INX r | NRW r/w | QTIF r/w | WV r
|
|
40
|
+
DJVU r | ITC r | NUMBERS r | RA r | X3F r/w
|
|
41
|
+
DLL r | J2C r | ODP r | RAF r/w | XCF r
|
|
42
|
+
DNG r/w | JNG r/w | ODS r | RAM r | XLS r
|
|
43
|
+
DOC r | JP2 r/w | ODT r | RAR r | XLSX r
|
|
44
|
+
DOCX r | JPEG r/w | OFR r | RAW r/w | XMP r/w/c
|
|
45
|
+
DPX r | K25 r | OGG r | RIFF r | ZIP r
|
|
45
46
|
DV r | KDC r | OGV r | RSRC r |
|
|
46
|
-
DVB r
|
|
47
|
+
DVB r/w | KEY r | ORF r/w | RTF r |
|
|
47
48
|
DYLIB r | LA r | OTF r | RW2 r/w |
|
|
48
|
-
EIP r | LNK r | PAC r | RWL r/w |
|
|
49
49
|
|
|
50
50
|
Meta Information
|
|
51
51
|
----------------------+----------------------+---------------------
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
use strict;
|
|
13
13
|
require 5.004;
|
|
14
14
|
|
|
15
|
-
my $version = '9.
|
|
15
|
+
my $version = '9.41';
|
|
16
16
|
|
|
17
17
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
|
18
18
|
my $exeDir;
|
|
@@ -137,7 +137,7 @@ my $joinLists; # flag set to join list values into a single string
|
|
|
137
137
|
my $json; # flag for JSON/PHP output format (1=JSON, 2=PHP)
|
|
138
138
|
my $listItem; # item number for extracting single item from a list
|
|
139
139
|
my $listSep; # list item separator (', ' by default)
|
|
140
|
-
my $
|
|
140
|
+
my $mt; # main ExifTool object
|
|
141
141
|
my $multiFile; # non-zero if we are scanning multiple files
|
|
142
142
|
my $outFormat; # -1=Canon format, 0=same-line, 1=tag names, 2=values only
|
|
143
143
|
my $outOpt; # output file or directory name
|
|
@@ -237,7 +237,14 @@ sub Exit {
|
|
|
237
237
|
exit shift;
|
|
238
238
|
}
|
|
239
239
|
# my warning and error routines (NEVER say "die"!)
|
|
240
|
-
sub Warn {
|
|
240
|
+
sub Warn {
|
|
241
|
+
if ($quiet < 2 or $_[0] =~ /^Error/) {
|
|
242
|
+
my $oldWarn = $SIG{'__WARN__'};
|
|
243
|
+
delete $SIG{'__WARN__'};
|
|
244
|
+
warn(@_);
|
|
245
|
+
$SIG{'__WARN__'} = $oldWarn if defined $oldWarn;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
241
248
|
sub Error { Warn @_; $rtnVal = 1; }
|
|
242
249
|
sub WarnOnce($) {
|
|
243
250
|
Warn(@_) and $warnedOnce{$_[0]} = 1 unless $warnedOnce{$_[0]};
|
|
@@ -315,7 +322,7 @@ $rtnVal = 0 unless defined $rtnVal;
|
|
|
315
322
|
|
|
316
323
|
# initialize necessary static file-scope variables
|
|
317
324
|
# (not done: @commonArgs, @moreArgs, $critical, $binaryStdout, $helped,
|
|
318
|
-
# $interrupted, $
|
|
325
|
+
# $interrupted, $mt, $pause, $rtnVal, $stayOpen, $stayOpenBuff, $stayOpenFile)
|
|
319
326
|
undef @csvFiles;
|
|
320
327
|
undef @csvTags;
|
|
321
328
|
undef @delFiles;
|
|
@@ -428,14 +435,14 @@ if ($^O eq 'MSWin32' and eval 'require File::Glob') {
|
|
|
428
435
|
$doGlob = 1;
|
|
429
436
|
}
|
|
430
437
|
|
|
431
|
-
$
|
|
438
|
+
$mt = new Image::ExifTool; # create ExifTool object
|
|
432
439
|
|
|
433
440
|
# don't extract duplicates by default unless set by UserDefined::Options
|
|
434
|
-
$
|
|
441
|
+
$mt->Options(Duplicates => 0) unless %Image::ExifTool::UserDefined::Options
|
|
435
442
|
and defined $Image::ExifTool::UserDefined::Options{Duplicates};
|
|
436
443
|
|
|
437
444
|
# default is to join lists if the List option was set in the config file
|
|
438
|
-
$joinLists = 1 if defined $
|
|
445
|
+
$joinLists = 1 if defined $mt->Options('List') and not $mt->Options('List');
|
|
439
446
|
|
|
440
447
|
# parse command-line options in 2 passes...
|
|
441
448
|
# pass 1: set all of our ExifTool options
|
|
@@ -619,13 +626,20 @@ for (;;) {
|
|
|
619
626
|
unshift @ARGV, @newArgs;
|
|
620
627
|
next;
|
|
621
628
|
}
|
|
622
|
-
/^(-?)(a|duplicates)$/i and $
|
|
629
|
+
/^(-?)(a|duplicates)$/i and $mt->Options(Duplicates => ($1 ? 0 : 1)), next;
|
|
630
|
+
if ($a eq 'api') {
|
|
631
|
+
my $opt = shift;
|
|
632
|
+
defined $opt or Error("Expected OPT[=VAL] argument for -api option\n"), $badCmd=1, next;
|
|
633
|
+
my $val = ($opt =~ s/=(.*)//) ? $1 : 1;
|
|
634
|
+
$mt->Options($opt => (length($val) ? $val : undef));
|
|
635
|
+
next;
|
|
636
|
+
}
|
|
623
637
|
/^arg(s|format)$/i and $argFormat = 1, next;
|
|
624
|
-
/^b(inary)?$/i and $
|
|
638
|
+
/^b(inary)?$/i and $mt->Options(Binary => 1), $binaryOutput = 1, next;
|
|
625
639
|
if (/^c(oordFormat)?$/i) {
|
|
626
640
|
my $fmt = shift;
|
|
627
641
|
$fmt or Error("Expecting coordinate format for -c option\n"), $badCmd=1, next;
|
|
628
|
-
$
|
|
642
|
+
$mt->Options('CoordFormat', $fmt);
|
|
629
643
|
next;
|
|
630
644
|
}
|
|
631
645
|
if ($a eq 'charset') {
|
|
@@ -637,14 +651,14 @@ for (;;) {
|
|
|
637
651
|
PrintTagList('Available character sets', sort keys %charsets);
|
|
638
652
|
$helped = 1;
|
|
639
653
|
} elsif ($charset !~ s/^(\w+)=// or lc($1) eq 'exiftool') {
|
|
640
|
-
$
|
|
641
|
-
$utf8 = ($
|
|
654
|
+
$mt->Options(Charset => $charset);
|
|
655
|
+
$utf8 = ($mt->Options('Charset') eq 'UTF8');
|
|
642
656
|
} else {
|
|
643
657
|
# set internal encoding of specified metadata type
|
|
644
658
|
my $type = { id3 => 'ID3', iptc => 'IPTC', exif => 'EXIF',
|
|
645
659
|
photoshop => 'Photoshop', quicktime => 'QuickTime' }->{lc $1};
|
|
646
660
|
$type or Warn("Unknown type for -charset option: $1\n"), next;
|
|
647
|
-
$
|
|
661
|
+
$mt->Options("Charset$type" => $charset);
|
|
648
662
|
}
|
|
649
663
|
next;
|
|
650
664
|
}
|
|
@@ -676,13 +690,13 @@ for (;;) {
|
|
|
676
690
|
if (/^d$/ or $a eq 'dateformat') {
|
|
677
691
|
my $fmt = shift;
|
|
678
692
|
$fmt or Error("Expecting date format for -d option\n"), $badCmd=1, next;
|
|
679
|
-
$
|
|
693
|
+
$mt->Options('DateFormat', $fmt);
|
|
680
694
|
next;
|
|
681
695
|
}
|
|
682
696
|
(/^D$/ or $a eq 'decimal') and $showTagID = 'D', next;
|
|
683
697
|
/^delete_original(!?)$/i and $deleteOrig = ($1 ? 2 : 1), next;
|
|
684
|
-
(/^e$/ or $a eq '-composite') and $
|
|
685
|
-
(/^-e$/ or $a eq 'composite') and $
|
|
698
|
+
(/^e$/ or $a eq '-composite') and $mt->Options(Composite => 0), next;
|
|
699
|
+
(/^-e$/ or $a eq 'composite') and $mt->Options(Composite => 1), next;
|
|
686
700
|
(/^E$/ or $a eq 'escapehtml') and require Image::ExifTool::HTML and $escapeHTML = 1, next;
|
|
687
701
|
($a eq 'ex' or $a eq 'escapexml') and $escapeXML = 1, next;
|
|
688
702
|
if (/^echo(\d)?$/i) {
|
|
@@ -699,8 +713,8 @@ for (;;) {
|
|
|
699
713
|
next;
|
|
700
714
|
}
|
|
701
715
|
if (/^(ee|extractembedded)$/i) {
|
|
702
|
-
$
|
|
703
|
-
$
|
|
716
|
+
$mt->Options(ExtractEmbedded => 1);
|
|
717
|
+
$mt->Options(Duplicates => 1);
|
|
704
718
|
next;
|
|
705
719
|
}
|
|
706
720
|
# (-execute handled at top of loop)
|
|
@@ -714,30 +728,30 @@ for (;;) {
|
|
|
714
728
|
next;
|
|
715
729
|
}
|
|
716
730
|
if (/^f$/ or $a eq 'forceprint') {
|
|
717
|
-
$forcePrint = $
|
|
731
|
+
$forcePrint = $mt->Options('MissingTagValue');
|
|
718
732
|
unless (defined $forcePrint) {
|
|
719
733
|
$forcePrint = '-';
|
|
720
|
-
$
|
|
734
|
+
$mt->Options(MissingTagValue => '-');
|
|
721
735
|
}
|
|
722
736
|
next;
|
|
723
737
|
}
|
|
724
738
|
if (/^F([-+]?\d*)$/ or /^fixbase([-+]?\d*)$/i) {
|
|
725
|
-
$
|
|
739
|
+
$mt->Options(FixBase => $1);
|
|
726
740
|
next;
|
|
727
741
|
}
|
|
728
742
|
if (/^fast(\d*)$/i) {
|
|
729
|
-
$
|
|
743
|
+
$mt->Options(FastScan => (length $1 ? $1 : 1));
|
|
730
744
|
next;
|
|
731
745
|
}
|
|
732
746
|
if ($a eq 'fileorder') {
|
|
733
747
|
push @fileOrder, shift if @ARGV;
|
|
734
748
|
next;
|
|
735
749
|
}
|
|
736
|
-
$a eq 'globaltimeshift' and $
|
|
750
|
+
$a eq 'globaltimeshift' and $mt->Options(GlobalTimeShift => shift), next;
|
|
737
751
|
if (/^(g)(roupHeadings|roupNames)?([\d:]*)$/i) {
|
|
738
752
|
$showGroup = $3 || 0;
|
|
739
753
|
$allGroup = ($2 ? lc($2) eq 'roupnames' : $1 eq 'G');
|
|
740
|
-
$
|
|
754
|
+
$mt->Options(SavePath => 1) if $showGroup =~ /\b5\b/;
|
|
741
755
|
next;
|
|
742
756
|
}
|
|
743
757
|
if ($a eq 'geotag') {
|
|
@@ -764,7 +778,7 @@ for (;;) {
|
|
|
764
778
|
if (/^htmldump([-+]?\d+)?$/i) {
|
|
765
779
|
$verbose = ($verbose || 0) + 1;
|
|
766
780
|
$html = 2;
|
|
767
|
-
$
|
|
781
|
+
$mt->Options(HtmlDumpBase => $1) if defined $1;
|
|
768
782
|
next;
|
|
769
783
|
}
|
|
770
784
|
if (/^i(gnore)?$/i) {
|
|
@@ -798,7 +812,7 @@ for (;;) {
|
|
|
798
812
|
$csvAdd = 2 if $1 eq '+=';
|
|
799
813
|
$vout = \*STDERR if $srcStdin;
|
|
800
814
|
$verbose and print $vout "Reading JSON file $jsonFile\n";
|
|
801
|
-
my $chset = $
|
|
815
|
+
my $chset = $mt->Options('Charset');
|
|
802
816
|
require Image::ExifTool::Import;
|
|
803
817
|
my $msg = Image::ExifTool::Import::ReadJSON($jsonFile, \%database, $forcePrint, $chset);
|
|
804
818
|
$msg and Warn("$msg\n");
|
|
@@ -807,28 +821,28 @@ for (;;) {
|
|
|
807
821
|
} else {
|
|
808
822
|
$json = 1;
|
|
809
823
|
$html = $xml = 0;
|
|
810
|
-
$
|
|
824
|
+
$mt->Options(Duplicates => 1);
|
|
811
825
|
require Image::ExifTool::XMP; # for FixUTF8()
|
|
812
826
|
}
|
|
813
827
|
next;
|
|
814
828
|
}
|
|
815
829
|
/^(k|pause)$/i and $pause = 1, next;
|
|
816
830
|
(/^l$/ or $a eq 'long') and --$outFormat, next;
|
|
817
|
-
(/^L$/ or $a eq 'latin') and $utf8 = 0, $
|
|
831
|
+
(/^L$/ or $a eq 'latin') and $utf8 = 0, $mt->Options(Charset => 'Latin'), next;
|
|
818
832
|
if ($a eq 'lang') {
|
|
819
833
|
my $lang = (@ARGV and $ARGV[0] !~ /^-/) ? shift : undef;
|
|
820
834
|
if ($lang) {
|
|
821
835
|
# make lower case and use underline as a separator (ie. 'en_ca')
|
|
822
836
|
$lang =~ tr/-A-Z/_a-z/;
|
|
823
|
-
$
|
|
824
|
-
next if $lang eq $
|
|
837
|
+
$mt->Options(Lang => $lang);
|
|
838
|
+
next if $lang eq $mt->Options('Lang');
|
|
825
839
|
} else {
|
|
826
840
|
$pass or push(@nextPass, '-lang'), next;
|
|
827
841
|
}
|
|
828
842
|
my $langs = "Available languages:\n";
|
|
829
843
|
$langs .= " $_ - $Image::ExifTool::langName{$_}\n" foreach @Image::ExifTool::langs;
|
|
830
844
|
$langs =~ tr/_/-/; # display dashes instead of underlines in language codes
|
|
831
|
-
$langs = $
|
|
845
|
+
$langs = $mt->Decode($langs, 'UTF8');
|
|
832
846
|
$langs = Image::ExifTool::HTML::EscapeHTML($langs) if $escapeHTML;
|
|
833
847
|
$lang and Error("Invalid or unsupported language '$lang'.\n$langs"), $badCmd=1, next;
|
|
834
848
|
print $langs;
|
|
@@ -840,9 +854,9 @@ for (;;) {
|
|
|
840
854
|
defined $listItem or Warn("Expecting index for -listItem option\n");
|
|
841
855
|
next;
|
|
842
856
|
}
|
|
843
|
-
/^(m|ignoreminorerrors)$/i and $
|
|
844
|
-
/^(n|-printconv)$/i and $
|
|
845
|
-
/^(-n|printconv)$/i and $
|
|
857
|
+
/^(m|ignoreminorerrors)$/i and $mt->Options(IgnoreMinorErrors => 1), next;
|
|
858
|
+
/^(n|-printconv)$/i and $mt->Options(PrintConv => 0), next;
|
|
859
|
+
/^(-n|printconv)$/i and $mt->Options(PrintConv => 1), next;
|
|
846
860
|
if (/^o(ut)?$/i) {
|
|
847
861
|
$outOpt = shift;
|
|
848
862
|
defined $outOpt or Error("Expected output file or directory name for -o option\n"), $badCmd=1, next;
|
|
@@ -855,7 +869,7 @@ for (;;) {
|
|
|
855
869
|
/^overwrite_original_in_place$/i and $overwriteOrig = 2, next;
|
|
856
870
|
(/^p$/ or $a eq 'printformat') and LoadPrintFormat(shift), next;
|
|
857
871
|
(/^P$/ or $a eq 'preserve') and $preserveTime = 1, next;
|
|
858
|
-
/^password$/i and $
|
|
872
|
+
/^password$/i and $mt->Options(Password => shift), next;
|
|
859
873
|
if ($a eq 'progress') {
|
|
860
874
|
$progress = 0;
|
|
861
875
|
$verbose = 0 unless defined $verbose;
|
|
@@ -879,11 +893,11 @@ for (;;) {
|
|
|
879
893
|
/^restore_original$/i and $deleteOrig = 0, next;
|
|
880
894
|
(/^S$/ or $a eq 'veryshort') and $outFormat+=2, next;
|
|
881
895
|
/^s(hort)?(\d*)$/i and $outFormat = $2 eq '' ? $outFormat + 1 : $2, next;
|
|
882
|
-
/^scanforxmp$/i and $
|
|
896
|
+
/^scanforxmp$/i and $mt->Options(ScanForXMP => 1), next;
|
|
883
897
|
if (/^sep(arator)?$/i) {
|
|
884
898
|
$listSep = shift;
|
|
885
899
|
defined $listSep or Error("Expecting list item separator for -sep option\n"), $badCmd=1, next;
|
|
886
|
-
$
|
|
900
|
+
$mt->Options(ListSep => $listSep);
|
|
887
901
|
$joinLists = 1;
|
|
888
902
|
# also split when writing values
|
|
889
903
|
my $listSplit = quotemeta $listSep;
|
|
@@ -891,7 +905,7 @@ for (;;) {
|
|
|
891
905
|
$listSplit =~ s/(\\ )+/\\s\*/g;
|
|
892
906
|
# but a single space alone matches one or more whitespace characters
|
|
893
907
|
$listSplit = '\\s+' if $listSplit eq '\\s*';
|
|
894
|
-
$
|
|
908
|
+
$mt->Options(ListSplit => $listSplit);
|
|
895
909
|
next;
|
|
896
910
|
}
|
|
897
911
|
/^sort$/i and $sortOpt = 1, next;
|
|
@@ -928,7 +942,7 @@ for (;;) {
|
|
|
928
942
|
}
|
|
929
943
|
if (/^(-)?struct$/i) {
|
|
930
944
|
$structOpt = $1 ? 0 : 1;
|
|
931
|
-
$
|
|
945
|
+
$mt->Options(Struct => $structOpt);
|
|
932
946
|
# require XMPStruct in case we need to serialize a structure
|
|
933
947
|
require 'Image/ExifTool/XMPStruct.pl' if $structOpt;
|
|
934
948
|
next;
|
|
@@ -936,16 +950,16 @@ for (;;) {
|
|
|
936
950
|
/^t(ab)?$/ and $tabFormat = 1, next;
|
|
937
951
|
if (/^T$/ or $a eq 'table') {
|
|
938
952
|
$tabFormat = 1; $outFormat+=2; ++$quiet;
|
|
939
|
-
$forcePrint = $
|
|
953
|
+
$forcePrint = $mt->Options('MissingTagValue');
|
|
940
954
|
unless (defined $forcePrint) {
|
|
941
955
|
$forcePrint = '-';
|
|
942
|
-
$
|
|
956
|
+
$mt->Options(MissingTagValue => '-');
|
|
943
957
|
}
|
|
944
958
|
next;
|
|
945
959
|
}
|
|
946
960
|
if (/^(u)(nknown(2)?)?$/i) {
|
|
947
961
|
my $inc = ($3 or (not $2 and $1 eq 'U')) ? 2 : 1;
|
|
948
|
-
$
|
|
962
|
+
$mt->Options(Unknown => $mt->Options('Unknown') + $inc);
|
|
949
963
|
next;
|
|
950
964
|
}
|
|
951
965
|
if ($a eq 'use') {
|
|
@@ -957,7 +971,6 @@ for (;;) {
|
|
|
957
971
|
eval "require $module" or
|
|
958
972
|
eval "require '$module'")
|
|
959
973
|
{
|
|
960
|
-
delete $SIG{'__WARN__'};
|
|
961
974
|
Error("Error using module $module\n");
|
|
962
975
|
$badCmd = 1;
|
|
963
976
|
}
|
|
@@ -995,7 +1008,7 @@ for (;;) {
|
|
|
995
1008
|
my $wm = shift;
|
|
996
1009
|
defined $wm or Error("Expecting argument for -$_ option\n"), $badCmd=1, next;
|
|
997
1010
|
$wm =~ /^[wcg]*$/i or Error("Invalid argument for -$_ option\n"), $badCmd=1, next;
|
|
998
|
-
$
|
|
1011
|
+
$mt->Options(WriteMode => $wm);
|
|
999
1012
|
next;
|
|
1000
1013
|
}
|
|
1001
1014
|
if (/^x$/ or $a eq 'exclude') {
|
|
@@ -1009,14 +1022,14 @@ for (;;) {
|
|
|
1009
1022
|
}
|
|
1010
1023
|
next;
|
|
1011
1024
|
}
|
|
1012
|
-
(/^X$/ or $a eq 'xmlformat') and $xml = 1, $html = $json = 0, $
|
|
1025
|
+
(/^X$/ or $a eq 'xmlformat') and $xml = 1, $html = $json = 0, $mt->Options(Duplicates => 1), next;
|
|
1013
1026
|
if (/^php$/i) {
|
|
1014
1027
|
$json = 2;
|
|
1015
1028
|
$html = $xml = 0;
|
|
1016
|
-
$
|
|
1029
|
+
$mt->Options(Duplicates=>1);
|
|
1017
1030
|
next;
|
|
1018
1031
|
}
|
|
1019
|
-
/^z(ip)?$/i and $doUnzip = 1, $
|
|
1032
|
+
/^z(ip)?$/i and $doUnzip = 1, $mt->Options(Compress => 1, Compact => 1), next;
|
|
1020
1033
|
$_ eq '' and push(@files, '-'), $srcStdin = 1, next; # read STDIN
|
|
1021
1034
|
length $_ eq 1 and $_ ne '*' and Error("Unknown option -$_\n"), $badCmd=1, next;
|
|
1022
1035
|
if (/^[^<]+(<?)=(.*)/s) {
|
|
@@ -1078,11 +1091,11 @@ for (;;) {
|
|
|
1078
1091
|
|
|
1079
1092
|
# set verbose output to STDERR if output could be to console
|
|
1080
1093
|
$vout = \*STDERR if $srcStdin and ($isWriting or @newValues);
|
|
1081
|
-
$
|
|
1094
|
+
$mt->Options(TextOut => $vout) if $vout eq \*STDERR;
|
|
1082
1095
|
|
|
1083
1096
|
# change default EXIF string encoding if MWG used
|
|
1084
|
-
if ($useMWG and not defined $
|
|
1085
|
-
$
|
|
1097
|
+
if ($useMWG and not defined $mt->Options('CharsetEXIF')) {
|
|
1098
|
+
$mt->Options(CharsetEXIF => 'UTF8');
|
|
1086
1099
|
}
|
|
1087
1100
|
|
|
1088
1101
|
# print help
|
|
@@ -1152,24 +1165,24 @@ if ($textOut and $csv and $csv eq 'CSV' and not $isWriting) {
|
|
|
1152
1165
|
|
|
1153
1166
|
if ($escapeHTML or $json) {
|
|
1154
1167
|
# must be UTF8 for HTML conversion and JSON output
|
|
1155
|
-
$
|
|
1168
|
+
$mt->Options(Charset => 'UTF8');
|
|
1156
1169
|
# use Escape option to do our HTML escaping unless XML output
|
|
1157
|
-
$
|
|
1170
|
+
$mt->Options(Escape => 'HTML') if $escapeHTML and not $xml;
|
|
1158
1171
|
} elsif ($escapeXML and not $xml) {
|
|
1159
|
-
$
|
|
1172
|
+
$mt->Options(Escape => 'XML');
|
|
1160
1173
|
}
|
|
1161
1174
|
|
|
1162
1175
|
# set sort option
|
|
1163
1176
|
if ($sortOpt) {
|
|
1164
1177
|
# (note that -csv sorts alphabetically by default anyway if more than 1 file)
|
|
1165
1178
|
my $sort = ($outFormat > 0 or $xml or $json or $csv) ? 'Tag' : 'Descr';
|
|
1166
|
-
$
|
|
1179
|
+
$mt->Options(Sort => $sort, Sort2 => $sort);
|
|
1167
1180
|
}
|
|
1168
1181
|
|
|
1169
1182
|
# set up for RDF/XML, JSON and PHP output formats
|
|
1170
1183
|
if ($xml) {
|
|
1171
1184
|
require Image::ExifTool::XMP; # for EscapeXML()
|
|
1172
|
-
my $charset = $
|
|
1185
|
+
my $charset = $mt->Options('Charset');
|
|
1173
1186
|
# standard XML encoding names for supported Charset settings
|
|
1174
1187
|
# (ref http://www.iana.org/assignments/character-sets)
|
|
1175
1188
|
my %encoding = (
|
|
@@ -1188,7 +1201,7 @@ if ($xml) {
|
|
|
1188
1201
|
# switch to UTF-8 if we don't have a standard encoding name
|
|
1189
1202
|
unless ($encoding{$charset}) {
|
|
1190
1203
|
$charset = 'UTF8';
|
|
1191
|
-
$
|
|
1204
|
+
$mt->Options(Charset => $charset);
|
|
1192
1205
|
}
|
|
1193
1206
|
# set file header/trailer for XML output
|
|
1194
1207
|
$fileHeader = "<?xml version='1.0' encoding='$encoding{$charset}'?>\n" .
|
|
@@ -1196,7 +1209,7 @@ if ($xml) {
|
|
|
1196
1209
|
$fileTrailer = "</rdf:RDF>\n";
|
|
1197
1210
|
# extract as a list unless short output format
|
|
1198
1211
|
$joinLists = 1 if $outFormat > 0;
|
|
1199
|
-
$
|
|
1212
|
+
$mt->Options(List => 1) unless $joinLists;
|
|
1200
1213
|
$showGroup = $allGroup = 1; # always show group 1
|
|
1201
1214
|
# set binaryOutput flag to 0 or undef (0 = output encoded binary in XML)
|
|
1202
1215
|
$binaryOutput = ($outFormat > 0 ? undef : 0) if $binaryOutput;
|
|
@@ -1215,10 +1228,10 @@ if ($xml) {
|
|
|
1215
1228
|
# to escape sequences in the strings)
|
|
1216
1229
|
$binaryOutput = 0 if $binaryOutput;
|
|
1217
1230
|
}
|
|
1218
|
-
$
|
|
1219
|
-
$
|
|
1231
|
+
$mt->Options(List => 1) unless $joinLists;
|
|
1232
|
+
$mt->Options(Duplicates => 0) unless defined $showGroup;
|
|
1220
1233
|
} elsif ($structOpt) {
|
|
1221
|
-
$
|
|
1234
|
+
$mt->Options(List => 1);
|
|
1222
1235
|
} else {
|
|
1223
1236
|
$joinLists = 1; # join lists for all other unstructured output formats
|
|
1224
1237
|
}
|
|
@@ -1249,9 +1262,9 @@ if ($verbose) {
|
|
|
1249
1262
|
undef $binaryOutput unless $tagOut; # disable conflicting option
|
|
1250
1263
|
if ($html) {
|
|
1251
1264
|
$html = 2; # flag for html dump
|
|
1252
|
-
$
|
|
1265
|
+
$mt->Options(HtmlDump => $verbose);
|
|
1253
1266
|
} else {
|
|
1254
|
-
$
|
|
1267
|
+
$mt->Options(Verbose => $verbose) unless $tagOut;
|
|
1255
1268
|
}
|
|
1256
1269
|
} elsif (defined $verbose) {
|
|
1257
1270
|
# auto-flush output when -v0 is used
|
|
@@ -1277,7 +1290,7 @@ if (@newValues) {
|
|
|
1277
1290
|
if (ref $_ eq 'HASH') {
|
|
1278
1291
|
# save new values now if we stored a "SaveCount" marker
|
|
1279
1292
|
if ($$_{SaveCount}) {
|
|
1280
|
-
$saveCount = $
|
|
1293
|
+
$saveCount = $mt->SaveNewValues();
|
|
1281
1294
|
$needSave = 0;
|
|
1282
1295
|
# insert marker to load values from CSV file now if this was the CSV file
|
|
1283
1296
|
push @dynamicFiles, \$csv if $$_{SaveCount} == $csvSaveCount;
|
|
@@ -1309,7 +1322,7 @@ if (@newValues) {
|
|
|
1309
1322
|
$setTags = $setTagsList{$newVal}[$i] if $setTagsList{$newVal}[$i];
|
|
1310
1323
|
}
|
|
1311
1324
|
# set specified tags from this file
|
|
1312
|
-
unless (DoSetFromFile($
|
|
1325
|
+
unless (DoSetFromFile($mt, $newVal, $setTags)) {
|
|
1313
1326
|
$rtnVal = 1;
|
|
1314
1327
|
next Command;
|
|
1315
1328
|
}
|
|
@@ -1345,14 +1358,14 @@ if (@newValues) {
|
|
|
1345
1358
|
# set $newVal to '' if deleting nothing
|
|
1346
1359
|
$newVal = '' if $1 eq '-' and not defined $newVal;
|
|
1347
1360
|
}
|
|
1348
|
-
my ($rtn, $wrn) = $
|
|
1361
|
+
my ($rtn, $wrn) = $mt->SetNewValue($tag, $newVal, %opts);
|
|
1349
1362
|
$needSave = 1;
|
|
1350
1363
|
++$isWriting if $rtn;
|
|
1351
1364
|
$wrn and Warn "Warning: $wrn\n";
|
|
1352
1365
|
}
|
|
1353
1366
|
# exclude specified tags
|
|
1354
1367
|
foreach (@exclude) {
|
|
1355
|
-
$
|
|
1368
|
+
$mt->SetNewValue($_, undef, Replace => 2);
|
|
1356
1369
|
$needSave = 1;
|
|
1357
1370
|
}
|
|
1358
1371
|
unless ($isWriting or $outOpt or @tags) {
|
|
@@ -1371,20 +1384,20 @@ if ($isWriting and @tags and not $outOpt) {
|
|
|
1371
1384
|
}
|
|
1372
1385
|
# save current state of new values if setting values from target file
|
|
1373
1386
|
# or if we may be translating to a different format
|
|
1374
|
-
$
|
|
1387
|
+
$mt->SaveNewValues() if $outOpt or (@dynamicFiles and $needSave);
|
|
1375
1388
|
|
|
1376
1389
|
$multiFile = 1 if @files > 1;
|
|
1377
|
-
@exclude and $
|
|
1390
|
+
@exclude and $mt->Options(Exclude => \@exclude);
|
|
1378
1391
|
|
|
1379
1392
|
undef $binaryOutput if $html;
|
|
1380
1393
|
|
|
1381
1394
|
if ($binaryOutput) {
|
|
1382
1395
|
$outFormat = 99; # shortest possible output format
|
|
1383
|
-
$
|
|
1396
|
+
$mt->Options(PrintConv => 0);
|
|
1384
1397
|
unless ($textOut or $binaryStdout) {
|
|
1385
1398
|
binmode(STDOUT);
|
|
1386
1399
|
$binaryStdout = 1;
|
|
1387
|
-
$
|
|
1400
|
+
$mt->Options(TextOut => ($vout = \*STDERR));
|
|
1388
1401
|
}
|
|
1389
1402
|
# disable conflicting options
|
|
1390
1403
|
undef $showGroup;
|
|
@@ -1392,7 +1405,7 @@ if ($binaryOutput) {
|
|
|
1392
1405
|
|
|
1393
1406
|
# sort by groups to look nicer depending on options
|
|
1394
1407
|
if (defined $showGroup and not (@tags and $allGroup)) {
|
|
1395
|
-
$
|
|
1408
|
+
$mt->Options(Sort => "Group$showGroup");
|
|
1396
1409
|
}
|
|
1397
1410
|
|
|
1398
1411
|
if (defined $textOut) {
|
|
@@ -1420,14 +1433,14 @@ if ($outOpt) {
|
|
|
1420
1433
|
}
|
|
1421
1434
|
|
|
1422
1435
|
# set flag to fix description lengths if necessary
|
|
1423
|
-
$fixLen = ($utf8 and $
|
|
1436
|
+
$fixLen = ($utf8 and $mt->Options('Lang') ne 'en' and eval 'require Encode');
|
|
1424
1437
|
|
|
1425
1438
|
# sort input files if specified
|
|
1426
1439
|
if (@fileOrder) {
|
|
1427
1440
|
my @allFiles;
|
|
1428
1441
|
ProcessFiles(undef, \@allFiles);
|
|
1429
1442
|
my $sortTool = new Image::ExifTool;
|
|
1430
|
-
$sortTool->Options(PrintConv => $
|
|
1443
|
+
$sortTool->Options(PrintConv => $mt->Options('PrintConv'));
|
|
1431
1444
|
$sortTool->Options(Duplicates => 0);
|
|
1432
1445
|
my (%sortBy, %isFloat, @rev, $file);
|
|
1433
1446
|
# save reverse sort flags
|
|
@@ -1469,22 +1482,24 @@ if (@fileOrder) {
|
|
|
1469
1482
|
# set file count for progress message
|
|
1470
1483
|
$progressMax = scalar @files if defined $progress;
|
|
1471
1484
|
|
|
1472
|
-
# store duplicate database information under
|
|
1485
|
+
# store duplicate database information under absolute path
|
|
1473
1486
|
my @dbKeys = keys %database;
|
|
1474
1487
|
if (@dbKeys and require Cwd) {
|
|
1488
|
+
undef $evalWarning;
|
|
1489
|
+
local $SIG{'__WARN__'} = sub { $evalWarning = $_[0] };
|
|
1475
1490
|
foreach (@dbKeys) {
|
|
1476
|
-
my $
|
|
1477
|
-
if (defined $
|
|
1478
|
-
$database{$
|
|
1491
|
+
my $absFile = Cwd::abs_path($_);
|
|
1492
|
+
if (defined $absFile) {
|
|
1493
|
+
$database{$absFile} = $database{$_} unless $database{$absFile};
|
|
1479
1494
|
} else {
|
|
1480
1495
|
# (may happen on Mac if the filename encoding is incorrect in the database)
|
|
1481
|
-
Warn "Error generating
|
|
1496
|
+
Warn "Error generating absolute path for $_\n";
|
|
1482
1497
|
}
|
|
1483
1498
|
}
|
|
1484
1499
|
}
|
|
1485
1500
|
|
|
1486
1501
|
# process all specified files
|
|
1487
|
-
ProcessFiles($
|
|
1502
|
+
ProcessFiles($mt);
|
|
1488
1503
|
|
|
1489
1504
|
if ($filtered and not $validFile) {
|
|
1490
1505
|
Warn "No file with specified extension\n";
|
|
@@ -1573,7 +1588,7 @@ Exit $rtnVal; # all done
|
|
|
1573
1588
|
# Inputs: 0) ExifTool object reference, 1) file name
|
|
1574
1589
|
sub GetImageInfo($$)
|
|
1575
1590
|
{
|
|
1576
|
-
my ($
|
|
1591
|
+
my ($et, $orig) = @_;
|
|
1577
1592
|
my (@foundTags, $info, $file, $ind);
|
|
1578
1593
|
|
|
1579
1594
|
# determine the name of the source file based on the original input file name
|
|
@@ -1617,8 +1632,8 @@ sub GetImageInfo($$)
|
|
|
1617
1632
|
# return all tags but explicitly mention tags on command line so
|
|
1618
1633
|
# requested images will generate the appropriate warnings
|
|
1619
1634
|
@foundTags = ('*', @tags) if @tags;
|
|
1620
|
-
$info = $
|
|
1621
|
-
my $cond = $
|
|
1635
|
+
$info = $et->ImageInfo(Infile($pipe,$isWriting), \@foundTags, $opts);
|
|
1636
|
+
my $cond = $et->InsertTagValues(\@foundTags, $condition, \%info);
|
|
1622
1637
|
|
|
1623
1638
|
#### eval "-if" condition (%info)
|
|
1624
1639
|
my $result = eval $cond;
|
|
@@ -1630,7 +1645,6 @@ sub GetImageInfo($$)
|
|
|
1630
1645
|
if ($verbose) {
|
|
1631
1646
|
chomp $evalWarning;
|
|
1632
1647
|
$evalWarning =~ s/ at \(eval .*//s;
|
|
1633
|
-
delete $SIG{'__WARN__'};
|
|
1634
1648
|
Warn "Condition: $evalWarning - $file\n";
|
|
1635
1649
|
}
|
|
1636
1650
|
}
|
|
@@ -1667,19 +1681,19 @@ sub GetImageInfo($$)
|
|
|
1667
1681
|
$fp or ++$countBad, return;
|
|
1668
1682
|
# delete file if we exit prematurely (unless appending)
|
|
1669
1683
|
$tmpText = $outfile unless $append;
|
|
1670
|
-
$
|
|
1684
|
+
$et->Options(TextOut => $fp);
|
|
1671
1685
|
}
|
|
1672
1686
|
|
|
1673
1687
|
if ($isWriting) {
|
|
1674
1688
|
print $vout "======== $file$progStr\n" if defined $verbose;
|
|
1675
|
-
SetImageInfo($
|
|
1676
|
-
$info = $
|
|
1677
|
-
PrintErrors($
|
|
1689
|
+
SetImageInfo($et, $file, $orig);
|
|
1690
|
+
$info = $et->GetInfo('Warning', 'Error');
|
|
1691
|
+
PrintErrors($et, $info, $file);
|
|
1678
1692
|
# close output text file if necessary
|
|
1679
1693
|
if ($outfile) {
|
|
1680
1694
|
undef $tmpText;
|
|
1681
1695
|
close($fp);
|
|
1682
|
-
$
|
|
1696
|
+
$et->Options(TextOut => $vout);
|
|
1683
1697
|
if ($info->{Error}) {
|
|
1684
1698
|
unlink $outfile; # erase bad file
|
|
1685
1699
|
} elsif ($append) {
|
|
@@ -1715,25 +1729,25 @@ sub GetImageInfo($$)
|
|
|
1715
1729
|
# get the information we wanted
|
|
1716
1730
|
if (@tags and not %printFmt) {
|
|
1717
1731
|
@foundTags = @tags;
|
|
1718
|
-
$info = $
|
|
1732
|
+
$info = $et->GetInfo(\@foundTags);
|
|
1719
1733
|
}
|
|
1720
1734
|
} else {
|
|
1721
1735
|
# request specified tags unless using print format option
|
|
1722
|
-
my $oldDups = $
|
|
1736
|
+
my $oldDups = $et->Options('Duplicates');
|
|
1723
1737
|
if (%printFmt) {
|
|
1724
|
-
$
|
|
1725
|
-
$
|
|
1738
|
+
$et->Options(Duplicates => 1);
|
|
1739
|
+
$et->Options(RequestAll => 1);
|
|
1726
1740
|
} else {
|
|
1727
1741
|
@foundTags = @tags;
|
|
1728
1742
|
}
|
|
1729
1743
|
# extract the information
|
|
1730
|
-
$info = $
|
|
1731
|
-
$
|
|
1744
|
+
$info = $et->ImageInfo(Infile($pipe), \@foundTags);
|
|
1745
|
+
$et->Options(Duplicates => $oldDups);
|
|
1732
1746
|
}
|
|
1733
1747
|
# all done now if we already wrote output text file (ie. verbose option)
|
|
1734
1748
|
if ($fp) {
|
|
1735
1749
|
if ($outfile) {
|
|
1736
|
-
$
|
|
1750
|
+
$et->Options(TextOut => \*STDOUT);
|
|
1737
1751
|
undef $tmpText;
|
|
1738
1752
|
if ($info->{Error}) {
|
|
1739
1753
|
close($fp);
|
|
@@ -1753,9 +1767,9 @@ sub GetImageInfo($$)
|
|
|
1753
1767
|
# (because we are likely ignoring them and piping stdout to file)
|
|
1754
1768
|
# or if there is none of the requested information available
|
|
1755
1769
|
if ($binaryOutput or not %$info) {
|
|
1756
|
-
my $errs = $
|
|
1757
|
-
PrintErrors($
|
|
1758
|
-
} elsif ($
|
|
1770
|
+
my $errs = $et->GetInfo('Warning', 'Error');
|
|
1771
|
+
PrintErrors($et, $errs, $file) and $rtnVal = 1;
|
|
1772
|
+
} elsif ($et->GetValue('Error')) {
|
|
1759
1773
|
$rtnVal = 1;
|
|
1760
1774
|
}
|
|
1761
1775
|
|
|
@@ -1772,7 +1786,7 @@ sub GetImageInfo($$)
|
|
|
1772
1786
|
my ($type, $doc, $grp);
|
|
1773
1787
|
undef $fileTrailer;
|
|
1774
1788
|
# repeat for each embedded document if necessary
|
|
1775
|
-
my $lastDoc = $
|
|
1789
|
+
my $lastDoc = $et->Options('ExtractEmbedded') ? $$et{DOC_COUNT} : 0;
|
|
1776
1790
|
foreach $type ('HEAD', 'BODY', 'TAIL') {
|
|
1777
1791
|
my $prf = $printFmt{$type} or next;
|
|
1778
1792
|
for ($doc=0; $doc<=$lastDoc; ++$doc) {
|
|
@@ -1790,7 +1804,7 @@ sub GetImageInfo($$)
|
|
|
1790
1804
|
}
|
|
1791
1805
|
my @lines;
|
|
1792
1806
|
foreach (@$prf) {
|
|
1793
|
-
my $line = $
|
|
1807
|
+
my $line = $et->InsertTagValues(\@foundTags, $_, 'Warn');
|
|
1794
1808
|
push @lines, $line if defined $line;
|
|
1795
1809
|
}
|
|
1796
1810
|
$lineCount += scalar @lines;
|
|
@@ -1803,8 +1817,8 @@ sub GetImageInfo($$)
|
|
|
1803
1817
|
}
|
|
1804
1818
|
}
|
|
1805
1819
|
delete $printFmt{HEAD} unless $outfile; # print header only once per output file
|
|
1806
|
-
my $errs = $
|
|
1807
|
-
PrintErrors($
|
|
1820
|
+
my $errs = $et->GetInfo('Warning', 'Error');
|
|
1821
|
+
PrintErrors($et, $errs, $file);
|
|
1808
1822
|
} elsif (not $disableOutput) {
|
|
1809
1823
|
my ($tag, $line, %noDups, %csvInfo, $bra, $ket, $sep);
|
|
1810
1824
|
if ($fp) {
|
|
@@ -1824,7 +1838,7 @@ sub GetImageInfo($$)
|
|
|
1824
1838
|
# define namespaces for all tag groups
|
|
1825
1839
|
my %groups;
|
|
1826
1840
|
foreach $tag (@foundTags) {
|
|
1827
|
-
my ($grp, $grp1) = $
|
|
1841
|
+
my ($grp, $grp1) = $et->GetGroup($tag);
|
|
1828
1842
|
unless ($grp1) {
|
|
1829
1843
|
next unless defined $forcePrint;
|
|
1830
1844
|
$grp = $grp1 = 'Unknown';
|
|
@@ -1853,7 +1867,7 @@ sub GetImageInfo($$)
|
|
|
1853
1867
|
}
|
|
1854
1868
|
# suppress duplicates manually in JSON and short XML output
|
|
1855
1869
|
my $noDups = ($json or ($xml and $outFormat > 0));
|
|
1856
|
-
my $printConv = $
|
|
1870
|
+
my $printConv = $mt->Options('PrintConv');
|
|
1857
1871
|
my $lastGroup = '';
|
|
1858
1872
|
TAG: foreach $tag (@foundTags) {
|
|
1859
1873
|
my $tagName = GetTagName($tag);
|
|
@@ -1863,7 +1877,7 @@ TAG: foreach $tag (@foundTags) {
|
|
|
1863
1877
|
if (ref $val) {
|
|
1864
1878
|
if (defined $binaryOutput and not $binaryOutput) { # happens with -X -b or -php -b
|
|
1865
1879
|
# avoid extracting Protected binary tags (ie. data blocks) [insider information]
|
|
1866
|
-
next if
|
|
1880
|
+
next if $$et{TAG_INFO}{$tag}{Protected};
|
|
1867
1881
|
}
|
|
1868
1882
|
$val = ConvertBinary($val); # convert SCALAR references
|
|
1869
1883
|
if ($structOpt) {
|
|
@@ -1896,11 +1910,11 @@ TAG: foreach $tag (@foundTags) {
|
|
|
1896
1910
|
}
|
|
1897
1911
|
}
|
|
1898
1912
|
if (defined $showGroup) {
|
|
1899
|
-
$group = $
|
|
1913
|
+
$group = $et->GetGroup($tag, $showGroup);
|
|
1900
1914
|
# look ahead to see if this tag may suppress a priority tag in
|
|
1901
1915
|
# the same group, and if so suppress this tag instead
|
|
1902
1916
|
next if $noDups and $tag =~ /^(.*?) ?\(/ and defined $$info{$1} and
|
|
1903
|
-
$group eq $
|
|
1917
|
+
$group eq $et->GetGroup($1, $showGroup);
|
|
1904
1918
|
$group = 'Unknown' if not $group and ($xml or $json);
|
|
1905
1919
|
if ($fp and not ($allGroup or $csv)) {
|
|
1906
1920
|
if ($lastGroup ne $group) {
|
|
@@ -1930,14 +1944,14 @@ TAG: foreach $tag (@foundTags) {
|
|
|
1930
1944
|
for (;;) {
|
|
1931
1945
|
if ($tagOut) {
|
|
1932
1946
|
# determine suggested extension for output file
|
|
1933
|
-
my $ext = SuggestedExtension($
|
|
1947
|
+
my $ext = SuggestedExtension($et, \$val, $tagName);
|
|
1934
1948
|
if (%wext and ($wext{$ext} || $wext{'*'} || -1) < 0) {
|
|
1935
1949
|
if ($verbose and $verbose > 1) {
|
|
1936
1950
|
print $vout "Not writing $ext output file for $tagName\n";
|
|
1937
1951
|
}
|
|
1938
1952
|
next TAG;
|
|
1939
1953
|
}
|
|
1940
|
-
my @groups = $
|
|
1954
|
+
my @groups = $mt->GetGroup($tag);
|
|
1941
1955
|
$outfile and close($fp), undef($tmpText); # (shouldn't happen)
|
|
1942
1956
|
($fp, $outfile, $append) = OpenOutputFile($orig, $tagName, \@groups, $ext);
|
|
1943
1957
|
$fp or ++$countBad, next TAG;
|
|
@@ -1992,7 +2006,7 @@ TAG: foreach $tag (@foundTags) {
|
|
|
1992
2006
|
}
|
|
1993
2007
|
|
|
1994
2008
|
# get description if we need it (use tag name if $outFormat > 0)
|
|
1995
|
-
my $desc = $outFormat > 0 ? $tagName : $
|
|
2009
|
+
my $desc = $outFormat > 0 ? $tagName : $et->GetDescription($tag);
|
|
1996
2010
|
|
|
1997
2011
|
if ($xml) {
|
|
1998
2012
|
# RDF/XML output format
|
|
@@ -2020,7 +2034,7 @@ TAG: foreach $tag (@foundTags) {
|
|
|
2020
2034
|
}
|
|
2021
2035
|
my ($xtra, $valNum, $descClose);
|
|
2022
2036
|
if ($showTagID) {
|
|
2023
|
-
my ($id, $lang) = $
|
|
2037
|
+
my ($id, $lang) = $et->GetTagID($tag);
|
|
2024
2038
|
if ($id =~ /^\d+$/) {
|
|
2025
2039
|
$id = sprintf("0x%.4x", $id) if $showTagID eq 'H';
|
|
2026
2040
|
} else {
|
|
@@ -2032,8 +2046,8 @@ TAG: foreach $tag (@foundTags) {
|
|
|
2032
2046
|
$xtra = '';
|
|
2033
2047
|
}
|
|
2034
2048
|
if ($tabFormat) {
|
|
2035
|
-
my $table = $
|
|
2036
|
-
my $index = $
|
|
2049
|
+
my $table = $et->GetTableName($tag);
|
|
2050
|
+
my $index = $et->GetTagIndex($tag);
|
|
2037
2051
|
$xtra .= " et:table='$table'";
|
|
2038
2052
|
$xtra .= " et:index='$index'" if defined $index;
|
|
2039
2053
|
}
|
|
@@ -2060,7 +2074,7 @@ TAG: foreach $tag (@foundTags) {
|
|
|
2060
2074
|
if ($printConv) {
|
|
2061
2075
|
# print PrintConv value
|
|
2062
2076
|
print $fp "\n <et:prt$val</et:prt>";
|
|
2063
|
-
$val = $
|
|
2077
|
+
$val = $et->GetValue($tag, 'ValueConv');
|
|
2064
2078
|
$val = '' unless defined $val;
|
|
2065
2079
|
# go back to print ValueConv value only if different
|
|
2066
2080
|
next unless IsEqual($val, $lastVal);
|
|
@@ -2086,14 +2100,14 @@ TAG: foreach $tag (@foundTags) {
|
|
|
2086
2100
|
if ($showTagID or $outFormat < 0) {
|
|
2087
2101
|
$val = { val => $val };
|
|
2088
2102
|
if ($showTagID) {
|
|
2089
|
-
my $id = $
|
|
2103
|
+
my $id = $et->GetTagID($tag);
|
|
2090
2104
|
$id = sprintf('0x%.4x', $id) if $showTagID eq 'H' and $id =~ /^\d+$/;
|
|
2091
2105
|
$$val{id} = $id;
|
|
2092
2106
|
}
|
|
2093
2107
|
if ($outFormat < 0) {
|
|
2094
2108
|
$$val{desc} = $desc;
|
|
2095
2109
|
if ($printConv) {
|
|
2096
|
-
my $num = $
|
|
2110
|
+
my $num = $et->GetValue($tag, 'ValueConv');
|
|
2097
2111
|
$$val{num} = $num unless IsEqual($num, $$val{val});
|
|
2098
2112
|
}
|
|
2099
2113
|
}
|
|
@@ -2104,7 +2118,7 @@ TAG: foreach $tag (@foundTags) {
|
|
|
2104
2118
|
}
|
|
2105
2119
|
my $id;
|
|
2106
2120
|
if ($showTagID) {
|
|
2107
|
-
$id = $
|
|
2121
|
+
$id = $et->GetTagID($tag);
|
|
2108
2122
|
if ($id =~ /^(\d+)(\.\d+)?$/) { # only print numeric ID's
|
|
2109
2123
|
$id = sprintf("0x%.4x", $1) if $showTagID eq 'H';
|
|
2110
2124
|
} else {
|
|
@@ -2228,15 +2242,15 @@ TAG: foreach $tag (@foundTags) {
|
|
|
2228
2242
|
# Returns: true on success
|
|
2229
2243
|
sub SetImageInfo($$$)
|
|
2230
2244
|
{
|
|
2231
|
-
my ($
|
|
2245
|
+
my ($et, $file, $orig) = @_;
|
|
2232
2246
|
my ($outfile, $restored, $isTemporary, $isStdout, $outType, $tagsFromSrc);
|
|
2233
2247
|
my $infile = $file; # save infile in case we change it again
|
|
2234
2248
|
|
|
2235
2249
|
undef $tmpFile; # make sure this isn't defined
|
|
2236
2250
|
|
|
2237
2251
|
# clear any existing errors or warnings since we check these on return
|
|
2238
|
-
delete
|
|
2239
|
-
delete
|
|
2252
|
+
delete $$et{VALUE}{Error};
|
|
2253
|
+
delete $$et{VALUE}{Warning};
|
|
2240
2254
|
|
|
2241
2255
|
# first, try to determine our output file name so we can return quickly
|
|
2242
2256
|
# if it already exists (note: this test must be delayed until after we
|
|
@@ -2272,7 +2286,7 @@ sub SetImageInfo($$$)
|
|
|
2272
2286
|
}
|
|
2273
2287
|
if ($file ne '') {
|
|
2274
2288
|
# restore previous new values unless done already
|
|
2275
|
-
$
|
|
2289
|
+
$et->RestoreNewValues() unless $restored;
|
|
2276
2290
|
$restored = 1;
|
|
2277
2291
|
# translate to this type by setting specified tags from file
|
|
2278
2292
|
my @setTags = @tags;
|
|
@@ -2288,7 +2302,7 @@ sub SetImageInfo($$$)
|
|
|
2288
2302
|
# assume "-tagsFromFile @" unless -tagsFromFile already specified
|
|
2289
2303
|
# (%setTags won't be empty if -tagsFromFile used)
|
|
2290
2304
|
if (not %setTags or (@setTags and not $setTags{'@'})) {
|
|
2291
|
-
return 0 unless DoSetFromFile($
|
|
2305
|
+
return 0 unless DoSetFromFile($et, $file, \@setTags);
|
|
2292
2306
|
} elsif (@setTags) {
|
|
2293
2307
|
# add orphaned tags to existing "-tagsFromFile @" for this file only
|
|
2294
2308
|
push @setTags, @{$setTags{'@'}};
|
|
@@ -2313,7 +2327,7 @@ sub SetImageInfo($$$)
|
|
|
2313
2327
|
# set tags from destination file if required
|
|
2314
2328
|
if (@dynamicFiles) {
|
|
2315
2329
|
# restore previous values if necessary
|
|
2316
|
-
$
|
|
2330
|
+
$et->RestoreNewValues() unless $restored;
|
|
2317
2331
|
my ($dyFile, %setTagsIndex);
|
|
2318
2332
|
foreach $dyFile (@dynamicFiles) {
|
|
2319
2333
|
if (not ref $dyFile) {
|
|
@@ -2334,7 +2348,7 @@ sub SetImageInfo($$$)
|
|
|
2334
2348
|
$setTags = $setTagsList{$dyFile}[$i] if $setTagsList{$dyFile}[$i];
|
|
2335
2349
|
}
|
|
2336
2350
|
# set new values values from file
|
|
2337
|
-
return 0 unless DoSetFromFile($
|
|
2351
|
+
return 0 unless DoSetFromFile($et, $fromFile, $setTags);
|
|
2338
2352
|
} elsif (ref $dyFile eq 'ARRAY') {
|
|
2339
2353
|
# a dynamic file containing a simple tag value
|
|
2340
2354
|
my $fname = FilenameSPrintf($$dyFile[1], $orig);
|
|
@@ -2342,29 +2356,32 @@ sub SetImageInfo($$$)
|
|
|
2342
2356
|
my $opts = $$dyFile[2];
|
|
2343
2357
|
if (defined $fname and SlurpFile($fname, \$buff)) {
|
|
2344
2358
|
$verbose and print $vout "Reading $$dyFile[0] from $fname\n";
|
|
2345
|
-
($rtn, $wrn) = $
|
|
2359
|
+
($rtn, $wrn) = $mt->SetNewValue($$dyFile[0], $buff, %$opts);
|
|
2346
2360
|
$wrn and Warn "$wrn\n";
|
|
2347
2361
|
}
|
|
2348
2362
|
# remove this tag if we couldn't set it properly
|
|
2349
|
-
$rtn or $
|
|
2350
|
-
|
|
2363
|
+
$rtn or $mt->SetNewValue($$dyFile[0], undef, Replace => 2,
|
|
2364
|
+
ProtectSaved => $$opts{ProtectSaved});
|
|
2351
2365
|
next;
|
|
2352
2366
|
} elsif (ref $dyFile eq 'SCALAR') {
|
|
2353
2367
|
# set new values from CSV database
|
|
2354
2368
|
my ($f, $found, $tag);
|
|
2369
|
+
undef $evalWarning;
|
|
2370
|
+
local $SIG{'__WARN__'} = sub { $evalWarning = $_[0] };
|
|
2355
2371
|
# read tags for SourceFile '*' plus the specific file
|
|
2356
2372
|
foreach $f ('*', $file) {
|
|
2357
2373
|
my $csvInfo = $database{$f};
|
|
2358
2374
|
unless ($csvInfo) {
|
|
2359
2375
|
next if $f eq '*' or not require Cwd;
|
|
2360
|
-
# check
|
|
2361
|
-
$
|
|
2376
|
+
# check absolute path
|
|
2377
|
+
my $absPath = Cwd::abs_path($f);
|
|
2378
|
+
next unless defined $absPath and $csvInfo = $database{$absPath};
|
|
2362
2379
|
}
|
|
2363
2380
|
$found = 1;
|
|
2364
2381
|
$verbose and print $vout "Setting new values from $csv database\n";
|
|
2365
2382
|
foreach $tag (sort keys %$csvInfo) {
|
|
2366
2383
|
next if $tag =~ /\b(SourceFile|Directory|FileName)$/i; # don't write these
|
|
2367
|
-
my ($rtn, $wrn) = $
|
|
2384
|
+
my ($rtn, $wrn) = $mt->SetNewValue($tag, $$csvInfo{$tag},
|
|
2368
2385
|
Protected => 1, AddValue => $csvAdd,
|
|
2369
2386
|
ProtectSaved => $csvSaveCount);
|
|
2370
2387
|
$wrn and Warn "$wrn\n" if $verbose;
|
|
@@ -2373,8 +2390,8 @@ sub SetImageInfo($$$)
|
|
|
2373
2390
|
unless ($found) {
|
|
2374
2391
|
Warn("No SourceFile '$file' in imported $csv database\n");
|
|
2375
2392
|
if (require Cwd) {
|
|
2376
|
-
my $
|
|
2377
|
-
Warn("(
|
|
2393
|
+
my $absFile = Cwd::abs_path($file);
|
|
2394
|
+
Warn("(absolute path: '$absFile')\n") if defined $absFile;
|
|
2378
2395
|
}
|
|
2379
2396
|
return 0;
|
|
2380
2397
|
}
|
|
@@ -2390,21 +2407,21 @@ sub SetImageInfo($$$)
|
|
|
2390
2407
|
}
|
|
2391
2408
|
} else {
|
|
2392
2409
|
# determine what our output file name should be
|
|
2393
|
-
my $newFileName = $
|
|
2394
|
-
my $newDir = $
|
|
2410
|
+
my $newFileName = $et->GetNewValues('FileName');
|
|
2411
|
+
my $newDir = $et->GetNewValues('Directory');
|
|
2395
2412
|
if (defined $newFileName or defined $newDir or ($doSetFileName and defined $outfile)) {
|
|
2396
2413
|
if ($newFileName) {
|
|
2397
2414
|
$newFileName = FilenameSPrintf($newFileName, $orig);
|
|
2398
2415
|
if (defined $outfile) {
|
|
2399
|
-
$outfile = Image::ExifTool::GetNewFileName($
|
|
2416
|
+
$outfile = Image::ExifTool::GetNewFileName($file, $outfile) if $file ne '';
|
|
2400
2417
|
$outfile = Image::ExifTool::GetNewFileName($outfile, $newFileName);
|
|
2401
|
-
} elsif ($
|
|
2402
|
-
$outfile = Image::ExifTool::GetNewFileName($
|
|
2418
|
+
} elsif ($file ne '') {
|
|
2419
|
+
$outfile = Image::ExifTool::GetNewFileName($file, $newFileName);
|
|
2403
2420
|
}
|
|
2404
2421
|
}
|
|
2405
2422
|
if ($newDir) {
|
|
2406
2423
|
$newDir = FilenameSPrintf($newDir, $orig);
|
|
2407
|
-
$outfile = Image::ExifTool::GetNewFileName(defined $outfile ? $outfile : $
|
|
2424
|
+
$outfile = Image::ExifTool::GetNewFileName(defined $outfile ? $outfile : $file, $newDir);
|
|
2408
2425
|
}
|
|
2409
2426
|
$outfile = NextUnusedFilename($outfile, $infile);
|
|
2410
2427
|
if (-e $outfile) {
|
|
@@ -2425,7 +2442,7 @@ sub SetImageInfo($$$)
|
|
|
2425
2442
|
}
|
|
2426
2443
|
unless (defined $tmpFile) {
|
|
2427
2444
|
# count the number of tags and pseudo-tags we are writing
|
|
2428
|
-
my ($numSet, $numPseudo) = $
|
|
2445
|
+
my ($numSet, $numPseudo) = $et->CountNewValues();
|
|
2429
2446
|
if (-e $file) {
|
|
2430
2447
|
unless ($numSet) {
|
|
2431
2448
|
# no need to write if no tags set
|
|
@@ -2453,10 +2470,10 @@ sub SetImageInfo($$$)
|
|
|
2453
2470
|
}
|
|
2454
2471
|
# quickly rename file and/or set file date if this is all we are doing
|
|
2455
2472
|
if ($numSet == $numPseudo) {
|
|
2456
|
-
my $r1 = $
|
|
2457
|
-
my $r2 = $
|
|
2473
|
+
my $r1 = $et->SetFileModifyDate($file,undef,'FileCreateDate');
|
|
2474
|
+
my $r2 = $et->SetFileModifyDate($file);
|
|
2458
2475
|
my $r3 = 0;
|
|
2459
|
-
$r3 = $
|
|
2476
|
+
$r3 = $et->SetFileName($file, $outfile) if defined $outfile;
|
|
2460
2477
|
if ($r1 > 0 or $r2 > 0 or $r3 > 0) {
|
|
2461
2478
|
++$countGoodWr;
|
|
2462
2479
|
} elsif ($r1 < 0 or $r2 < 0 or $r3 < 0) {
|
|
@@ -2482,7 +2499,7 @@ sub SetImageInfo($$$)
|
|
|
2482
2499
|
}
|
|
2483
2500
|
}
|
|
2484
2501
|
# rewrite the file
|
|
2485
|
-
my $success = $
|
|
2502
|
+
my $success = $et->WriteInfo(Infile($file), $outfile, $outType);
|
|
2486
2503
|
|
|
2487
2504
|
# get file time if preserving it
|
|
2488
2505
|
my ($aTime, $mTime, $cTime);
|
|
@@ -2889,9 +2906,9 @@ sub Infile($;$)
|
|
|
2889
2906
|
sub DoSetFromFile($$$)
|
|
2890
2907
|
{
|
|
2891
2908
|
local $_;
|
|
2892
|
-
my ($
|
|
2909
|
+
my ($et, $file, $setTags) = @_;
|
|
2893
2910
|
$verbose and print $vout "Setting new values from $file\n";
|
|
2894
|
-
my $info = $
|
|
2911
|
+
my $info = $et->SetNewValuesFromFile(Infile($file,1), @$setTags);
|
|
2895
2912
|
my $numSet = scalar(keys %$info);
|
|
2896
2913
|
if ($$info{Error}) {
|
|
2897
2914
|
# delete all error and warning tags
|
|
@@ -2908,7 +2925,7 @@ sub DoSetFromFile($$$)
|
|
|
2908
2925
|
++$warns while $$info{"Warning ($warns)"};
|
|
2909
2926
|
$numSet -= $warns;
|
|
2910
2927
|
}
|
|
2911
|
-
PrintErrors($
|
|
2928
|
+
PrintErrors($et, $info, $file) and ++$countBadWr, return 0;
|
|
2912
2929
|
Warn "Warning: No writable tags set from $file\n" unless $numSet;
|
|
2913
2930
|
return 1;
|
|
2914
2931
|
}
|
|
@@ -2928,7 +2945,7 @@ sub CleanFilename($)
|
|
|
2928
2945
|
# Notes: arg 0 is not used if arg 1 is defined
|
|
2929
2946
|
sub ProcessFiles($;$)
|
|
2930
2947
|
{
|
|
2931
|
-
my ($
|
|
2948
|
+
my ($et, $list) = @_;
|
|
2932
2949
|
my $file;
|
|
2933
2950
|
foreach $file (@files) {
|
|
2934
2951
|
if (defined $progressMax) {
|
|
@@ -2937,7 +2954,7 @@ sub ProcessFiles($;$)
|
|
|
2937
2954
|
}
|
|
2938
2955
|
if (-d $file) {
|
|
2939
2956
|
$multiFile = $validFile = 1;
|
|
2940
|
-
ScanDir($
|
|
2957
|
+
ScanDir($mt, $file, $list);
|
|
2941
2958
|
} elsif ($filterFlag and not AcceptFile($file)) {
|
|
2942
2959
|
if (-e $file) {
|
|
2943
2960
|
$filtered = 1;
|
|
@@ -2949,7 +2966,7 @@ sub ProcessFiles($;$)
|
|
|
2949
2966
|
} else {
|
|
2950
2967
|
$validFile = 1;
|
|
2951
2968
|
$list and push(@$list, $file), next;
|
|
2952
|
-
GetImageInfo($
|
|
2969
|
+
GetImageInfo($et, $file);
|
|
2953
2970
|
}
|
|
2954
2971
|
}
|
|
2955
2972
|
}
|
|
@@ -2959,7 +2976,7 @@ sub ProcessFiles($;$)
|
|
|
2959
2976
|
# Inputs: 0) ExifTool ref, 1) directory name, 2) list ref to return file names
|
|
2960
2977
|
sub ScanDir($$;$)
|
|
2961
2978
|
{
|
|
2962
|
-
my ($
|
|
2979
|
+
my ($et, $dir, $list) = @_;
|
|
2963
2980
|
opendir(DIR_HANDLE, $dir) or Warn("Error opening directory $dir\n"), return;
|
|
2964
2981
|
my @fileList = readdir(DIR_HANDLE);
|
|
2965
2982
|
closedir(DIR_HANDLE);
|
|
@@ -2971,7 +2988,7 @@ sub ScanDir($$;$)
|
|
|
2971
2988
|
if (-d $path) {
|
|
2972
2989
|
next unless $recurse and $file !~ /^\./; # ignore dirs starting with "."
|
|
2973
2990
|
next if $ignore{$file} or ($ignore{SYMLINKS} and -l $path);
|
|
2974
|
-
ScanDir($
|
|
2991
|
+
ScanDir($et, $path, $list);
|
|
2975
2992
|
next;
|
|
2976
2993
|
}
|
|
2977
2994
|
# apply rules from -ext options
|
|
@@ -2996,7 +3013,7 @@ sub ScanDir($$;$)
|
|
|
2996
3013
|
}
|
|
2997
3014
|
}
|
|
2998
3015
|
$list and push(@$list, $path), next;
|
|
2999
|
-
GetImageInfo($
|
|
3016
|
+
GetImageInfo($et, $path);
|
|
3000
3017
|
}
|
|
3001
3018
|
++$countDir;
|
|
3002
3019
|
}
|
|
@@ -3054,7 +3071,7 @@ sub AddPrintFormat($)
|
|
|
3054
3071
|
# Returns: file extension (lower case), or 'dat' if unknown
|
|
3055
3072
|
sub SuggestedExtension($$$)
|
|
3056
3073
|
{
|
|
3057
|
-
my ($
|
|
3074
|
+
my ($et, $valPt, $tag) = @_;
|
|
3058
3075
|
my $ext;
|
|
3059
3076
|
if (not $binaryOutput) {
|
|
3060
3077
|
$ext = 'txt';
|
|
@@ -3073,7 +3090,7 @@ sub SuggestedExtension($$$)
|
|
|
3073
3090
|
} elsif ($$valPt =~ /^RIFF....WAVE/s) {
|
|
3074
3091
|
$ext = 'wav';
|
|
3075
3092
|
} elsif ($tag eq 'OriginalRawFileData' and
|
|
3076
|
-
defined($ext = $
|
|
3093
|
+
defined($ext = $et->GetValue('OriginalRawFileName')))
|
|
3077
3094
|
{
|
|
3078
3095
|
$ext =~ s/^.*\.//s;
|
|
3079
3096
|
$ext = $ext ? lc($ext) : 'raw';
|
|
@@ -3466,12 +3483,12 @@ sub PrintTagList($@)
|
|
|
3466
3483
|
# Returns: true if there was an Error
|
|
3467
3484
|
sub PrintErrors($$$)
|
|
3468
3485
|
{
|
|
3469
|
-
my ($
|
|
3486
|
+
my ($et, $info, $file) = @_;
|
|
3470
3487
|
my ($tag, $key);
|
|
3471
3488
|
foreach $tag (qw(Warning Error)) {
|
|
3472
3489
|
next unless $$info{$tag};
|
|
3473
3490
|
my @keys = ( $tag );
|
|
3474
|
-
push @keys, sort(grep /^$tag /, keys %$info) if $
|
|
3491
|
+
push @keys, sort(grep /^$tag /, keys %$info) if $et->Options('Duplicates');
|
|
3475
3492
|
foreach $key (@keys) {
|
|
3476
3493
|
Warn "$tag: $info->{$key} - $file\n";
|
|
3477
3494
|
}
|
|
@@ -3531,38 +3548,38 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
|
3531
3548
|
|
|
3532
3549
|
File Types
|
|
3533
3550
|
------------+-------------+-------------+-------------+------------
|
|
3534
|
-
3FR r |
|
|
3535
|
-
3G2 r
|
|
3536
|
-
3GP r
|
|
3537
|
-
ACR r |
|
|
3538
|
-
AFM r |
|
|
3539
|
-
AI r/w |
|
|
3540
|
-
AIFF r |
|
|
3541
|
-
APE r |
|
|
3542
|
-
ARW r/w |
|
|
3543
|
-
ASF r |
|
|
3544
|
-
AVI r |
|
|
3545
|
-
BMP r |
|
|
3546
|
-
BTF r |
|
|
3547
|
-
CHM r |
|
|
3548
|
-
COS r |
|
|
3549
|
-
CR2 r/w |
|
|
3550
|
-
CRW r/w |
|
|
3551
|
-
CS1 r/w |
|
|
3552
|
-
DCM r |
|
|
3553
|
-
DCP r/w |
|
|
3554
|
-
DCR r |
|
|
3555
|
-
DFONT r |
|
|
3556
|
-
DIVX r |
|
|
3557
|
-
DJVU r |
|
|
3558
|
-
DLL r |
|
|
3559
|
-
DNG r/w |
|
|
3560
|
-
DOC r |
|
|
3561
|
-
DOCX r |
|
|
3551
|
+
3FR r | EIP r | LNK r | PAC r | RWL r/w
|
|
3552
|
+
3G2 r/w | EPS r/w | M2TS r | PAGES r | RWZ r
|
|
3553
|
+
3GP r/w | ERF r/w | M4A/V r/w | PBM r/w | RM r
|
|
3554
|
+
ACR r | EXE r | MEF r/w | PCD r | SO r
|
|
3555
|
+
AFM r | EXIF r/w/c | MIE r/w/c | PDF r/w | SR2 r/w
|
|
3556
|
+
AI r/w | EXR r | MIFF r | PEF r/w | SRF r
|
|
3557
|
+
AIFF r | F4A/V r/w | MKA r | PFA r | SRW r/w
|
|
3558
|
+
APE r | FFF r/w | MKS r | PFB r | SVG r
|
|
3559
|
+
ARW r/w | FLA r | MKV r | PFM r | SWF r
|
|
3560
|
+
ASF r | FLAC r | MNG r/w | PGF r | THM r/w
|
|
3561
|
+
AVI r | FLV r | MODD r | PGM r/w | TIFF r/w
|
|
3562
|
+
BMP r | FPF r | MOS r/w | PLIST r | TORRENT r
|
|
3563
|
+
BTF r | FPX r | MOV r/w | PICT r | TTC r
|
|
3564
|
+
CHM r | GIF r/w | MP3 r | PMP r | TTF r
|
|
3565
|
+
COS r | GZ r | MP4 r/w | PNG r/w | VRD r/w/c
|
|
3566
|
+
CR2 r/w | HDP r/w | MPC r | PPM r/w | VSD r
|
|
3567
|
+
CRW r/w | HDR r | MPG r | PPT r | WAV r
|
|
3568
|
+
CS1 r/w | HTML r | MPO r/w | PPTX r | WDP r/w
|
|
3569
|
+
DCM r | ICC r/w/c | MQV r/w | PS r/w | WEBP r
|
|
3570
|
+
DCP r/w | IDML r | MRW r/w | PSB r/w | WEBM r
|
|
3571
|
+
DCR r | IIQ r/w | MXF r | PSD r/w | WMA r
|
|
3572
|
+
DFONT r | IND r/w | NEF r/w | PSP r | WMV r
|
|
3573
|
+
DIVX r | INX r | NRW r/w | QTIF r/w | WV r
|
|
3574
|
+
DJVU r | ITC r | NUMBERS r | RA r | X3F r/w
|
|
3575
|
+
DLL r | J2C r | ODP r | RAF r/w | XCF r
|
|
3576
|
+
DNG r/w | JNG r/w | ODS r | RAM r | XLS r
|
|
3577
|
+
DOC r | JP2 r/w | ODT r | RAR r | XLSX r
|
|
3578
|
+
DOCX r | JPEG r/w | OFR r | RAW r/w | XMP r/w/c
|
|
3579
|
+
DPX r | K25 r | OGG r | RIFF r | ZIP r
|
|
3562
3580
|
DV r | KDC r | OGV r | RSRC r |
|
|
3563
|
-
DVB r
|
|
3581
|
+
DVB r/w | KEY r | ORF r/w | RTF r |
|
|
3564
3582
|
DYLIB r | LA r | OTF r | RW2 r/w |
|
|
3565
|
-
EIP r | LNK r | PAC r | RWL r/w |
|
|
3566
3583
|
|
|
3567
3584
|
Meta Information
|
|
3568
3585
|
----------------------+----------------------+---------------------
|
|
@@ -3587,10 +3604,10 @@ Case is not significant for any command-line option (including tag and group
|
|
|
3587
3604
|
names), except for single-character options when the corresponding
|
|
3588
3605
|
upper-case option exists. Many single-character options have equivalent
|
|
3589
3606
|
long-name versions (shown in brackets), and some options have inverses which
|
|
3590
|
-
are invoked with a leading double-dash.
|
|
3591
|
-
|
|
3592
|
-
|
|
3593
|
-
appear after source file names on the exiftool command line.
|
|
3607
|
+
are invoked with a leading double-dash. Unrecognized options are
|
|
3608
|
+
interpreted as tag names (for this reason, multiple single-character options
|
|
3609
|
+
may NOT be combined into one argument). Contrary to standard practice,
|
|
3610
|
+
options may appear after source file names on the exiftool command line.
|
|
3594
3611
|
|
|
3595
3612
|
=head2 Option Summary
|
|
3596
3613
|
|
|
@@ -3687,6 +3704,7 @@ L<Other options|/Other options>
|
|
|
3687
3704
|
|
|
3688
3705
|
L<Advanced options|/Advanced options>
|
|
3689
3706
|
|
|
3707
|
+
-api OPT[=VAL] Set ExifTool API option
|
|
3690
3708
|
-common_args Define common arguments
|
|
3691
3709
|
-config CFGFILE Specify configuration file name
|
|
3692
3710
|
-echo[NUM] TEXT Echo text to stdout or stderr
|
|
@@ -3742,9 +3760,10 @@ tags from being copied (when redirecting to another tag, it is the source
|
|
|
3742
3760
|
tag that should be excluded), or to exclude groups from being deleted when
|
|
3743
3761
|
deleting all information (ie. C<-all= --exif:all> deletes all but EXIF
|
|
3744
3762
|
information). But note that this will not exclude individual tags from a
|
|
3745
|
-
group delete
|
|
3746
|
-
|
|
3747
|
-
are permitted as described
|
|
3763
|
+
group delete (unless a family 2 group is specified, see note 4 below).
|
|
3764
|
+
Instead, individual tags may be recovered using the B<-tagsFromFile> option
|
|
3765
|
+
(ie. C<-all= -tagsfromfile @ -artist>). Wildcards are permitted as described
|
|
3766
|
+
above for B<-TAG>.
|
|
3748
3767
|
|
|
3749
3768
|
=item B<->I<TAG>[+-]B<=>[I<VALUE>]
|
|
3750
3769
|
|
|
@@ -3756,24 +3775,25 @@ C<+=> may also be used to increment numerical values, and C<-=> may be used
|
|
|
3756
3775
|
to conditionally delete or replace a tag (see L</WRITING EXAMPLES> for
|
|
3757
3776
|
examples).
|
|
3758
3777
|
|
|
3759
|
-
I<TAG> may contain
|
|
3760
|
-
|
|
3761
|
-
|
|
3762
|
-
|
|
3763
|
-
valid: 1) EXIF, 2)
|
|
3778
|
+
I<TAG> may contain one or more leading family 0, 1 or 2 group names,
|
|
3779
|
+
prefixed by optional family numbers, and separated colons. If no group name
|
|
3780
|
+
is specified, the tag is created in the preferred group, and updated in any
|
|
3781
|
+
other location where a same-named tag already exists. The preferred group
|
|
3782
|
+
is the first group in the following list where I<TAG> is valid: 1) EXIF, 2)
|
|
3783
|
+
IPTC, 3) XMP.
|
|
3764
3784
|
|
|
3765
3785
|
The wildcards C<*> and C<?> may be used in tag names to assign the same
|
|
3766
3786
|
value to multiple tags. When specified with wildcards, "unsafe" tags are
|
|
3767
3787
|
not written. A tag name of C<All> is eqivalent to C<*> (except that it
|
|
3768
3788
|
doesn't require quoting, while arguments with wildcards do on systems with
|
|
3769
3789
|
shell globbing), and is often used when deleting all metadata (ie. C<-All=>)
|
|
3770
|
-
or an entire group (ie. C<-GROUP:All
|
|
3771
|
-
deletable, and that the JPEG APP14 "Adobe" group is not
|
|
3772
|
-
with C<-All=> because it may affect the appearance of the
|
|
3773
|
-
B<-listd> option for a complete list of deletable groups,
|
|
3774
|
-
below regarding the "APP" groups. Also, within an image some
|
|
3775
|
-
contained within others, and these groups are removed if the
|
|
3776
|
-
group is deleted:
|
|
3790
|
+
or an entire group (ie. C<-GROUP:All=>, see note 4 below). Note that not
|
|
3791
|
+
all groups are deletable, and that the JPEG APP14 "Adobe" group is not
|
|
3792
|
+
removed by default with C<-All=> because it may affect the appearance of the
|
|
3793
|
+
image. Use the B<-listd> option for a complete list of deletable groups,
|
|
3794
|
+
and see note 5 below regarding the "APP" groups. Also, within an image some
|
|
3795
|
+
groups may be contained within others, and these groups are removed if the
|
|
3796
|
+
containing group is deleted:
|
|
3777
3797
|
|
|
3778
3798
|
JPEG Image:
|
|
3779
3799
|
- Deleting EXIF or IFD0 also deletes ExifIFD, GlobParamIFD,
|
|
@@ -3787,9 +3807,9 @@ group is deleted:
|
|
|
3787
3807
|
|
|
3788
3808
|
Notes:
|
|
3789
3809
|
|
|
3790
|
-
1) Many tag values may be assigned in a single command
|
|
3791
|
-
affect the same tag, the latter takes precedence (except for
|
|
3792
|
-
where both values are written).
|
|
3810
|
+
1) B<Many tag values may be assigned in a single command>. If two
|
|
3811
|
+
assignments affect the same tag, the latter takes precedence (except for
|
|
3812
|
+
list-type tags, where both values are written).
|
|
3793
3813
|
|
|
3794
3814
|
2) In general, MakerNotes tags are considered "Permanent", and may be edited
|
|
3795
3815
|
but not created or deleted individually. This avoids many potential
|
|
@@ -3801,7 +3821,16 @@ maker notes.
|
|
|
3801
3821
|
never actually deleted from the file. So ExifTool alone may not be used to
|
|
3802
3822
|
securely edit metadata in PDF files.
|
|
3803
3823
|
|
|
3804
|
-
4)
|
|
3824
|
+
4) Specifying C<-GROUP:all=> deletes the entire group as a block unless a
|
|
3825
|
+
family 2 group is specified, in which case the tags are deleted
|
|
3826
|
+
individually. (Since the family 2 categories do not represent physical
|
|
3827
|
+
metadata blocks.) So only in this case may individual tags be excluded from
|
|
3828
|
+
the mass delete. For example, C<-time:all --Exif:Time:All> removes all
|
|
3829
|
+
deletable Time tags except those in the EXIF. This difference also applies
|
|
3830
|
+
when deleting all by family 2 group (ie. C<-2all:all=>) which deletes tags
|
|
3831
|
+
individually, as opposed to C<-all:all=> which deletes entire blocks.
|
|
3832
|
+
|
|
3833
|
+
5) The "APP" group names ("APP0" through "APP15") are used to delete JPEG
|
|
3805
3834
|
application segments which are not associated with another deletable group.
|
|
3806
3835
|
For example, specifying C<-APP14:All=> will NOT delete the APP14 "Adobe"
|
|
3807
3836
|
segment because this is accomplished with C<-Adobe:All>.
|
|
@@ -3835,10 +3864,10 @@ groups. This allows some information to be automatically transferred to the
|
|
|
3835
3864
|
appropriate group when copying between images of different formats. However,
|
|
3836
3865
|
if a group name is specified for a tag then the information is written only
|
|
3837
3866
|
to this group (unless redirected to another group, see below). If C<All> is
|
|
3838
|
-
used as a group name, then
|
|
3839
|
-
|
|
3840
|
-
|
|
3841
|
-
|
|
3867
|
+
used as a group name, then each tag is written to the same family 1 group it
|
|
3868
|
+
had in the source file (ie. the same specific location in the metadata), but
|
|
3869
|
+
a different family may be specified by adding a leading family number to the
|
|
3870
|
+
group name (ie. C<-0All:all>).
|
|
3842
3871
|
|
|
3843
3872
|
I<SRCFILE> may be the same as I<FILE> to move information around within a
|
|
3844
3873
|
single file. In this case, C<@> may be used to represent the source file
|
|
@@ -4060,13 +4089,17 @@ examples demonstrate basic use of this option:
|
|
|
4060
4089
|
# update metadata for all images in a directory from CSV file
|
|
4061
4090
|
exiftool -csv=a.csv dir
|
|
4062
4091
|
|
|
4063
|
-
Empty values are ignored when importing.
|
|
4064
|
-
|
|
4065
|
-
|
|
4066
|
-
|
|
4067
|
-
|
|
4068
|
-
|
|
4069
|
-
|
|
4092
|
+
Empty values are ignored when importing. Also, FileName and Directory
|
|
4093
|
+
columns are ignored if they exist (ie. ExifTool will not attempt to write
|
|
4094
|
+
these tags with a CSV import). To force a tag to be deleted, use the B<-f>
|
|
4095
|
+
option and set the value to "-" in the CSV file (or to the MissingTagValue
|
|
4096
|
+
if this API option was used).
|
|
4097
|
+
|
|
4098
|
+
When exporting a CSV file, the B<-g> or B<-G> option to add group names to
|
|
4099
|
+
the tag headings. If the B<-a> option is used to allow duplicate tag names,
|
|
4100
|
+
the duplicate tags are only included in the CSV output if the column
|
|
4101
|
+
headings are unique. Adding the B<-G4> option ensures a unique column
|
|
4102
|
+
heading for each tag.
|
|
4070
4103
|
|
|
4071
4104
|
List-type tags are stored as simple strings in a CSV file, but the B<-sep>
|
|
4072
4105
|
option may be used to split them back into separate items when importing.
|
|
@@ -4180,8 +4213,8 @@ may be suffixed with a C<#> to disable print conversion.
|
|
|
4180
4213
|
=item B<-l> (B<-long>)
|
|
4181
4214
|
|
|
4182
4215
|
Use long 2-line Canon-style output format. Adds a description and
|
|
4183
|
-
unconverted value
|
|
4184
|
-
B<-php> is used.
|
|
4216
|
+
unconverted value (if it is different from the converted value) to the XML,
|
|
4217
|
+
JSON or PHP output when B<-X>, B<-j> or B<-php> is used.
|
|
4185
4218
|
|
|
4186
4219
|
=item B<-L> (B<-latin>)
|
|
4187
4220
|
|
|
@@ -4266,7 +4299,7 @@ with this command:
|
|
|
4266
4299
|
|
|
4267
4300
|
produces output like this:
|
|
4268
4301
|
|
|
4269
|
-
-- Generated by ExifTool 9.
|
|
4302
|
+
-- Generated by ExifTool 9.41 --
|
|
4270
4303
|
File: a.jpg - 2003:10:31 15:44:19
|
|
4271
4304
|
(f/5.6, 1/60s, ISO 100)
|
|
4272
4305
|
File: b.jpg - 2006:05:23 11:57:38
|
|
@@ -4498,7 +4531,7 @@ although %c is only valid for output file names.
|
|
|
4498
4531
|
|
|
4499
4532
|
This enhanced version of the B<-w> option allows a separate output file to
|
|
4500
4533
|
be created for each extracted tag. The differences between B<-W> and B<-w>
|
|
4501
|
-
are
|
|
4534
|
+
are as follows:
|
|
4502
4535
|
|
|
4503
4536
|
1) With B<-W>, a new output file is created for each extracted tag.
|
|
4504
4537
|
|
|
@@ -4933,8 +4966,8 @@ read/write support for tags as recommended by the Metadata Working Group.
|
|
|
4933
4966
|
To save typing, C<-use MWG> is assumed if the C<MWG> group is specified for
|
|
4934
4967
|
any tag on the command line. See the
|
|
4935
4968
|
L<MWG Tags documentation|Image::ExifTool::TagNames/MWG Tags> for more
|
|
4936
|
-
details.
|
|
4937
|
-
until the application terminates, even across the C<-execute> option.
|
|
4969
|
+
details. Note that this option is not reversible, and remains in effect
|
|
4970
|
+
until the application terminates, even across the C<-execute> option.
|
|
4938
4971
|
|
|
4939
4972
|
=back
|
|
4940
4973
|
|
|
@@ -5052,6 +5085,13 @@ load exiftool for each invocation.
|
|
|
5052
5085
|
|
|
5053
5086
|
=over 5
|
|
5054
5087
|
|
|
5088
|
+
=item B<-api> I<OPT[=VAL]>
|
|
5089
|
+
|
|
5090
|
+
Set ExifTool API option. I<OPT> is a case-sensitive API option name. The
|
|
5091
|
+
option value is set to 1 if I<=VAL> is omitted. See L<Image::ExifTool
|
|
5092
|
+
Options|Image::ExifTool/Options> for a list of available API options. This
|
|
5093
|
+
overrides API options set via the config file.
|
|
5094
|
+
|
|
5055
5095
|
=item B<-common_args>
|
|
5056
5096
|
|
|
5057
5097
|
Specifies that all arguments following this option are common to all
|