exiftool_vendored 9.33.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 +15 -0
- data/bin/Image-ExifTool-9.33/Changes +6241 -0
- data/bin/Image-ExifTool-9.33/MANIFEST +859 -0
- data/bin/Image-ExifTool-9.33/META.yml +27 -0
- data/bin/Image-ExifTool-9.33/Makefile.PL +41 -0
- data/bin/Image-ExifTool-9.33/README +227 -0
- data/bin/Image-ExifTool-9.33/arg_files/exif2iptc.args +24 -0
- data/bin/Image-ExifTool-9.33/arg_files/exif2xmp.args +38 -0
- data/bin/Image-ExifTool-9.33/arg_files/gps2xmp.args +20 -0
- data/bin/Image-ExifTool-9.33/arg_files/iptc2exif.args +17 -0
- data/bin/Image-ExifTool-9.33/arg_files/iptc2xmp.args +53 -0
- data/bin/Image-ExifTool-9.33/arg_files/iptcCore.args +172 -0
- data/bin/Image-ExifTool-9.33/arg_files/pdf2xmp.args +23 -0
- data/bin/Image-ExifTool-9.33/arg_files/xmp2exif.args +39 -0
- data/bin/Image-ExifTool-9.33/arg_files/xmp2gps.args +24 -0
- data/bin/Image-ExifTool-9.33/arg_files/xmp2iptc.args +62 -0
- data/bin/Image-ExifTool-9.33/arg_files/xmp2pdf.args +23 -0
- data/bin/Image-ExifTool-9.33/config_files/ExifTool_config +299 -0
- data/bin/Image-ExifTool-9.33/config_files/convert_regions.config +81 -0
- data/bin/Image-ExifTool-9.33/exiftool +5715 -0
- data/bin/Image-ExifTool-9.33/fmt_files/gpx.fmt +29 -0
- data/bin/Image-ExifTool-9.33/fmt_files/gpx_wpt.fmt +33 -0
- data/bin/Image-ExifTool-9.33/fmt_files/kml.fmt +53 -0
- data/bin/Image-ExifTool-9.33/html/ExifTool.html +1959 -0
- data/bin/Image-ExifTool-9.33/html/MIE1.1-20070121.pdf +0 -0
- data/bin/Image-ExifTool-9.33/html/Shift.html +173 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/AFCP.html +53 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/AIFF.html +146 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/APE.html +149 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/APP12.html +188 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/ASF.html +1066 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/BMP.html +110 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Canon.html +8062 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/CanonCustom.html +2044 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/CanonRaw.html +561 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/CanonVRD.html +1222 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Casio.html +1569 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Composite.html +665 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/DICOM.html +15762 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/DNG.html +273 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/DV.html +75 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/DarwinCore.html +1445 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/DjVu.html +313 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/EXE.html +697 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/EXIF.html +3244 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Extra.html +301 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/FLAC.html +183 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/FLIR.html +931 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Flash.html +419 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/FlashPix.html +1435 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Font.html +485 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/FotoStation.html +103 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/FujiFilm.html +637 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/GE.html +40 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/GIF.html +116 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/GIMP.html +140 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/GPS.html +222 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/GeoTiff.html +2177 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/H264.html +393 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/HP.html +155 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/HTML.html +666 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/ICC_Profile.html +710 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/ID3.html +1473 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/IPTC.html +895 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/ITC.html +90 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/JFIF.html +61 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/JPEG.html +523 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/JVC.html +56 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Jpeg2000.html +464 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Kodak.html +1759 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/KyoceraRaw.html +92 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/LNK.html +478 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Leaf.html +870 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/M2TS.html +133 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/MIE.html +1026 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/MIFF.html +196 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/MNG.html +847 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/MPC.html +97 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/MPEG.html +249 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/MPF.html +199 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/MWG.html +563 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/MXF.html +6673 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Matroska.html +1069 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Microsoft.html +2066 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Minolta.html +2555 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/MinoltaRaw.html +326 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Nikon.html +4467 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/NikonCapture.html +776 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/NikonCustom.html +3835 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/OOXML.html +280 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Ogg.html +44 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Olympus.html +3386 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/OpenEXR.html +222 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/PDF.html +745 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/PGF.html +80 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/PICT.html +753 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/PLIST.html +86 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/PNG.html +515 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/PSP.html +160 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Panasonic.html +1452 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/PanasonicRaw.html +214 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Pentax.html +4332 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/PhaseOne.html +258 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/PhotoCD.html +402 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/PhotoMechanic.html +196 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Photoshop.html +555 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/PostScript.html +125 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/PrintIM.html +31 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Qualcomm.html +4778 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/QuickTime.html +3104 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/RIFF.html +1164 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/RSRC.html +74 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/RTF.html +150 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Radiance.html +87 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Rawzor.html +45 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Real.html +780 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Reconyx.html +132 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Ricoh.html +456 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Samsung.html +419 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Sanyo.html +366 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Shortcuts.html +237 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Sigma.html +372 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/SigmaRaw.html +403 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Sony.html +4279 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/SonyIDC.html +267 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Stim.html +200 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Theora.html +102 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Unknown.html +31 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/Vorbis.html +228 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/XMP.html +7234 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/ZIP.html +204 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/iWork.html +49 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/index.html +192 -0
- data/bin/Image-ExifTool-9.33/html/TagNames/style.css +31 -0
- data/bin/Image-ExifTool-9.33/html/ancient_history.html +6727 -0
- data/bin/Image-ExifTool-9.33/html/canon_raw.html +366 -0
- data/bin/Image-ExifTool-9.33/html/commentary.html +319 -0
- data/bin/Image-ExifTool-9.33/html/config.html +312 -0
- data/bin/Image-ExifTool-9.33/html/data_members.html +265 -0
- data/bin/Image-ExifTool-9.33/html/exiftool_pod.html +2338 -0
- data/bin/Image-ExifTool-9.33/html/faq.html +1434 -0
- data/bin/Image-ExifTool-9.33/html/filename.html +281 -0
- data/bin/Image-ExifTool-9.33/html/geotag.html +642 -0
- data/bin/Image-ExifTool-9.33/html/history.html +358 -0
- data/bin/Image-ExifTool-9.33/html/htmldump.html +732 -0
- data/bin/Image-ExifTool-9.33/html/idiosyncracies.html +251 -0
- data/bin/Image-ExifTool-9.33/html/index.html +1271 -0
- data/bin/Image-ExifTool-9.33/html/install.html +239 -0
- data/bin/Image-ExifTool-9.33/html/metafiles.html +266 -0
- data/bin/Image-ExifTool-9.33/html/overview.png +0 -0
- data/bin/Image-ExifTool-9.33/html/standards.html +277 -0
- data/bin/Image-ExifTool-9.33/html/struct.html +342 -0
- data/bin/Image-ExifTool-9.33/html/style.css +31 -0
- data/bin/Image-ExifTool-9.33/html/under.html +124 -0
- data/bin/Image-ExifTool-9.33/html/verbose.html +195 -0
- data/bin/Image-ExifTool-9.33/html/writing.html +239 -0
- data/bin/Image-ExifTool-9.33/lib/File/RandomAccess.pm +378 -0
- data/bin/Image-ExifTool-9.33/lib/File/RandomAccess.pod +231 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool.pm +6815 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool.pod +2385 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/AES.pm +501 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/AFCP.pm +284 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/AIFF.pm +271 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/APE.pm +262 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/APP12.pm +322 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/ASF.pm +884 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/BMP.pm +179 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/BZZ.pm +472 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/BigTIFF.pm +282 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/BuildTagLookup.pm +2400 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Canon.pm +7794 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/CanonCustom.pm +2523 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/CanonRaw.pm +931 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/CanonVRD.pm +1481 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/CaptureOne.pm +235 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Casio.pm +2013 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset.pm +396 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/Arabic.pm +39 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/Baltic.pm +35 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/Cyrillic.pm +45 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/Greek.pm +40 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/Hebrew.pm +36 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/JIS.pm +1735 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/Latin.pm +24 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/Latin2.pm +36 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacArabic.pm +47 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacChineseCN.pm +2088 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacChineseTW.pm +3623 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacCroatian.pm +43 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacCyrillic.pm +47 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacGreek.pm +45 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacHebrew.pm +47 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacIceland.pm +42 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacJapanese.pm +1933 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacKorean.pm +2720 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacLatin2.pm +44 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacRSymbol.pm +2087 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacRoman.pm +42 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacRomanian.pm +42 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacThai.pm +49 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacTurkish.pm +42 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/PDFDoc.pm +28 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/ShiftJIS.pm +1835 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/Symbol.pm +54 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/Thai.pm +41 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/Turkish.pm +25 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/Vietnam.pm +27 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/DICOM.pm +3835 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/DNG.pm +835 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/DV.pm +319 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/DarwinCore.pm +317 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/DjVu.pm +376 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/EXE.pm +1228 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Exif.pm +4542 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/FLAC.pm +296 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/FLIR.pm +972 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Fixup.pm +354 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Flash.pm +755 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/FlashPix.pm +1882 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Font.pm +643 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/FotoStation.pm +258 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/FujiFilm.pm +1020 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/GE.pm +80 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/GIF.pm +542 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/GIMP.pm +258 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/GPS.pm +511 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/GeoTiff.pm +2187 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Geotag.pm +1173 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/H264.pm +1102 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/HP.pm +262 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/HTML.pm +576 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/HtmlDump.pm +895 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/ICC_Profile.pm +999 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/ID3.pm +1532 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/IPTC.pm +1244 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/ITC.pm +215 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Import.pm +308 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/InDesign.pm +277 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/JPEG.pm +588 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/JPEGDigest.pm +2511 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/JVC.pm +130 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Jpeg2000.pm +881 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Kodak.pm +2014 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/KyoceraRaw.pm +173 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/LNK.pm +723 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/cs.pm +1586 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/de.pm +7356 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/en_ca.pm +557 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/en_gb.pm +572 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/es.pm +4016 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/fi.pm +2856 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/fr.pm +4720 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/it.pm +7917 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/ja.pm +5815 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/ko.pm +2332 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/nl.pm +3220 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/pl.pm +1140 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/ru.pm +769 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/sv.pm +639 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/tr.pm +544 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/zh_cn.pm +1329 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/zh_tw.pm +802 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Leaf.pm +515 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/M2TS.pm +729 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/MIE.pm +2561 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/MIEUnits.pod +377 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/MIFF.pm +279 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/MNG.pm +684 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/MPC.pm +156 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/MPEG.pm +736 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/MPF.pm +289 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/MWG.pm +736 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/MXF.pm +3032 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/MakerNotes.pm +1573 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Matroska.pm +891 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Microsoft.pm +879 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Minolta.pm +2833 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/MinoltaRaw.pm +534 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Nikon.pm +6116 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/NikonCapture.pm +911 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/NikonCustom.pm +4405 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/OOXML.pm +409 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Ogg.pm +237 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Olympus.pm +3582 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/OpenEXR.pm +324 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/PDF.pm +2327 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/PGF.pm +143 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/PICT.pm +1260 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/PLIST.pm +449 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/PNG.pm +1100 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/PPM.pm +169 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/PSP.pm +305 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Panasonic.pm +1995 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/PanasonicRaw.pm +535 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Pentax.pm +5489 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/PhaseOne.pm +557 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/PhotoCD.pm +507 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/PhotoMechanic.pm +256 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Photoshop.pm +629 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/PostScript.pm +693 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/PrintIM.pm +125 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Qualcomm.pm +1344 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/QuickTime.pm +3519 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/README +944 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/RIFF.pm +1322 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/RSRC.pm +241 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/RTF.pm +383 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Radiance.pm +144 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Rawzor.pm +190 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Real.pm +736 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Reconyx.pm +190 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Ricoh.pm +741 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Samsung.pm +820 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Sanyo.pm +439 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Shift.pl +594 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Shortcuts.pm +291 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Sigma.pm +574 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/SigmaRaw.pm +649 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Sony.pm +5722 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/SonyIDC.pm +330 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Stim.pm +196 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/TagInfoXML.pm +792 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/TagLookup.pm +8005 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/TagNames.pod +25950 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Theora.pm +145 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Unknown.pm +66 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Vorbis.pm +237 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/WriteCanonRaw.pl +637 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/WriteExif.pl +3674 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/WriteIPTC.pl +702 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/WritePDF.pl +759 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/WritePNG.pl +330 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/WritePhotoshop.pl +266 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/WritePostScript.pl +777 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/WriteXMP.pl +1318 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Writer.pl +5779 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/XMP.pm +3634 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/XMP2.pl +1298 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/XMPStruct.pl +813 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/ZIP.pm +623 -0
- data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/iWork.pm +223 -0
- data/bin/Image-ExifTool-9.33/perl-Image-ExifTool.spec +104 -0
- data/bin/Image-ExifTool-9.33/t/AFCP.t +44 -0
- data/bin/Image-ExifTool-9.33/t/AFCP_2.out +37 -0
- data/bin/Image-ExifTool-9.33/t/AFCP_3.out +20 -0
- data/bin/Image-ExifTool-9.33/t/AIFF.t +28 -0
- data/bin/Image-ExifTool-9.33/t/AIFF_2.out +31 -0
- data/bin/Image-ExifTool-9.33/t/APE.t +38 -0
- data/bin/Image-ExifTool-9.33/t/APE_2.out +28 -0
- data/bin/Image-ExifTool-9.33/t/APE_3.out +57 -0
- data/bin/Image-ExifTool-9.33/t/ASF.t +28 -0
- data/bin/Image-ExifTool-9.33/t/ASF_2.out +54 -0
- data/bin/Image-ExifTool-9.33/t/BMP.t +28 -0
- data/bin/Image-ExifTool-9.33/t/BMP_2.out +21 -0
- data/bin/Image-ExifTool-9.33/t/BigTIFF.t +28 -0
- data/bin/Image-ExifTool-9.33/t/BigTIFF_2.out +19 -0
- data/bin/Image-ExifTool-9.33/t/Canon.t +41 -0
- data/bin/Image-ExifTool-9.33/t/CanonRaw.t +126 -0
- data/bin/Image-ExifTool-9.33/t/CanonRaw_2.out +165 -0
- data/bin/Image-ExifTool-9.33/t/CanonRaw_4.out +217 -0
- data/bin/Image-ExifTool-9.33/t/CanonRaw_5.out +207 -0
- data/bin/Image-ExifTool-9.33/t/CanonRaw_6.out +231 -0
- data/bin/Image-ExifTool-9.33/t/CanonRaw_7.out +247 -0
- data/bin/Image-ExifTool-9.33/t/CanonVRD.t +129 -0
- data/bin/Image-ExifTool-9.33/t/CanonVRD_11.out +118 -0
- data/bin/Image-ExifTool-9.33/t/CanonVRD_12.out +12 -0
- data/bin/Image-ExifTool-9.33/t/CanonVRD_2.out +116 -0
- data/bin/Image-ExifTool-9.33/t/CanonVRD_3.out +116 -0
- data/bin/Image-ExifTool-9.33/t/CanonVRD_4.out +2 -0
- data/bin/Image-ExifTool-9.33/t/CanonVRD_5.out +3 -0
- data/bin/Image-ExifTool-9.33/t/CanonVRD_6.out +3 -0
- data/bin/Image-ExifTool-9.33/t/CanonVRD_7.out +2 -0
- data/bin/Image-ExifTool-9.33/t/CanonVRD_8.out +2 -0
- data/bin/Image-ExifTool-9.33/t/CanonVRD_9.out +1 -0
- data/bin/Image-ExifTool-9.33/t/Canon_2.out +350 -0
- data/bin/Image-ExifTool-9.33/t/Canon_3.out +3 -0
- data/bin/Image-ExifTool-9.33/t/Casio.t +54 -0
- data/bin/Image-ExifTool-9.33/t/Casio_2.out +70 -0
- data/bin/Image-ExifTool-9.33/t/Casio_3.out +100 -0
- data/bin/Image-ExifTool-9.33/t/Casio_4.out +26 -0
- data/bin/Image-ExifTool-9.33/t/Casio_5.out +78 -0
- data/bin/Image-ExifTool-9.33/t/Casio_6.out +115 -0
- data/bin/Image-ExifTool-9.33/t/DICOM.t +28 -0
- data/bin/Image-ExifTool-9.33/t/DICOM_2.out +108 -0
- data/bin/Image-ExifTool-9.33/t/DNG.t +39 -0
- data/bin/Image-ExifTool-9.33/t/DNG_2.out +326 -0
- data/bin/Image-ExifTool-9.33/t/DNG_3.out +4 -0
- data/bin/Image-ExifTool-9.33/t/DV.t +27 -0
- data/bin/Image-ExifTool-9.33/t/DV_2.out +24 -0
- data/bin/Image-ExifTool-9.33/t/DjVu.t +28 -0
- data/bin/Image-ExifTool-9.33/t/DjVu_2.out +44 -0
- data/bin/Image-ExifTool-9.33/t/EXE.t +31 -0
- data/bin/Image-ExifTool-9.33/t/EXE_2.out +40 -0
- data/bin/Image-ExifTool-9.33/t/EXE_3.out +15 -0
- data/bin/Image-ExifTool-9.33/t/EXE_4.out +14 -0
- data/bin/Image-ExifTool-9.33/t/ExifTool.t +284 -0
- data/bin/Image-ExifTool-9.33/t/ExifTool_16.out +180 -0
- data/bin/Image-ExifTool-9.33/t/ExifTool_17.out +594 -0
- data/bin/Image-ExifTool-9.33/t/ExifTool_2.out +399 -0
- data/bin/Image-ExifTool-9.33/t/ExifTool_20.out +1 -0
- data/bin/Image-ExifTool-9.33/t/ExifTool_21.out +1 -0
- data/bin/Image-ExifTool-9.33/t/ExifTool_22.out +1 -0
- data/bin/Image-ExifTool-9.33/t/ExifTool_23.out +6 -0
- data/bin/Image-ExifTool-9.33/t/ExifTool_24.out +3 -0
- data/bin/Image-ExifTool-9.33/t/ExifTool_25.out +13 -0
- data/bin/Image-ExifTool-9.33/t/ExifTool_26.out +12 -0
- data/bin/Image-ExifTool-9.33/t/ExifTool_3.out +87 -0
- data/bin/Image-ExifTool-9.33/t/ExifTool_4.out +41 -0
- data/bin/Image-ExifTool-9.33/t/ExifTool_5.out +6 -0
- data/bin/Image-ExifTool-9.33/t/ExifTool_6.out +68 -0
- data/bin/Image-ExifTool-9.33/t/ExifTool_7.out +125 -0
- data/bin/Image-ExifTool-9.33/t/ExifTool_8.out +125 -0
- data/bin/Image-ExifTool-9.33/t/ExifTool_9.out +33 -0
- data/bin/Image-ExifTool-9.33/t/FLAC.t +37 -0
- data/bin/Image-ExifTool-9.33/t/FLAC_2.out +25 -0
- data/bin/Image-ExifTool-9.33/t/FLAC_3.out +19 -0
- data/bin/Image-ExifTool-9.33/t/FLIR.t +30 -0
- data/bin/Image-ExifTool-9.33/t/FLIR_2.out +104 -0
- data/bin/Image-ExifTool-9.33/t/FLIR_3.out +47 -0
- data/bin/Image-ExifTool-9.33/t/Flash.t +37 -0
- data/bin/Image-ExifTool-9.33/t/FlashPix.t +30 -0
- data/bin/Image-ExifTool-9.33/t/FlashPix_2.out +48 -0
- data/bin/Image-ExifTool-9.33/t/Flash_2.out +20 -0
- data/bin/Image-ExifTool-9.33/t/Flash_3.out +53 -0
- data/bin/Image-ExifTool-9.33/t/Font.t +30 -0
- data/bin/Image-ExifTool-9.33/t/Font_2.out +23 -0
- data/bin/Image-ExifTool-9.33/t/Font_3.out +35 -0
- data/bin/Image-ExifTool-9.33/t/Font_4.out +26 -0
- data/bin/Image-ExifTool-9.33/t/Font_5.out +26 -0
- data/bin/Image-ExifTool-9.33/t/Font_6.out +36 -0
- data/bin/Image-ExifTool-9.33/t/Font_7.out +36 -0
- data/bin/Image-ExifTool-9.33/t/FotoStation.t +38 -0
- data/bin/Image-ExifTool-9.33/t/FotoStation_2.out +39 -0
- data/bin/Image-ExifTool-9.33/t/FotoStation_3.out +3 -0
- data/bin/Image-ExifTool-9.33/t/FujiFilm.t +78 -0
- data/bin/Image-ExifTool-9.33/t/FujiFilm_2.out +87 -0
- data/bin/Image-ExifTool-9.33/t/FujiFilm_3.out +88 -0
- data/bin/Image-ExifTool-9.33/t/FujiFilm_4.out +117 -0
- data/bin/Image-ExifTool-9.33/t/FujiFilm_5.out +1 -0
- data/bin/Image-ExifTool-9.33/t/GE.t +46 -0
- data/bin/Image-ExifTool-9.33/t/GE_2.out +84 -0
- data/bin/Image-ExifTool-9.33/t/GE_3.out +84 -0
- data/bin/Image-ExifTool-9.33/t/GIF.t +83 -0
- data/bin/Image-ExifTool-9.33/t/GIF_2.out +40 -0
- data/bin/Image-ExifTool-9.33/t/GIF_3.out +41 -0
- data/bin/Image-ExifTool-9.33/t/GIF_4.out +16 -0
- data/bin/Image-ExifTool-9.33/t/GIMP.t +27 -0
- data/bin/Image-ExifTool-9.33/t/GIMP_2.out +63 -0
- data/bin/Image-ExifTool-9.33/t/GPS.t +42 -0
- data/bin/Image-ExifTool-9.33/t/GPS_2.out +94 -0
- data/bin/Image-ExifTool-9.33/t/GPS_3.out +96 -0
- data/bin/Image-ExifTool-9.33/t/GeoTiff.t +36 -0
- data/bin/Image-ExifTool-9.33/t/GeoTiff_2.out +36 -0
- data/bin/Image-ExifTool-9.33/t/GeoTiff_3.out +36 -0
- data/bin/Image-ExifTool-9.33/t/Geotag.t +164 -0
- data/bin/Image-ExifTool-9.33/t/Geotag_2.out +9 -0
- data/bin/Image-ExifTool-9.33/t/Geotag_3.out +6 -0
- data/bin/Image-ExifTool-9.33/t/Geotag_5.out +1 -0
- data/bin/Image-ExifTool-9.33/t/Geotag_6.out +9 -0
- data/bin/Image-ExifTool-9.33/t/Geotag_7.out +53 -0
- data/bin/Image-ExifTool-9.33/t/Geotag_8.out +15 -0
- data/bin/Image-ExifTool-9.33/t/HTML.t +28 -0
- data/bin/Image-ExifTool-9.33/t/HTML_2.out +68 -0
- data/bin/Image-ExifTool-9.33/t/IPTC.t +157 -0
- data/bin/Image-ExifTool-9.33/t/IPTC_2.out +58 -0
- data/bin/Image-ExifTool-9.33/t/IPTC_4.out +56 -0
- data/bin/Image-ExifTool-9.33/t/IPTC_5.out +1 -0
- data/bin/Image-ExifTool-9.33/t/IPTC_6.out +2 -0
- data/bin/Image-ExifTool-9.33/t/IPTC_7.out +1 -0
- data/bin/Image-ExifTool-9.33/t/IPTC_8.out +20 -0
- data/bin/Image-ExifTool-9.33/t/ITC.t +28 -0
- data/bin/Image-ExifTool-9.33/t/ITC_2.out +19 -0
- data/bin/Image-ExifTool-9.33/t/InDesign.t +61 -0
- data/bin/Image-ExifTool-9.33/t/InDesign_2.out +19 -0
- data/bin/Image-ExifTool-9.33/t/InDesign_3.out +21 -0
- data/bin/Image-ExifTool-9.33/t/InDesign_4.out +11 -0
- data/bin/Image-ExifTool-9.33/t/JVC.t +36 -0
- data/bin/Image-ExifTool-9.33/t/JVC_2.out +3 -0
- data/bin/Image-ExifTool-9.33/t/JVC_3.out +3 -0
- data/bin/Image-ExifTool-9.33/t/Jpeg2000.t +49 -0
- data/bin/Image-ExifTool-9.33/t/Jpeg2000_2.out +63 -0
- data/bin/Image-ExifTool-9.33/t/Jpeg2000_3.out +51 -0
- data/bin/Image-ExifTool-9.33/t/Jpeg2000_4.out +15 -0
- data/bin/Image-ExifTool-9.33/t/Kodak.t +40 -0
- data/bin/Image-ExifTool-9.33/t/Kodak_2.out +109 -0
- data/bin/Image-ExifTool-9.33/t/Kodak_3.out +119 -0
- data/bin/Image-ExifTool-9.33/t/KyoceraRaw.t +28 -0
- data/bin/Image-ExifTool-9.33/t/KyoceraRaw_2.out +27 -0
- data/bin/Image-ExifTool-9.33/t/LNK.t +28 -0
- data/bin/Image-ExifTool-9.33/t/LNK_2.out +45 -0
- data/bin/Image-ExifTool-9.33/t/Lang.t +40 -0
- data/bin/Image-ExifTool-9.33/t/Lang_1.out +1 -0
- data/bin/Image-ExifTool-9.33/t/Lang_10.out +46 -0
- data/bin/Image-ExifTool-9.33/t/Lang_11.out +46 -0
- data/bin/Image-ExifTool-9.33/t/Lang_12.out +46 -0
- data/bin/Image-ExifTool-9.33/t/Lang_13.out +46 -0
- data/bin/Image-ExifTool-9.33/t/Lang_14.out +46 -0
- data/bin/Image-ExifTool-9.33/t/Lang_15.out +46 -0
- data/bin/Image-ExifTool-9.33/t/Lang_16.out +46 -0
- data/bin/Image-ExifTool-9.33/t/Lang_17.out +46 -0
- data/bin/Image-ExifTool-9.33/t/Lang_18.out +46 -0
- data/bin/Image-ExifTool-9.33/t/Lang_2.out +46 -0
- data/bin/Image-ExifTool-9.33/t/Lang_3.out +46 -0
- data/bin/Image-ExifTool-9.33/t/Lang_4.out +46 -0
- data/bin/Image-ExifTool-9.33/t/Lang_5.out +46 -0
- data/bin/Image-ExifTool-9.33/t/Lang_6.out +46 -0
- data/bin/Image-ExifTool-9.33/t/Lang_7.out +46 -0
- data/bin/Image-ExifTool-9.33/t/Lang_8.out +46 -0
- data/bin/Image-ExifTool-9.33/t/Lang_9.out +46 -0
- data/bin/Image-ExifTool-9.33/t/M2TS.t +29 -0
- data/bin/Image-ExifTool-9.33/t/M2TS_2.out +27 -0
- data/bin/Image-ExifTool-9.33/t/MIE.t +82 -0
- data/bin/Image-ExifTool-9.33/t/MIE_2.out +67 -0
- data/bin/Image-ExifTool-9.33/t/MIE_3.out +134 -0
- data/bin/Image-ExifTool-9.33/t/MIE_5.out +1 -0
- data/bin/Image-ExifTool-9.33/t/MIE_6.out +1 -0
- data/bin/Image-ExifTool-9.33/t/MIFF.t +28 -0
- data/bin/Image-ExifTool-9.33/t/MIFF_2.out +108 -0
- data/bin/Image-ExifTool-9.33/t/MP3.t +29 -0
- data/bin/Image-ExifTool-9.33/t/MP3_2.out +45 -0
- data/bin/Image-ExifTool-9.33/t/MWG.t +72 -0
- data/bin/Image-ExifTool-9.33/t/MWG_2.out +13 -0
- data/bin/Image-ExifTool-9.33/t/MWG_3.out +8 -0
- data/bin/Image-ExifTool-9.33/t/MWG_4.out +5 -0
- data/bin/Image-ExifTool-9.33/t/MWG_5.out +22 -0
- data/bin/Image-ExifTool-9.33/t/MXF.t +27 -0
- data/bin/Image-ExifTool-9.33/t/MXF_2.out +78 -0
- data/bin/Image-ExifTool-9.33/t/Matroska.t +29 -0
- data/bin/Image-ExifTool-9.33/t/Matroska_2.out +64 -0
- data/bin/Image-ExifTool-9.33/t/Minolta.t +50 -0
- data/bin/Image-ExifTool-9.33/t/Minolta_2.out +133 -0
- data/bin/Image-ExifTool-9.33/t/Minolta_3.out +146 -0
- data/bin/Image-ExifTool-9.33/t/Minolta_4.out +148 -0
- data/bin/Image-ExifTool-9.33/t/Nikon.t +114 -0
- data/bin/Image-ExifTool-9.33/t/Nikon_2.out +82 -0
- data/bin/Image-ExifTool-9.33/t/Nikon_3.out +98 -0
- data/bin/Image-ExifTool-9.33/t/Nikon_4.out +174 -0
- data/bin/Image-ExifTool-9.33/t/Nikon_5.out +167 -0
- data/bin/Image-ExifTool-9.33/t/Nikon_7.out +260 -0
- data/bin/Image-ExifTool-9.33/t/Nikon_8.out +4 -0
- data/bin/Image-ExifTool-9.33/t/Olympus.t +85 -0
- data/bin/Image-ExifTool-9.33/t/Olympus_2.out +79 -0
- data/bin/Image-ExifTool-9.33/t/Olympus_3.out +81 -0
- data/bin/Image-ExifTool-9.33/t/Olympus_4.out +192 -0
- data/bin/Image-ExifTool-9.33/t/Olympus_5.out +264 -0
- data/bin/Image-ExifTool-9.33/t/Olympus_6.out +151 -0
- data/bin/Image-ExifTool-9.33/t/Olympus_7.out +482 -0
- data/bin/Image-ExifTool-9.33/t/OpenEXR.t +28 -0
- data/bin/Image-ExifTool-9.33/t/OpenEXR_2.out +23 -0
- data/bin/Image-ExifTool-9.33/t/PDF.t +295 -0
- data/bin/Image-ExifTool-9.33/t/PDF_10.out +10 -0
- data/bin/Image-ExifTool-9.33/t/PDF_11.out +10 -0
- data/bin/Image-ExifTool-9.33/t/PDF_12.out +9 -0
- data/bin/Image-ExifTool-9.33/t/PDF_14.out +5 -0
- data/bin/Image-ExifTool-9.33/t/PDF_15.out +6 -0
- data/bin/Image-ExifTool-9.33/t/PDF_16.out +4 -0
- data/bin/Image-ExifTool-9.33/t/PDF_17.out +4 -0
- data/bin/Image-ExifTool-9.33/t/PDF_18.out +5 -0
- data/bin/Image-ExifTool-9.33/t/PDF_19.out +6 -0
- data/bin/Image-ExifTool-9.33/t/PDF_2.out +117 -0
- data/bin/Image-ExifTool-9.33/t/PDF_20.out +4 -0
- data/bin/Image-ExifTool-9.33/t/PDF_22.out +3 -0
- data/bin/Image-ExifTool-9.33/t/PDF_4.out +12 -0
- data/bin/Image-ExifTool-9.33/t/PDF_5.out +8 -0
- data/bin/Image-ExifTool-9.33/t/PDF_6.out +9 -0
- data/bin/Image-ExifTool-9.33/t/PDF_7.out +11 -0
- data/bin/Image-ExifTool-9.33/t/PDF_8.out +9 -0
- data/bin/Image-ExifTool-9.33/t/PDF_9.out +9 -0
- data/bin/Image-ExifTool-9.33/t/PGF.t +28 -0
- data/bin/Image-ExifTool-9.33/t/PGF_2.out +32 -0
- data/bin/Image-ExifTool-9.33/t/PICT.t +28 -0
- data/bin/Image-ExifTool-9.33/t/PICT_2.out +15 -0
- data/bin/Image-ExifTool-9.33/t/PLIST.t +31 -0
- data/bin/Image-ExifTool-9.33/t/PLIST_2.out +20 -0
- data/bin/Image-ExifTool-9.33/t/PLIST_3.out +20 -0
- data/bin/Image-ExifTool-9.33/t/PNG.t +75 -0
- data/bin/Image-ExifTool-9.33/t/PNG_2.out +22 -0
- data/bin/Image-ExifTool-9.33/t/PNG_3.out +118 -0
- data/bin/Image-ExifTool-9.33/t/PNG_4.out +12 -0
- data/bin/Image-ExifTool-9.33/t/PPM.t +40 -0
- data/bin/Image-ExifTool-9.33/t/PPM_2.out +15 -0
- data/bin/Image-ExifTool-9.33/t/PPM_3.out +9 -0
- data/bin/Image-ExifTool-9.33/t/PSP.t +28 -0
- data/bin/Image-ExifTool-9.33/t/PSP_2.out +32 -0
- data/bin/Image-ExifTool-9.33/t/Panasonic.t +60 -0
- data/bin/Image-ExifTool-9.33/t/Panasonic_2.out +99 -0
- data/bin/Image-ExifTool-9.33/t/Panasonic_3.out +119 -0
- data/bin/Image-ExifTool-9.33/t/Panasonic_4.out +177 -0
- data/bin/Image-ExifTool-9.33/t/Panasonic_5.out +228 -0
- data/bin/Image-ExifTool-9.33/t/Pentax.t +50 -0
- data/bin/Image-ExifTool-9.33/t/Pentax_2.out +219 -0
- data/bin/Image-ExifTool-9.33/t/Pentax_3.out +262 -0
- data/bin/Image-ExifTool-9.33/t/Pentax_4.out +123 -0
- data/bin/Image-ExifTool-9.33/t/PhotoCD.t +28 -0
- data/bin/Image-ExifTool-9.33/t/PhotoCD_2.out +35 -0
- data/bin/Image-ExifTool-9.33/t/PhotoMechanic.t +38 -0
- data/bin/Image-ExifTool-9.33/t/PhotoMechanic_2.out +81 -0
- data/bin/Image-ExifTool-9.33/t/PhotoMechanic_3.out +2 -0
- data/bin/Image-ExifTool-9.33/t/Photoshop.t +42 -0
- data/bin/Image-ExifTool-9.33/t/Photoshop_2.out +96 -0
- data/bin/Image-ExifTool-9.33/t/Photoshop_3.out +108 -0
- data/bin/Image-ExifTool-9.33/t/PostScript.t +49 -0
- data/bin/Image-ExifTool-9.33/t/PostScript_2.out +64 -0
- data/bin/Image-ExifTool-9.33/t/PostScript_3.out +132 -0
- data/bin/Image-ExifTool-9.33/t/QuickTime.t +31 -0
- data/bin/Image-ExifTool-9.33/t/QuickTime_2.out +128 -0
- data/bin/Image-ExifTool-9.33/t/QuickTime_3.out +69 -0
- data/bin/Image-ExifTool-9.33/t/RIFF.t +31 -0
- data/bin/Image-ExifTool-9.33/t/RIFF_2.out +24 -0
- data/bin/Image-ExifTool-9.33/t/RIFF_3.out +52 -0
- data/bin/Image-ExifTool-9.33/t/RIFF_4.out +16 -0
- data/bin/Image-ExifTool-9.33/t/RTF.t +27 -0
- data/bin/Image-ExifTool-9.33/t/RTF_2.out +20 -0
- data/bin/Image-ExifTool-9.33/t/Radiance.t +28 -0
- data/bin/Image-ExifTool-9.33/t/Radiance_2.out +22 -0
- data/bin/Image-ExifTool-9.33/t/Real.t +46 -0
- data/bin/Image-ExifTool-9.33/t/Real_2.out +68 -0
- data/bin/Image-ExifTool-9.33/t/Real_3.out +18 -0
- data/bin/Image-ExifTool-9.33/t/Real_4.out +11 -0
- data/bin/Image-ExifTool-9.33/t/Ricoh.t +47 -0
- data/bin/Image-ExifTool-9.33/t/Ricoh_2.out +70 -0
- data/bin/Image-ExifTool-9.33/t/Ricoh_3.out +98 -0
- data/bin/Image-ExifTool-9.33/t/Ricoh_4.out +112 -0
- data/bin/Image-ExifTool-9.33/t/Sanyo.t +39 -0
- data/bin/Image-ExifTool-9.33/t/Sanyo_2.out +101 -0
- data/bin/Image-ExifTool-9.33/t/Sanyo_3.out +111 -0
- data/bin/Image-ExifTool-9.33/t/Sigma.t +60 -0
- data/bin/Image-ExifTool-9.33/t/Sigma_2.out +91 -0
- data/bin/Image-ExifTool-9.33/t/Sigma_3.out +94 -0
- data/bin/Image-ExifTool-9.33/t/Sigma_4.out +63 -0
- data/bin/Image-ExifTool-9.33/t/Sigma_5.out +192 -0
- data/bin/Image-ExifTool-9.33/t/Sony.t +62 -0
- data/bin/Image-ExifTool-9.33/t/Sony_2.out +84 -0
- data/bin/Image-ExifTool-9.33/t/Sony_3.out +85 -0
- data/bin/Image-ExifTool-9.33/t/Sony_5.out +32 -0
- data/bin/Image-ExifTool-9.33/t/TestLib.pm +417 -0
- data/bin/Image-ExifTool-9.33/t/Unknown.t +36 -0
- data/bin/Image-ExifTool-9.33/t/Unknown_2.out +90 -0
- data/bin/Image-ExifTool-9.33/t/Unknown_3.out +90 -0
- data/bin/Image-ExifTool-9.33/t/Vorbis.t +28 -0
- data/bin/Image-ExifTool-9.33/t/Vorbis_2.out +28 -0
- data/bin/Image-ExifTool-9.33/t/Writer.t +913 -0
- data/bin/Image-ExifTool-9.33/t/Writer_10.out +240 -0
- data/bin/Image-ExifTool-9.33/t/Writer_11.out +37 -0
- data/bin/Image-ExifTool-9.33/t/Writer_13.out +160 -0
- data/bin/Image-ExifTool-9.33/t/Writer_14.out +67 -0
- data/bin/Image-ExifTool-9.33/t/Writer_15.out +171 -0
- data/bin/Image-ExifTool-9.33/t/Writer_16.out +1 -0
- data/bin/Image-ExifTool-9.33/t/Writer_17.out +1 -0
- data/bin/Image-ExifTool-9.33/t/Writer_18.out +3 -0
- data/bin/Image-ExifTool-9.33/t/Writer_19.out +34 -0
- data/bin/Image-ExifTool-9.33/t/Writer_2.out +168 -0
- data/bin/Image-ExifTool-9.33/t/Writer_22.out +4 -0
- data/bin/Image-ExifTool-9.33/t/Writer_24.out +1 -0
- data/bin/Image-ExifTool-9.33/t/Writer_25.out +38 -0
- data/bin/Image-ExifTool-9.33/t/Writer_26.out +32 -0
- data/bin/Image-ExifTool-9.33/t/Writer_27.out +14 -0
- data/bin/Image-ExifTool-9.33/t/Writer_28.out +1 -0
- data/bin/Image-ExifTool-9.33/t/Writer_29.out +2 -0
- data/bin/Image-ExifTool-9.33/t/Writer_30.out +2 -0
- data/bin/Image-ExifTool-9.33/t/Writer_31.out +97 -0
- data/bin/Image-ExifTool-9.33/t/Writer_32.out +3 -0
- data/bin/Image-ExifTool-9.33/t/Writer_33.out +3 -0
- data/bin/Image-ExifTool-9.33/t/Writer_34.out +3 -0
- data/bin/Image-ExifTool-9.33/t/Writer_35.out +187 -0
- data/bin/Image-ExifTool-9.33/t/Writer_36.out +2 -0
- data/bin/Image-ExifTool-9.33/t/Writer_37.out +2 -0
- data/bin/Image-ExifTool-9.33/t/Writer_38.out +62 -0
- data/bin/Image-ExifTool-9.33/t/Writer_39.out +4 -0
- data/bin/Image-ExifTool-9.33/t/Writer_4.out +85 -0
- data/bin/Image-ExifTool-9.33/t/Writer_40.out +4 -0
- data/bin/Image-ExifTool-9.33/t/Writer_41.out +3 -0
- data/bin/Image-ExifTool-9.33/t/Writer_42.out +5 -0
- data/bin/Image-ExifTool-9.33/t/Writer_43.out +5 -0
- data/bin/Image-ExifTool-9.33/t/Writer_44.out +2 -0
- data/bin/Image-ExifTool-9.33/t/Writer_45.out +1 -0
- data/bin/Image-ExifTool-9.33/t/Writer_46.out +77 -0
- data/bin/Image-ExifTool-9.33/t/Writer_47.out +56 -0
- data/bin/Image-ExifTool-9.33/t/Writer_48.out +29 -0
- data/bin/Image-ExifTool-9.33/t/Writer_50.out +3 -0
- data/bin/Image-ExifTool-9.33/t/Writer_51.out +386 -0
- data/bin/Image-ExifTool-9.33/t/Writer_6.out +182 -0
- data/bin/Image-ExifTool-9.33/t/Writer_7.out +149 -0
- data/bin/Image-ExifTool-9.33/t/Writer_9.out +237 -0
- data/bin/Image-ExifTool-9.33/t/XMP.t +521 -0
- data/bin/Image-ExifTool-9.33/t/XMP_10.out +33 -0
- data/bin/Image-ExifTool-9.33/t/XMP_11.out +59 -0
- data/bin/Image-ExifTool-9.33/t/XMP_12.out +4 -0
- data/bin/Image-ExifTool-9.33/t/XMP_13.out +5 -0
- data/bin/Image-ExifTool-9.33/t/XMP_14.out +3 -0
- data/bin/Image-ExifTool-9.33/t/XMP_15.out +3 -0
- data/bin/Image-ExifTool-9.33/t/XMP_16.out +5 -0
- data/bin/Image-ExifTool-9.33/t/XMP_17.out +6 -0
- data/bin/Image-ExifTool-9.33/t/XMP_18.out +10 -0
- data/bin/Image-ExifTool-9.33/t/XMP_19.out +35 -0
- data/bin/Image-ExifTool-9.33/t/XMP_2.out +138 -0
- data/bin/Image-ExifTool-9.33/t/XMP_20.out +35 -0
- data/bin/Image-ExifTool-9.33/t/XMP_21.out +38 -0
- data/bin/Image-ExifTool-9.33/t/XMP_22.out +38 -0
- data/bin/Image-ExifTool-9.33/t/XMP_23.out +9 -0
- data/bin/Image-ExifTool-9.33/t/XMP_24.out +31 -0
- data/bin/Image-ExifTool-9.33/t/XMP_25.out +28 -0
- data/bin/Image-ExifTool-9.33/t/XMP_26.out +52 -0
- data/bin/Image-ExifTool-9.33/t/XMP_27.out +93 -0
- data/bin/Image-ExifTool-9.33/t/XMP_28.out +44 -0
- data/bin/Image-ExifTool-9.33/t/XMP_29.out +24 -0
- data/bin/Image-ExifTool-9.33/t/XMP_3.out +136 -0
- data/bin/Image-ExifTool-9.33/t/XMP_30.out +90 -0
- data/bin/Image-ExifTool-9.33/t/XMP_31.out +19 -0
- data/bin/Image-ExifTool-9.33/t/XMP_32.out +2 -0
- data/bin/Image-ExifTool-9.33/t/XMP_34.out +2 -0
- data/bin/Image-ExifTool-9.33/t/XMP_36.out +18 -0
- data/bin/Image-ExifTool-9.33/t/XMP_37.out +35 -0
- data/bin/Image-ExifTool-9.33/t/XMP_39.out +44 -0
- data/bin/Image-ExifTool-9.33/t/XMP_40.out +3 -0
- data/bin/Image-ExifTool-9.33/t/XMP_41.out +175 -0
- data/bin/Image-ExifTool-9.33/t/XMP_5.out +29 -0
- data/bin/Image-ExifTool-9.33/t/XMP_6.out +87 -0
- data/bin/Image-ExifTool-9.33/t/XMP_7.out +118 -0
- data/bin/Image-ExifTool-9.33/t/XMP_8.out +17 -0
- data/bin/Image-ExifTool-9.33/t/XMP_9.out +36 -0
- data/bin/Image-ExifTool-9.33/t/ZIP.t +69 -0
- data/bin/Image-ExifTool-9.33/t/ZIP_2.out +18 -0
- data/bin/Image-ExifTool-9.33/t/ZIP_3.out +17 -0
- data/bin/Image-ExifTool-9.33/t/ZIP_4.out +213 -0
- data/bin/Image-ExifTool-9.33/t/ZIP_5.out +134 -0
- data/bin/Image-ExifTool-9.33/t/ZIP_6.out +49 -0
- data/bin/Image-ExifTool-9.33/t/ZIP_7.out +28 -0
- data/bin/Image-ExifTool-9.33/t/images/AFCP.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/AIFF.aif +0 -0
- data/bin/Image-ExifTool-9.33/t/images/APE.ape +0 -0
- data/bin/Image-ExifTool-9.33/t/images/APE.mpc +0 -0
- data/bin/Image-ExifTool-9.33/t/images/ASF.wmv +0 -0
- data/bin/Image-ExifTool-9.33/t/images/BMP.bmp +0 -0
- data/bin/Image-ExifTool-9.33/t/images/BigTIFF.btf +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Canon.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Canon1DmkIII.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/CanonRaw.cr2 +0 -0
- data/bin/Image-ExifTool-9.33/t/images/CanonRaw.crw +0 -0
- data/bin/Image-ExifTool-9.33/t/images/CanonVRD.vrd +0 -0
- data/bin/Image-ExifTool-9.33/t/images/CaptureOne.eip +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Casio.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Casio2.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/CasioQVCI.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/DICOM.dcm +0 -0
- data/bin/Image-ExifTool-9.33/t/images/DNG.dng +0 -0
- data/bin/Image-ExifTool-9.33/t/images/DV.dv +0 -0
- data/bin/Image-ExifTool-9.33/t/images/DjVu.djvu +0 -0
- data/bin/Image-ExifTool-9.33/t/images/EXE.elf +0 -0
- data/bin/Image-ExifTool-9.33/t/images/EXE.exe +0 -0
- data/bin/Image-ExifTool-9.33/t/images/EXE.macho +0 -0
- data/bin/Image-ExifTool-9.33/t/images/ExifTool.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/ExifTool.tif +0 -0
- data/bin/Image-ExifTool-9.33/t/images/ExtendedXMP.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/FLAC.flac +0 -0
- data/bin/Image-ExifTool-9.33/t/images/FLAC.ogg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/FLIR.fpf +0 -0
- data/bin/Image-ExifTool-9.33/t/images/FLIR.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Flash.flv +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Flash.swf +0 -0
- data/bin/Image-ExifTool-9.33/t/images/FlashPix.ppt +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Font.afm +28 -0
- data/bin/Image-ExifTool-9.33/t/images/Font.dfont +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Font.pfa +38 -0
- data/bin/Image-ExifTool-9.33/t/images/Font.pfb +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Font.pfm +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Font.ttf +0 -0
- data/bin/Image-ExifTool-9.33/t/images/FotoStation.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/FujiFilm.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/FujiFilm.raf +0 -0
- data/bin/Image-ExifTool-9.33/t/images/GE.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/GIF.gif +0 -0
- data/bin/Image-ExifTool-9.33/t/images/GIMP.xcf +0 -0
- data/bin/Image-ExifTool-9.33/t/images/GPS.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/GeoTiff.tif +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Geotag.gpx +23 -0
- data/bin/Image-ExifTool-9.33/t/images/Geotag.igc +24 -0
- data/bin/Image-ExifTool-9.33/t/images/Geotag.log +13 -0
- data/bin/Image-ExifTool-9.33/t/images/Geotag.xml +23 -0
- data/bin/Image-ExifTool-9.33/t/images/Geotag2.log +7 -0
- data/bin/Image-ExifTool-9.33/t/images/HTML.html +77 -0
- data/bin/Image-ExifTool-9.33/t/images/IPTC.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/ITC.itc +0 -0
- data/bin/Image-ExifTool-9.33/t/images/InDesign.indd +0 -0
- data/bin/Image-ExifTool-9.33/t/images/JVC.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/JVC2.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Jpeg2000.j2c +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Jpeg2000.jp2 +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Kodak.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/KyoceraRaw.raw +0 -0
- data/bin/Image-ExifTool-9.33/t/images/LNK.lnk +0 -0
- data/bin/Image-ExifTool-9.33/t/images/M2TS.mts +0 -0
- data/bin/Image-ExifTool-9.33/t/images/MIE.mie +0 -0
- data/bin/Image-ExifTool-9.33/t/images/MIFF.miff +0 -0
- data/bin/Image-ExifTool-9.33/t/images/MP3.mp3 +0 -0
- data/bin/Image-ExifTool-9.33/t/images/MWG.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/MXF.mxf +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Matroska.mkv +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Minolta.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Minolta.mrw +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Nikon.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Nikon.nef +0 -0
- data/bin/Image-ExifTool-9.33/t/images/NikonD2Hs.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/NikonD70.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/OOXML.docx +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Olympus.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Olympus2.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/OlympusE1.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/OpenDoc.ods +0 -0
- data/bin/Image-ExifTool-9.33/t/images/OpenEXR.exr +0 -0
- data/bin/Image-ExifTool-9.33/t/images/PDF.pdf +0 -0
- data/bin/Image-ExifTool-9.33/t/images/PDF2.pdf +0 -0
- data/bin/Image-ExifTool-9.33/t/images/PGF.pgf +0 -0
- data/bin/Image-ExifTool-9.33/t/images/PICT.pict +0 -0
- data/bin/Image-ExifTool-9.33/t/images/PLIST-bin.plist +0 -0
- data/bin/Image-ExifTool-9.33/t/images/PLIST-xml.plist +35 -0
- data/bin/Image-ExifTool-9.33/t/images/PNG.png +0 -0
- data/bin/Image-ExifTool-9.33/t/images/PPM.ppm +5 -0
- data/bin/Image-ExifTool-9.33/t/images/PSP.psp +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Panasonic.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Panasonic.rw2 +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Pentax.avi +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Pentax.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/PhotoCD.pcd +0 -0
- data/bin/Image-ExifTool-9.33/t/images/PhotoMechanic.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Photoshop.psd +0 -0
- data/bin/Image-ExifTool-9.33/t/images/PostScript.eps +108 -0
- data/bin/Image-ExifTool-9.33/t/images/QuickTime.m4a +0 -0
- data/bin/Image-ExifTool-9.33/t/images/QuickTime.mov +0 -0
- data/bin/Image-ExifTool-9.33/t/images/RIFF.avi +0 -0
- data/bin/Image-ExifTool-9.33/t/images/RIFF.wav +0 -0
- data/bin/Image-ExifTool-9.33/t/images/RIFF.webp +0 -0
- data/bin/Image-ExifTool-9.33/t/images/RTF.rtf +25 -0
- data/bin/Image-ExifTool-9.33/t/images/Radiance.hdr +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Real.ra +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Real.ram +1 -0
- data/bin/Image-ExifTool-9.33/t/images/Real.rm +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Ricoh.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Ricoh2.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Sanyo.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Sigma.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Sigma.x3f +0 -0
- data/bin/Image-ExifTool-9.33/t/images/SigmaDP2.x3f +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Sony.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Sony.pmp +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Unknown.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Vorbis.ogg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/Writer.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/XMP.inx +108 -0
- data/bin/Image-ExifTool-9.33/t/images/XMP.jpg +0 -0
- data/bin/Image-ExifTool-9.33/t/images/XMP.svg +33 -0
- data/bin/Image-ExifTool-9.33/t/images/XMP.xml +98 -0
- data/bin/Image-ExifTool-9.33/t/images/XMP.xmp +99 -0
- data/bin/Image-ExifTool-9.33/t/images/XMP2.xmp +25 -0
- data/bin/Image-ExifTool-9.33/t/images/XMP3.xmp +43 -0
- data/bin/Image-ExifTool-9.33/t/images/XMP4.xmp +93 -0
- data/bin/Image-ExifTool-9.33/t/images/XMP5.xmp +158 -0
- data/bin/Image-ExifTool-9.33/t/images/ZIP.gz +0 -0
- data/bin/Image-ExifTool-9.33/t/images/ZIP.zip +0 -0
- data/bin/Image-ExifTool-9.33/t/images/iWork.numbers +0 -0
- data/lib/exiftool_vendored.rb +10 -0
- data/lib/exiftool_vendored/version.rb +3 -0
- data/lib/exiftool_vendored/version_extractor.rb +17 -0
- metadata +977 -0
|
@@ -0,0 +1,702 @@
|
|
|
1
|
+
#------------------------------------------------------------------------------
|
|
2
|
+
# File: WriteIPTC.pl
|
|
3
|
+
#
|
|
4
|
+
# Description: Write IPTC meta information
|
|
5
|
+
#
|
|
6
|
+
# Revisions: 12/15/2004 - P. Harvey Created
|
|
7
|
+
#------------------------------------------------------------------------------
|
|
8
|
+
|
|
9
|
+
package Image::ExifTool::IPTC;
|
|
10
|
+
|
|
11
|
+
use strict;
|
|
12
|
+
|
|
13
|
+
# mandatory IPTC tags for each record
|
|
14
|
+
my %mandatory = (
|
|
15
|
+
1 => {
|
|
16
|
+
0 => 4, # EnvelopeRecordVersion
|
|
17
|
+
},
|
|
18
|
+
2 => {
|
|
19
|
+
0 => 4, # ApplicationRecordVersion
|
|
20
|
+
},
|
|
21
|
+
3 => {
|
|
22
|
+
0 => 4, # NewsPhotoVersion
|
|
23
|
+
},
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
# manufacturer strings for IPTCPictureNumber
|
|
27
|
+
my %manufacturer = (
|
|
28
|
+
1 => 'Associated Press, USA',
|
|
29
|
+
2 => 'Eastman Kodak Co, USA',
|
|
30
|
+
3 => 'Hasselblad Electronic Imaging, Sweden',
|
|
31
|
+
4 => 'Tecnavia SA, Switzerland',
|
|
32
|
+
5 => 'Nikon Corporation, Japan',
|
|
33
|
+
6 => 'Coatsworth Communications Inc, Canada',
|
|
34
|
+
7 => 'Agence France Presse, France',
|
|
35
|
+
8 => 'T/One Inc, USA',
|
|
36
|
+
9 => 'Associated Newspapers, UK',
|
|
37
|
+
10 => 'Reuters London',
|
|
38
|
+
11 => 'Sandia Imaging Systems Inc, USA',
|
|
39
|
+
12 => 'Visualize, Spain',
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
my %iptcCharsetInv = ( 'UTF8' => "\x1b%G", 'UTF-8' => "\x1b%G" );
|
|
43
|
+
|
|
44
|
+
# ISO 2022 Character Coding Notes
|
|
45
|
+
# -------------------------------
|
|
46
|
+
# Character set designation: (0x1b I F, or 0x1b I I F)
|
|
47
|
+
# Initial character 0x1b (ESC)
|
|
48
|
+
# Intermediate character I:
|
|
49
|
+
# 0x28 ('(') - G0, 94 chars
|
|
50
|
+
# 0x29 (')') - G1, 94 chars
|
|
51
|
+
# 0x2a ('*') - G2, 94 chars
|
|
52
|
+
# 0x2b ('+') - G3, 94 chars
|
|
53
|
+
# 0x2c (',') - G1, 96 chars
|
|
54
|
+
# 0x2d ('-') - G2, 96 chars
|
|
55
|
+
# 0x2e ('.') - G3, 96 chars
|
|
56
|
+
# 0x24 I ('$I') - multiple byte graphic sets (I from above)
|
|
57
|
+
# I 0x20 ('I ') - dynamically redefinable character sets
|
|
58
|
+
# Final character:
|
|
59
|
+
# 0x30 - 0x3f = private character set
|
|
60
|
+
# 0x40 - 0x7f = standardized character set
|
|
61
|
+
# Character set invocation:
|
|
62
|
+
# G0 : SI = 0x15
|
|
63
|
+
# G1 : SO = 0x14, LS1R = 0x1b 0x7e ('~')
|
|
64
|
+
# G2 : LS2 = 0x1b 0x6e ('n'), LS2R = 0x1b 0x7d ('}')
|
|
65
|
+
# G3 : LS3 = 0x1b 0x6f ('o'), LS3R = 0x1b 0x7c ('|')
|
|
66
|
+
# (the locking shift "R" codes shift into 0x80-0xff space)
|
|
67
|
+
# Single character invocation:
|
|
68
|
+
# G2 : SS2 = 0x1b 0x8e (or 0x4e in 7-bit)
|
|
69
|
+
# G3 : SS3 = 0x1b 0x8f (or 0x4f in 7-bit)
|
|
70
|
+
# Control chars (designated and invoked)
|
|
71
|
+
# C0 : 0x1b 0x21 F (0x21 = '!')
|
|
72
|
+
# C1 : 0x1b 0x22 F (0x22 = '"')
|
|
73
|
+
# Complete codes (control+graphics, designated and invoked)
|
|
74
|
+
# 0x1b 0x25 F (0x25 = '%')
|
|
75
|
+
# 0x1b 0x25 I F
|
|
76
|
+
# 0x1b 0x25 0x47 ("\x1b%G") - UTF-8
|
|
77
|
+
# 0x1b 0x25 0x40 ("\x1b%@") - return to ISO 2022
|
|
78
|
+
# -------------------------------
|
|
79
|
+
|
|
80
|
+
#------------------------------------------------------------------------------
|
|
81
|
+
# Inverse print conversion for CodedCharacterSet
|
|
82
|
+
# Inputs: 0) value
|
|
83
|
+
sub PrintInvCodedCharset($)
|
|
84
|
+
{
|
|
85
|
+
my $val = shift;
|
|
86
|
+
my $code = $iptcCharsetInv{uc($val)};
|
|
87
|
+
unless ($code) {
|
|
88
|
+
if (($code = $val) =~ s/ESC /\x1b/g) { # translate ESC chars
|
|
89
|
+
$code =~ s/, \x1b/\x1b/g; # remove comma separators
|
|
90
|
+
$code =~ tr/ //d; # remove spaces
|
|
91
|
+
} else {
|
|
92
|
+
warn "Bad syntax (use 'UTF8' or 'ESC X Y[, ...]')\n";
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return $code;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
#------------------------------------------------------------------------------
|
|
99
|
+
# validate raw values for writing
|
|
100
|
+
# Inputs: 0) ExifTool object ref, 1) tagInfo hash ref, 2) raw value ref
|
|
101
|
+
# Returns: error string or undef (and possibly changes value) on success
|
|
102
|
+
sub CheckIPTC($$$)
|
|
103
|
+
{
|
|
104
|
+
my ($exifTool, $tagInfo, $valPtr) = @_;
|
|
105
|
+
my $format = $$tagInfo{Format} || $tagInfo->{Table}->{FORMAT} || '';
|
|
106
|
+
if ($format =~ /^int(\d+)/) {
|
|
107
|
+
my $bytes = int(($1 || 0) / 8);
|
|
108
|
+
if ($bytes ne 1 and $bytes ne 2 and $bytes ne 4) {
|
|
109
|
+
return "Can't write $bytes-byte integer";
|
|
110
|
+
}
|
|
111
|
+
my $val = $$valPtr;
|
|
112
|
+
unless (Image::ExifTool::IsInt($val)) {
|
|
113
|
+
return 'Not an integer' unless Image::ExifTool::IsHex($val);
|
|
114
|
+
$val = $$valPtr = hex($val);
|
|
115
|
+
}
|
|
116
|
+
my $n;
|
|
117
|
+
for ($n=0; $n<$bytes; ++$n) { $val >>= 8; }
|
|
118
|
+
return "Value too large for $bytes-byte format" if $val;
|
|
119
|
+
} elsif ($format =~ /^(string|digits|undef)\[?(\d+),?(\d*)\]?$/) {
|
|
120
|
+
my ($fmt, $minlen, $maxlen) = ($1, $2, $3);
|
|
121
|
+
my $len = length $$valPtr;
|
|
122
|
+
if ($fmt eq 'digits') {
|
|
123
|
+
return 'Non-numeric characters in value' unless $$valPtr =~ /^\d*$/;
|
|
124
|
+
if ($len < $minlen and $len) {
|
|
125
|
+
# left pad with zeros if necessary
|
|
126
|
+
$$valPtr = ('0' x ($minlen - $len)) . $$valPtr;
|
|
127
|
+
$len = $minlen;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
if (defined $minlen) {
|
|
131
|
+
$maxlen or $maxlen = $minlen;
|
|
132
|
+
return "String too short (minlen is $minlen)" if $len < $minlen;
|
|
133
|
+
if ($len > $maxlen and not $exifTool->Options('IgnoreMinorErrors')) {
|
|
134
|
+
$$exifTool{CHECK_WARN} = "[minor] IPTC:$$tagInfo{Name} exceeds length limit (truncated)";
|
|
135
|
+
$$valPtr = substr($$valPtr, 0, $maxlen);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
} else {
|
|
139
|
+
return "Bad IPTC Format ($format)";
|
|
140
|
+
}
|
|
141
|
+
return undef;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
#------------------------------------------------------------------------------
|
|
145
|
+
# format IPTC data for writing
|
|
146
|
+
# Inputs: 0) ExifTool object ref, 1) tagInfo pointer,
|
|
147
|
+
# 2) value reference (changed if necessary),
|
|
148
|
+
# 3) reference to character set for translation (changed if necessary)
|
|
149
|
+
# 4) record number, 5) flag set to read value (instead of write)
|
|
150
|
+
sub FormatIPTC($$$$$;$)
|
|
151
|
+
{
|
|
152
|
+
my ($exifTool, $tagInfo, $valPtr, $xlatPtr, $rec, $read) = @_;
|
|
153
|
+
my $format = $$tagInfo{Format} || $$tagInfo{Table}{FORMAT};
|
|
154
|
+
return unless $format;
|
|
155
|
+
if ($format =~ /^int(\d+)/) {
|
|
156
|
+
if ($read) {
|
|
157
|
+
my $len = length($$valPtr);
|
|
158
|
+
if ($len <= 8) { # limit integer conversion to 8 bytes long
|
|
159
|
+
my $val = 0;
|
|
160
|
+
my $i;
|
|
161
|
+
for ($i=0; $i<$len; ++$i) {
|
|
162
|
+
$val = $val * 256 + ord(substr($$valPtr, $i, 1));
|
|
163
|
+
}
|
|
164
|
+
$$valPtr = $val;
|
|
165
|
+
}
|
|
166
|
+
} else {
|
|
167
|
+
my $len = int(($1 || 0) / 8);
|
|
168
|
+
if ($len == 1) { # 1 byte
|
|
169
|
+
$$valPtr = chr($$valPtr);
|
|
170
|
+
} elsif ($len == 2) { # 2-byte integer
|
|
171
|
+
$$valPtr = pack('n', $$valPtr);
|
|
172
|
+
} else { # 4-byte integer
|
|
173
|
+
$$valPtr = pack('N', $$valPtr);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
} elsif ($format =~ /^string/) {
|
|
177
|
+
if ($rec == 1) {
|
|
178
|
+
if ($$tagInfo{Name} eq 'CodedCharacterSet') {
|
|
179
|
+
$$xlatPtr = HandleCodedCharset($exifTool, $$valPtr);
|
|
180
|
+
}
|
|
181
|
+
} elsif ($$xlatPtr and $rec < 7 and $$valPtr =~ /[\x80-\xff]/) {
|
|
182
|
+
TranslateCodedString($exifTool, $valPtr, $xlatPtr, $read);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
#------------------------------------------------------------------------------
|
|
188
|
+
# generate IPTC-format date
|
|
189
|
+
# Inputs: 0) EXIF-format date string (YYYY:mm:dd) or date/time string
|
|
190
|
+
# Returns: IPTC-format date string (YYYYmmdd), or undef and issue warning on error
|
|
191
|
+
sub IptcDate($)
|
|
192
|
+
{
|
|
193
|
+
my $val = shift;
|
|
194
|
+
unless ($val =~ s/^.*(\d{4}):?(\d{2}):?(\d{2}).*/$1$2$3/s) {
|
|
195
|
+
warn "Invalid date format (use YYYY:mm:dd)\n";
|
|
196
|
+
undef $val;
|
|
197
|
+
}
|
|
198
|
+
return $val;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
#------------------------------------------------------------------------------
|
|
202
|
+
# generate IPTC-format time
|
|
203
|
+
# Inputs: 0) EXIF-format time string (HH:MM:SS[+/-HH:MM]) or date/time string
|
|
204
|
+
# Returns: IPTC-format time string (HHMMSS+HHMM), or undef and issue warning on error
|
|
205
|
+
sub IptcTime($)
|
|
206
|
+
{
|
|
207
|
+
my $val = shift;
|
|
208
|
+
if ($val =~ /(.*?)\b(\d{1,2})(:?)(\d{2})(:?)(\d{2})(\S*)\s*$/s and ($3 or not $5)) {
|
|
209
|
+
$val = sprintf("%.2d%.2d%.2d",$2,$4,$6);
|
|
210
|
+
my ($date, $tz) = ($1, $7);
|
|
211
|
+
if ($tz =~ /([+-]\d{1,2}):?(\d{2})/) {
|
|
212
|
+
$tz = sprintf("%+.2d%.2d",$1,$2);
|
|
213
|
+
} elsif ($tz =~ /Z/i) {
|
|
214
|
+
$tz = '+0000'; # UTC
|
|
215
|
+
} else {
|
|
216
|
+
# use local system timezone by default
|
|
217
|
+
my (@tm, $time);
|
|
218
|
+
if ($date and $date =~ /^(\d{4}):(\d{2}):(\d{2})\s*$/ and eval 'require Time::Local') {
|
|
219
|
+
# we were given a date too, so determine the local timezone
|
|
220
|
+
# offset at the specified date/time
|
|
221
|
+
my @d = ($3,$2-1,$1-1900);
|
|
222
|
+
$val =~ /(\d{2})(\d{2})(\d{2})/;
|
|
223
|
+
@tm = ($3,$2,$1,@d);
|
|
224
|
+
$time = Image::ExifTool::TimeLocal(@tm);
|
|
225
|
+
} else {
|
|
226
|
+
# it is difficult to get the proper local timezone offset for this
|
|
227
|
+
# time because the date tag is written separately. (The offset may be
|
|
228
|
+
# different on a different date due to daylight savings time.) In this
|
|
229
|
+
# case the best we can do easily is to use the current timezone offset.
|
|
230
|
+
$time = time;
|
|
231
|
+
@tm = localtime($time);
|
|
232
|
+
}
|
|
233
|
+
($tz = Image::ExifTool::TimeZoneString(\@tm, $time)) =~ tr/://d;
|
|
234
|
+
}
|
|
235
|
+
$val .= $tz;
|
|
236
|
+
} else {
|
|
237
|
+
warn "Invalid time format (use HH:MM:SS[+/-HH:MM])\n";
|
|
238
|
+
undef $val; # time format error
|
|
239
|
+
}
|
|
240
|
+
return $val;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
#------------------------------------------------------------------------------
|
|
244
|
+
# Inverse print conversion for IPTC date or time value
|
|
245
|
+
# Inputs: 0) IPTC date or 'now'
|
|
246
|
+
# Returns: IPTC date
|
|
247
|
+
sub InverseDateOrTime($)
|
|
248
|
+
{
|
|
249
|
+
my $val = shift;
|
|
250
|
+
return Image::ExifTool::TimeNow() if lc($val) eq 'now';
|
|
251
|
+
return $val;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
#------------------------------------------------------------------------------
|
|
255
|
+
# Convert picture number
|
|
256
|
+
# Inputs: 0) value
|
|
257
|
+
# Returns: Converted value
|
|
258
|
+
sub ConvertPictureNumber($)
|
|
259
|
+
{
|
|
260
|
+
my $val = shift;
|
|
261
|
+
if ($val eq "\0" x 16) {
|
|
262
|
+
$val = 'Unknown';
|
|
263
|
+
} elsif (length $val >= 16) {
|
|
264
|
+
my @vals = unpack('nNA8n', $val);
|
|
265
|
+
$val = $vals[0];
|
|
266
|
+
my $manu = $manufacturer{$val};
|
|
267
|
+
$val .= " ($manu)" if $manu;
|
|
268
|
+
$val .= ', equip ' . $vals[1];
|
|
269
|
+
$vals[2] =~ s/(\d{4})(\d{2})(\d{2})/$1:$2:$3/;
|
|
270
|
+
$val .= ", $vals[2], no. $vals[3]";
|
|
271
|
+
} else {
|
|
272
|
+
$val = '<format error>'
|
|
273
|
+
}
|
|
274
|
+
return $val;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
#------------------------------------------------------------------------------
|
|
278
|
+
# Inverse picture number conversion
|
|
279
|
+
# Inputs: 0) value
|
|
280
|
+
# Returns: Converted value (or undef on error)
|
|
281
|
+
sub InvConvertPictureNumber($)
|
|
282
|
+
{
|
|
283
|
+
my $val = shift;
|
|
284
|
+
$val =~ s/\(.*\)//g; # remove manufacturer description
|
|
285
|
+
$val =~ tr/://d; # remove date separators
|
|
286
|
+
$val =~ tr/0-9/ /c; # turn remaining non-numbers to spaces
|
|
287
|
+
my @vals = split ' ', $val;
|
|
288
|
+
if (@vals >= 4) {
|
|
289
|
+
$val = pack('nNA8n', @vals);
|
|
290
|
+
} elsif ($val =~ /unknown/i) {
|
|
291
|
+
$val = "\0" x 16;
|
|
292
|
+
} else {
|
|
293
|
+
undef $val;
|
|
294
|
+
}
|
|
295
|
+
return $val;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
#------------------------------------------------------------------------------
|
|
299
|
+
# Write IPTC data record
|
|
300
|
+
# Inputs: 0) ExifTool object ref, 1) source dirInfo ref, 2) tag table ref
|
|
301
|
+
# Returns: IPTC data block (may be empty if no IPTC data)
|
|
302
|
+
# Notes: Increments ExifTool CHANGED flag for each tag changed
|
|
303
|
+
sub DoWriteIPTC($$$)
|
|
304
|
+
{
|
|
305
|
+
my ($exifTool, $dirInfo, $tagTablePtr) = @_;
|
|
306
|
+
my $verbose = $exifTool->Options('Verbose');
|
|
307
|
+
my $out = $exifTool->Options('TextOut');
|
|
308
|
+
|
|
309
|
+
# avoid editing IPTC directory unless necessary:
|
|
310
|
+
# - improves speed
|
|
311
|
+
# - avoids changing current MD5 digest unnecessarily
|
|
312
|
+
# - avoids adding mandatory tags unless some other IPTC is changed
|
|
313
|
+
unless (exists $$exifTool{EDIT_DIRS}{$$dirInfo{DirName}} or
|
|
314
|
+
# standard IPTC tags in other locations should be edited too (ie. AFCP_IPTC)
|
|
315
|
+
($tagTablePtr = \%Image::ExifTool::IPTC::Main and exists $$exifTool{EDIT_DIRS}{IPTC}))
|
|
316
|
+
{
|
|
317
|
+
print $out "$$exifTool{INDENT} [nothing changed]\n" if $verbose;
|
|
318
|
+
return undef;
|
|
319
|
+
}
|
|
320
|
+
my $dataPt = $$dirInfo{DataPt};
|
|
321
|
+
unless ($dataPt) {
|
|
322
|
+
my $emptyData = '';
|
|
323
|
+
$dataPt = \$emptyData;
|
|
324
|
+
}
|
|
325
|
+
my $start = $$dirInfo{DirStart} || 0;
|
|
326
|
+
my $dirLen = $$dirInfo{DirLen};
|
|
327
|
+
my ($tagInfo, %iptcInfo, $tag);
|
|
328
|
+
|
|
329
|
+
# start by assuming default IPTC encoding
|
|
330
|
+
my $xlat = $exifTool->Options('CharsetIPTC');
|
|
331
|
+
undef $xlat if $xlat eq $exifTool->Options('Charset');
|
|
332
|
+
|
|
333
|
+
# make sure our dataLen is defined (note: allow zero length directory)
|
|
334
|
+
unless (defined $dirLen) {
|
|
335
|
+
my $dataLen = $$dirInfo{DataLen};
|
|
336
|
+
$dataLen = length($$dataPt) unless defined $dataLen;
|
|
337
|
+
$dirLen = $dataLen - $start;
|
|
338
|
+
}
|
|
339
|
+
# quick check for improperly byte-swapped IPTC
|
|
340
|
+
if ($dirLen >= 4 and substr($$dataPt, $start, 1) ne "\x1c" and
|
|
341
|
+
substr($$dataPt, $start + 3, 1) eq "\x1c")
|
|
342
|
+
{
|
|
343
|
+
$exifTool->Warn('IPTC data was improperly byte-swapped');
|
|
344
|
+
my $newData = pack('N*', unpack('V*', substr($$dataPt, $start, $dirLen) . "\0\0\0"));
|
|
345
|
+
$dataPt = \$newData;
|
|
346
|
+
$start = 0;
|
|
347
|
+
# NOTE: MUST NOT access $dirInfo DataPt, DirStart or DataLen after this!
|
|
348
|
+
}
|
|
349
|
+
# generate lookup so we can find the record numbers
|
|
350
|
+
my %recordNum;
|
|
351
|
+
foreach $tag (Image::ExifTool::TagTableKeys($tagTablePtr)) {
|
|
352
|
+
$tagInfo = $tagTablePtr->{$tag};
|
|
353
|
+
$$tagInfo{SubDirectory} or next;
|
|
354
|
+
my $table = $tagInfo->{SubDirectory}->{TagTable} or next;
|
|
355
|
+
my $subTablePtr = Image::ExifTool::GetTagTable($table);
|
|
356
|
+
$recordNum{$subTablePtr} = $tag;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
# loop through new values and accumulate all IPTC information
|
|
360
|
+
# into lists based on their IPTC record type
|
|
361
|
+
foreach $tagInfo ($exifTool->GetNewTagInfoList()) {
|
|
362
|
+
my $table = $$tagInfo{Table};
|
|
363
|
+
my $record = $recordNum{$table};
|
|
364
|
+
# ignore tags we aren't writing to this directory
|
|
365
|
+
next unless defined $record;
|
|
366
|
+
$iptcInfo{$record} = [] unless defined $iptcInfo{$record};
|
|
367
|
+
push @{$iptcInfo{$record}}, $tagInfo;
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
# get sorted list of records used. Might as well be organized and
|
|
371
|
+
# write our records in order of record number first, then tag number
|
|
372
|
+
my @recordList = sort { $a <=> $b } keys %iptcInfo;
|
|
373
|
+
my ($record, %set);
|
|
374
|
+
foreach $record (@recordList) {
|
|
375
|
+
# sort tagInfo lists by tagID
|
|
376
|
+
@{$iptcInfo{$record}} = sort { $$a{TagID} <=> $$b{TagID} } @{$iptcInfo{$record}};
|
|
377
|
+
# build hash of all tagIDs to set
|
|
378
|
+
foreach $tagInfo (@{$iptcInfo{$record}}) {
|
|
379
|
+
$set{$record}->{$$tagInfo{TagID}} = $tagInfo;
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
# run through the old IPTC data, inserting our records in
|
|
383
|
+
# sequence and deleting existing records where necessary
|
|
384
|
+
# (the IPTC specification states that records must occur in
|
|
385
|
+
# numerical order, but tags within records need not be ordered)
|
|
386
|
+
my $pos = $start;
|
|
387
|
+
my $tail = $pos; # old data written up to this point
|
|
388
|
+
my $dirEnd = $start + $dirLen;
|
|
389
|
+
my $newData = '';
|
|
390
|
+
my $lastRec = -1;
|
|
391
|
+
my $lastRecPos = 0;
|
|
392
|
+
my $allMandatory = 0;
|
|
393
|
+
my %foundRec; # found flags: 0x01-existed before, 0x02-deleted, 0x04-created
|
|
394
|
+
my $addNow;
|
|
395
|
+
|
|
396
|
+
for (;;$tail=$pos) {
|
|
397
|
+
# get next IPTC record from input directory
|
|
398
|
+
my ($id, $rec, $tag, $len, $valuePtr);
|
|
399
|
+
if ($pos + 5 <= $dirEnd) {
|
|
400
|
+
my $buff = substr($$dataPt, $pos, 5);
|
|
401
|
+
($id, $rec, $tag, $len) = unpack("CCCn", $buff);
|
|
402
|
+
if ($id == 0x1c) {
|
|
403
|
+
if ($rec < $lastRec) {
|
|
404
|
+
if ($rec == 0) {
|
|
405
|
+
return undef if $exifTool->Warn("IPTC record 0 encountered, subsequent records ignored", 2);
|
|
406
|
+
undef $rec;
|
|
407
|
+
$pos = $dirEnd;
|
|
408
|
+
$len = 0;
|
|
409
|
+
} else {
|
|
410
|
+
return undef if $exifTool->Warn("IPTC doesn't conform to spec: Records out of sequence", 2);
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
# handle extended IPTC entry if necessary
|
|
414
|
+
$pos += 5; # step to after field header
|
|
415
|
+
if ($len & 0x8000) {
|
|
416
|
+
my $n = $len & 0x7fff; # get num bytes in length field
|
|
417
|
+
if ($pos + $n <= $dirEnd and $n <= 8) {
|
|
418
|
+
# determine length (a big-endian, variable sized int)
|
|
419
|
+
for ($len = 0; $n; ++$pos, --$n) {
|
|
420
|
+
$len = $len * 256 + ord(substr($$dataPt, $pos, 1));
|
|
421
|
+
}
|
|
422
|
+
} else {
|
|
423
|
+
$len = $dirEnd; # invalid length
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
$valuePtr = $pos;
|
|
427
|
+
$pos += $len; # step $pos to next entry
|
|
428
|
+
# make sure we don't go past the end of data
|
|
429
|
+
# (this can only happen if original data is bad)
|
|
430
|
+
$pos = $dirEnd if $pos > $dirEnd;
|
|
431
|
+
} else {
|
|
432
|
+
undef $rec;
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
# write out all our records that come before this one
|
|
436
|
+
my $writeRec = (not defined $rec or $rec != $lastRec);
|
|
437
|
+
if ($writeRec or $addNow) {
|
|
438
|
+
for (;;) {
|
|
439
|
+
my $newRec = $recordList[0];
|
|
440
|
+
if ($addNow) {
|
|
441
|
+
$tagInfo = $addNow;
|
|
442
|
+
} elsif (not defined $newRec or $newRec != $lastRec) {
|
|
443
|
+
# handle mandatory tags in last record unless it was empty
|
|
444
|
+
if (length $newData > $lastRecPos) {
|
|
445
|
+
if ($allMandatory > 1) {
|
|
446
|
+
# entire lastRec contained mandatory tags, and at least one tag
|
|
447
|
+
# was deleted, so delete entire record unless we specifically
|
|
448
|
+
# added a mandatory tag
|
|
449
|
+
my $num = 0;
|
|
450
|
+
foreach (keys %{$foundRec{$lastRec}}) {
|
|
451
|
+
my $code = $foundRec{$lastRec}->{$_};
|
|
452
|
+
$num = 0, last if $code & 0x04;
|
|
453
|
+
++$num if ($code & 0x03) == 0x01;
|
|
454
|
+
}
|
|
455
|
+
if ($num) {
|
|
456
|
+
$newData = substr($newData, 0, $lastRecPos);
|
|
457
|
+
$verbose > 1 and print $out " - $num mandatory tags\n";
|
|
458
|
+
}
|
|
459
|
+
} elsif ($mandatory{$lastRec} and
|
|
460
|
+
$tagTablePtr eq \%Image::ExifTool::IPTC::Main)
|
|
461
|
+
{
|
|
462
|
+
# add required mandatory tags
|
|
463
|
+
my $mandatory = $mandatory{$lastRec};
|
|
464
|
+
my ($mandTag, $subTablePtr);
|
|
465
|
+
foreach $mandTag (sort { $a <=> $b } keys %$mandatory) {
|
|
466
|
+
next if $foundRec{$lastRec}->{$mandTag};
|
|
467
|
+
unless ($subTablePtr) {
|
|
468
|
+
$tagInfo = $tagTablePtr->{$lastRec};
|
|
469
|
+
$tagInfo and $$tagInfo{SubDirectory} or warn("WriteIPTC: Internal error 1\n"), next;
|
|
470
|
+
$tagInfo->{SubDirectory}->{TagTable} or next;
|
|
471
|
+
$subTablePtr = Image::ExifTool::GetTagTable($tagInfo->{SubDirectory}->{TagTable});
|
|
472
|
+
}
|
|
473
|
+
$tagInfo = $subTablePtr->{$mandTag} or warn("WriteIPTC: Internal error 2\n"), next;
|
|
474
|
+
my $value = $mandatory->{$mandTag};
|
|
475
|
+
$exifTool->VerboseValue("+ IPTC:$$tagInfo{Name}", $value, ' (mandatory)');
|
|
476
|
+
# apply necessary format conversions
|
|
477
|
+
FormatIPTC($exifTool, $tagInfo, \$value, \$xlat, $lastRec);
|
|
478
|
+
$len = length $value;
|
|
479
|
+
# generate our new entry
|
|
480
|
+
my $entry = pack("CCCn", 0x1c, $lastRec, $mandTag, length($value));
|
|
481
|
+
$newData .= $entry . $value; # add entry to new IPTC data
|
|
482
|
+
# (don't mark as changed if just mandatory tags changed)
|
|
483
|
+
# ++$exifTool->{CHANGED};
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
last unless defined $newRec;
|
|
488
|
+
$lastRec = $newRec;
|
|
489
|
+
$lastRecPos = length $newData;
|
|
490
|
+
$allMandatory = 1;
|
|
491
|
+
}
|
|
492
|
+
unless ($addNow) {
|
|
493
|
+
# compare current entry with entry next in line to write out
|
|
494
|
+
# (write out our tags in numerical order even though
|
|
495
|
+
# this isn't required by the IPTC spec)
|
|
496
|
+
last if defined $rec and $rec <= $newRec;
|
|
497
|
+
$tagInfo = ${$iptcInfo{$newRec}}[0];
|
|
498
|
+
}
|
|
499
|
+
my $newTag = $$tagInfo{TagID};
|
|
500
|
+
my $nvHash = $exifTool->GetNewValueHash($tagInfo);
|
|
501
|
+
# only add new values if...
|
|
502
|
+
my ($doSet, @values);
|
|
503
|
+
my $found = $foundRec{$newRec}->{$newTag} || 0;
|
|
504
|
+
if ($found & 0x02) {
|
|
505
|
+
# ...tag existed before and was deleted (unless we already added it)
|
|
506
|
+
$doSet = 1 unless $found & 0x04;
|
|
507
|
+
} elsif ($$tagInfo{List}) {
|
|
508
|
+
# ...tag is List and it existed before or we are creating it
|
|
509
|
+
$doSet = 1 if $found ? not $$nvHash{CreateOnly} : $$nvHash{IsCreating};
|
|
510
|
+
} else {
|
|
511
|
+
# ...tag didn't exist before and we are creating it
|
|
512
|
+
$doSet = 1 if not $found and $$nvHash{IsCreating};
|
|
513
|
+
}
|
|
514
|
+
if ($doSet) {
|
|
515
|
+
@values = $exifTool->GetNewValues($nvHash);
|
|
516
|
+
@values and $foundRec{$newRec}->{$newTag} = $found | 0x04;
|
|
517
|
+
# write tags for each value in list
|
|
518
|
+
my $value;
|
|
519
|
+
foreach $value (@values) {
|
|
520
|
+
$exifTool->VerboseValue("+ IPTC:$$tagInfo{Name}", $value);
|
|
521
|
+
# reset allMandatory flag if a non-mandatory tag is written
|
|
522
|
+
if ($allMandatory) {
|
|
523
|
+
my $mandatory = $mandatory{$newRec};
|
|
524
|
+
$allMandatory = 0 unless $mandatory and $mandatory->{$newTag};
|
|
525
|
+
}
|
|
526
|
+
# apply necessary format conversions
|
|
527
|
+
FormatIPTC($exifTool, $tagInfo, \$value, \$xlat, $newRec);
|
|
528
|
+
# (note: IPTC string values are NOT null terminated)
|
|
529
|
+
$len = length $value;
|
|
530
|
+
# generate our new entry
|
|
531
|
+
my $entry = pack("CCC", 0x1c, $newRec, $newTag);
|
|
532
|
+
if ($len <= 0x7fff) {
|
|
533
|
+
$entry .= pack("n", $len);
|
|
534
|
+
} else {
|
|
535
|
+
# extended dataset tag
|
|
536
|
+
$entry .= pack("nN", 0x8004, $len);
|
|
537
|
+
}
|
|
538
|
+
$newData .= $entry . $value; # add entry to new IPTC data
|
|
539
|
+
++$exifTool->{CHANGED};
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
# continue on with regular programming if done adding tag now
|
|
543
|
+
if ($addNow) {
|
|
544
|
+
undef $addNow;
|
|
545
|
+
next if $writeRec;
|
|
546
|
+
last;
|
|
547
|
+
}
|
|
548
|
+
# remove this tagID from the sorted write list
|
|
549
|
+
shift @{$iptcInfo{$newRec}};
|
|
550
|
+
shift @recordList unless @{$iptcInfo{$newRec}};
|
|
551
|
+
}
|
|
552
|
+
if ($writeRec) {
|
|
553
|
+
# all done if no more records to write
|
|
554
|
+
last unless defined $rec;
|
|
555
|
+
# update last record variables
|
|
556
|
+
$lastRec = $rec;
|
|
557
|
+
$lastRecPos = length $newData;
|
|
558
|
+
$allMandatory = 1;
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
# set flag indicating we found this tag
|
|
562
|
+
$foundRec{$rec}->{$tag} = ($foundRec{$rec}->{$tag} || 0) || 0x01;
|
|
563
|
+
# write out this record unless we are setting it with a new value
|
|
564
|
+
$tagInfo = $set{$rec}->{$tag};
|
|
565
|
+
if ($tagInfo) {
|
|
566
|
+
my $nvHash = $exifTool->GetNewValueHash($tagInfo);
|
|
567
|
+
$len = $pos - $valuePtr;
|
|
568
|
+
my $val = substr($$dataPt, $valuePtr, $len);
|
|
569
|
+
# remove null terminator if it exists (written by braindead software like Picasa 2.0)
|
|
570
|
+
$val =~ s/\0+$// if $$tagInfo{Format} and $$tagInfo{Format} =~ /^string/;
|
|
571
|
+
my $oldXlat = $xlat;
|
|
572
|
+
FormatIPTC($exifTool, $tagInfo, \$val, \$xlat, $rec, 1);
|
|
573
|
+
if ($exifTool->IsOverwriting($nvHash, $val)) {
|
|
574
|
+
$xlat = $oldXlat; # don't change translation (not writing this value)
|
|
575
|
+
$exifTool->VerboseValue("- IPTC:$$tagInfo{Name}", $val);
|
|
576
|
+
++$exifTool->{CHANGED};
|
|
577
|
+
# set deleted flag to indicate we found and deleted this tag
|
|
578
|
+
$foundRec{$rec}->{$tag} |= 0x02;
|
|
579
|
+
# increment allMandatory flag to indicate a tag was removed
|
|
580
|
+
$allMandatory and ++$allMandatory;
|
|
581
|
+
# write this tag now if overwriting an existing value
|
|
582
|
+
if ($$nvHash{Value} and @{$$nvHash{Value}} and @recordList and
|
|
583
|
+
$recordList[0] == $rec and not $foundRec{$rec}->{$tag} & 0x04)
|
|
584
|
+
{
|
|
585
|
+
$addNow = $tagInfo;
|
|
586
|
+
}
|
|
587
|
+
next;
|
|
588
|
+
}
|
|
589
|
+
} elsif ($rec == 1 and $tag == 90) {
|
|
590
|
+
# handle CodedCharacterSet tag
|
|
591
|
+
my $val = substr($$dataPt, $valuePtr, $pos - $valuePtr);
|
|
592
|
+
$xlat = HandleCodedCharset($exifTool, $val);
|
|
593
|
+
}
|
|
594
|
+
# reset allMandatory flag if a non-mandatory tag is written
|
|
595
|
+
if ($allMandatory) {
|
|
596
|
+
my $mandatory = $mandatory{$rec};
|
|
597
|
+
unless ($mandatory and $mandatory->{$tag}) {
|
|
598
|
+
$allMandatory = 0;
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
# write out the record
|
|
602
|
+
$newData .= substr($$dataPt, $tail, $pos-$tail);
|
|
603
|
+
}
|
|
604
|
+
# make sure the rest of the data is zero
|
|
605
|
+
if ($tail < $dirEnd) {
|
|
606
|
+
my $trailer = substr($$dataPt, $tail, $dirEnd-$tail);
|
|
607
|
+
if ($trailer =~ /[^\0]/) {
|
|
608
|
+
return undef if $exifTool->Warn('Unrecognized data in IPTC trailer', 2);
|
|
609
|
+
}
|
|
610
|
+
}
|
|
611
|
+
return $newData;
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
#------------------------------------------------------------------------------
|
|
615
|
+
# Write IPTC data record and calculate NewIPTCDigest
|
|
616
|
+
# Inputs: 0) ExifTool object ref, 1) source dirInfo ref, 2) tag table ref
|
|
617
|
+
# Returns: IPTC data block (may be empty if no IPTC data)
|
|
618
|
+
# Notes: Increments ExifTool CHANGED flag for each tag changed
|
|
619
|
+
sub WriteIPTC($$$)
|
|
620
|
+
{
|
|
621
|
+
my ($exifTool, $dirInfo, $tagTablePtr) = @_;
|
|
622
|
+
$exifTool or return 1; # allow dummy access to autoload this package
|
|
623
|
+
|
|
624
|
+
my $newData = DoWriteIPTC($exifTool, $dirInfo, $tagTablePtr);
|
|
625
|
+
|
|
626
|
+
# calculate standard IPTC digests only if we are writing or deleting
|
|
627
|
+
# Photoshop:IPTCDigest with a value of 'new' or 'old'
|
|
628
|
+
while ($Image::ExifTool::Photoshop::iptcDigestInfo) {
|
|
629
|
+
my $nvHash = $exifTool->{NEW_VALUE}{$Image::ExifTool::Photoshop::iptcDigestInfo};
|
|
630
|
+
last unless defined $nvHash;
|
|
631
|
+
last unless IsStandardIPTC($exifTool->MetadataPath());
|
|
632
|
+
my @values = $exifTool->GetNewValues($nvHash);
|
|
633
|
+
push @values, @{$$nvHash{DelValue}} if $$nvHash{DelValue};
|
|
634
|
+
my $new = grep /^new$/, @values;
|
|
635
|
+
my $old = grep /^old$/, @values;
|
|
636
|
+
last unless $new or $old;
|
|
637
|
+
unless (eval 'require Digest::MD5') {
|
|
638
|
+
$exifTool->Warn('Digest::MD5 must be installed to calculate IPTC digest');
|
|
639
|
+
last;
|
|
640
|
+
}
|
|
641
|
+
my $dataPt;
|
|
642
|
+
if ($new) {
|
|
643
|
+
if (defined $newData) {
|
|
644
|
+
$dataPt = \$newData;
|
|
645
|
+
} else {
|
|
646
|
+
$dataPt = $$dirInfo{DataPt};
|
|
647
|
+
if ($$dirInfo{DirStart} or length($$dataPt) != $$dirInfo{DirLen}) {
|
|
648
|
+
my $buff = substr($$dataPt, $$dirInfo{DirStart}, $$dirInfo{DirLen});
|
|
649
|
+
$dataPt = \$buff;
|
|
650
|
+
}
|
|
651
|
+
}
|
|
652
|
+
# set NewIPTCDigest data member unless IPTC is being deleted
|
|
653
|
+
$$exifTool{NewIPTCDigest} = Digest::MD5::md5($$dataPt) if length $$dataPt;
|
|
654
|
+
}
|
|
655
|
+
if ($old) {
|
|
656
|
+
if ($new and not defined $newData) {
|
|
657
|
+
$$exifTool{OldIPTCDigest} = $$exifTool{NewIPTCDigest};
|
|
658
|
+
} elsif ($$dirInfo{DataPt}) { #(may be undef if creating new IPTC)
|
|
659
|
+
$dataPt = $$dirInfo{DataPt};
|
|
660
|
+
if ($$dirInfo{DirStart} or length($$dataPt) != $$dirInfo{DirLen}) {
|
|
661
|
+
my $buff = substr($$dataPt, $$dirInfo{DirStart}, $$dirInfo{DirLen});
|
|
662
|
+
$dataPt = \$buff;
|
|
663
|
+
}
|
|
664
|
+
$$exifTool{OldIPTCDigest} = Digest::MD5::md5($$dataPt) if length $$dataPt;
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
last;
|
|
668
|
+
}
|
|
669
|
+
return $newData;
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
|
|
673
|
+
1; # end
|
|
674
|
+
|
|
675
|
+
__END__
|
|
676
|
+
|
|
677
|
+
=head1 NAME
|
|
678
|
+
|
|
679
|
+
Image::ExifTool::WriteIPTC.pl - Write IPTC meta information
|
|
680
|
+
|
|
681
|
+
=head1 SYNOPSIS
|
|
682
|
+
|
|
683
|
+
This file is autoloaded by Image::ExifTool::IPTC.
|
|
684
|
+
|
|
685
|
+
=head1 DESCRIPTION
|
|
686
|
+
|
|
687
|
+
This file contains routines to write IPTC metadata, plus a few other
|
|
688
|
+
seldom-used routines.
|
|
689
|
+
|
|
690
|
+
=head1 AUTHOR
|
|
691
|
+
|
|
692
|
+
Copyright 2003-2013, Phil Harvey (phil at owl.phy.queensu.ca)
|
|
693
|
+
|
|
694
|
+
This library is free software; you can redistribute it and/or modify it
|
|
695
|
+
under the same terms as Perl itself.
|
|
696
|
+
|
|
697
|
+
=head1 SEE ALSO
|
|
698
|
+
|
|
699
|
+
L<Image::ExifTool::IPTC(3pm)|Image::ExifTool::IPTC>,
|
|
700
|
+
L<Image::ExifTool(3pm)|Image::ExifTool>
|
|
701
|
+
|
|
702
|
+
=cut
|