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.
Files changed (864) hide show
  1. checksums.yaml +15 -0
  2. data/bin/Image-ExifTool-9.33/Changes +6241 -0
  3. data/bin/Image-ExifTool-9.33/MANIFEST +859 -0
  4. data/bin/Image-ExifTool-9.33/META.yml +27 -0
  5. data/bin/Image-ExifTool-9.33/Makefile.PL +41 -0
  6. data/bin/Image-ExifTool-9.33/README +227 -0
  7. data/bin/Image-ExifTool-9.33/arg_files/exif2iptc.args +24 -0
  8. data/bin/Image-ExifTool-9.33/arg_files/exif2xmp.args +38 -0
  9. data/bin/Image-ExifTool-9.33/arg_files/gps2xmp.args +20 -0
  10. data/bin/Image-ExifTool-9.33/arg_files/iptc2exif.args +17 -0
  11. data/bin/Image-ExifTool-9.33/arg_files/iptc2xmp.args +53 -0
  12. data/bin/Image-ExifTool-9.33/arg_files/iptcCore.args +172 -0
  13. data/bin/Image-ExifTool-9.33/arg_files/pdf2xmp.args +23 -0
  14. data/bin/Image-ExifTool-9.33/arg_files/xmp2exif.args +39 -0
  15. data/bin/Image-ExifTool-9.33/arg_files/xmp2gps.args +24 -0
  16. data/bin/Image-ExifTool-9.33/arg_files/xmp2iptc.args +62 -0
  17. data/bin/Image-ExifTool-9.33/arg_files/xmp2pdf.args +23 -0
  18. data/bin/Image-ExifTool-9.33/config_files/ExifTool_config +299 -0
  19. data/bin/Image-ExifTool-9.33/config_files/convert_regions.config +81 -0
  20. data/bin/Image-ExifTool-9.33/exiftool +5715 -0
  21. data/bin/Image-ExifTool-9.33/fmt_files/gpx.fmt +29 -0
  22. data/bin/Image-ExifTool-9.33/fmt_files/gpx_wpt.fmt +33 -0
  23. data/bin/Image-ExifTool-9.33/fmt_files/kml.fmt +53 -0
  24. data/bin/Image-ExifTool-9.33/html/ExifTool.html +1959 -0
  25. data/bin/Image-ExifTool-9.33/html/MIE1.1-20070121.pdf +0 -0
  26. data/bin/Image-ExifTool-9.33/html/Shift.html +173 -0
  27. data/bin/Image-ExifTool-9.33/html/TagNames/AFCP.html +53 -0
  28. data/bin/Image-ExifTool-9.33/html/TagNames/AIFF.html +146 -0
  29. data/bin/Image-ExifTool-9.33/html/TagNames/APE.html +149 -0
  30. data/bin/Image-ExifTool-9.33/html/TagNames/APP12.html +188 -0
  31. data/bin/Image-ExifTool-9.33/html/TagNames/ASF.html +1066 -0
  32. data/bin/Image-ExifTool-9.33/html/TagNames/BMP.html +110 -0
  33. data/bin/Image-ExifTool-9.33/html/TagNames/Canon.html +8062 -0
  34. data/bin/Image-ExifTool-9.33/html/TagNames/CanonCustom.html +2044 -0
  35. data/bin/Image-ExifTool-9.33/html/TagNames/CanonRaw.html +561 -0
  36. data/bin/Image-ExifTool-9.33/html/TagNames/CanonVRD.html +1222 -0
  37. data/bin/Image-ExifTool-9.33/html/TagNames/Casio.html +1569 -0
  38. data/bin/Image-ExifTool-9.33/html/TagNames/Composite.html +665 -0
  39. data/bin/Image-ExifTool-9.33/html/TagNames/DICOM.html +15762 -0
  40. data/bin/Image-ExifTool-9.33/html/TagNames/DNG.html +273 -0
  41. data/bin/Image-ExifTool-9.33/html/TagNames/DV.html +75 -0
  42. data/bin/Image-ExifTool-9.33/html/TagNames/DarwinCore.html +1445 -0
  43. data/bin/Image-ExifTool-9.33/html/TagNames/DjVu.html +313 -0
  44. data/bin/Image-ExifTool-9.33/html/TagNames/EXE.html +697 -0
  45. data/bin/Image-ExifTool-9.33/html/TagNames/EXIF.html +3244 -0
  46. data/bin/Image-ExifTool-9.33/html/TagNames/Extra.html +301 -0
  47. data/bin/Image-ExifTool-9.33/html/TagNames/FLAC.html +183 -0
  48. data/bin/Image-ExifTool-9.33/html/TagNames/FLIR.html +931 -0
  49. data/bin/Image-ExifTool-9.33/html/TagNames/Flash.html +419 -0
  50. data/bin/Image-ExifTool-9.33/html/TagNames/FlashPix.html +1435 -0
  51. data/bin/Image-ExifTool-9.33/html/TagNames/Font.html +485 -0
  52. data/bin/Image-ExifTool-9.33/html/TagNames/FotoStation.html +103 -0
  53. data/bin/Image-ExifTool-9.33/html/TagNames/FujiFilm.html +637 -0
  54. data/bin/Image-ExifTool-9.33/html/TagNames/GE.html +40 -0
  55. data/bin/Image-ExifTool-9.33/html/TagNames/GIF.html +116 -0
  56. data/bin/Image-ExifTool-9.33/html/TagNames/GIMP.html +140 -0
  57. data/bin/Image-ExifTool-9.33/html/TagNames/GPS.html +222 -0
  58. data/bin/Image-ExifTool-9.33/html/TagNames/GeoTiff.html +2177 -0
  59. data/bin/Image-ExifTool-9.33/html/TagNames/H264.html +393 -0
  60. data/bin/Image-ExifTool-9.33/html/TagNames/HP.html +155 -0
  61. data/bin/Image-ExifTool-9.33/html/TagNames/HTML.html +666 -0
  62. data/bin/Image-ExifTool-9.33/html/TagNames/ICC_Profile.html +710 -0
  63. data/bin/Image-ExifTool-9.33/html/TagNames/ID3.html +1473 -0
  64. data/bin/Image-ExifTool-9.33/html/TagNames/IPTC.html +895 -0
  65. data/bin/Image-ExifTool-9.33/html/TagNames/ITC.html +90 -0
  66. data/bin/Image-ExifTool-9.33/html/TagNames/JFIF.html +61 -0
  67. data/bin/Image-ExifTool-9.33/html/TagNames/JPEG.html +523 -0
  68. data/bin/Image-ExifTool-9.33/html/TagNames/JVC.html +56 -0
  69. data/bin/Image-ExifTool-9.33/html/TagNames/Jpeg2000.html +464 -0
  70. data/bin/Image-ExifTool-9.33/html/TagNames/Kodak.html +1759 -0
  71. data/bin/Image-ExifTool-9.33/html/TagNames/KyoceraRaw.html +92 -0
  72. data/bin/Image-ExifTool-9.33/html/TagNames/LNK.html +478 -0
  73. data/bin/Image-ExifTool-9.33/html/TagNames/Leaf.html +870 -0
  74. data/bin/Image-ExifTool-9.33/html/TagNames/M2TS.html +133 -0
  75. data/bin/Image-ExifTool-9.33/html/TagNames/MIE.html +1026 -0
  76. data/bin/Image-ExifTool-9.33/html/TagNames/MIFF.html +196 -0
  77. data/bin/Image-ExifTool-9.33/html/TagNames/MNG.html +847 -0
  78. data/bin/Image-ExifTool-9.33/html/TagNames/MPC.html +97 -0
  79. data/bin/Image-ExifTool-9.33/html/TagNames/MPEG.html +249 -0
  80. data/bin/Image-ExifTool-9.33/html/TagNames/MPF.html +199 -0
  81. data/bin/Image-ExifTool-9.33/html/TagNames/MWG.html +563 -0
  82. data/bin/Image-ExifTool-9.33/html/TagNames/MXF.html +6673 -0
  83. data/bin/Image-ExifTool-9.33/html/TagNames/Matroska.html +1069 -0
  84. data/bin/Image-ExifTool-9.33/html/TagNames/Microsoft.html +2066 -0
  85. data/bin/Image-ExifTool-9.33/html/TagNames/Minolta.html +2555 -0
  86. data/bin/Image-ExifTool-9.33/html/TagNames/MinoltaRaw.html +326 -0
  87. data/bin/Image-ExifTool-9.33/html/TagNames/Nikon.html +4467 -0
  88. data/bin/Image-ExifTool-9.33/html/TagNames/NikonCapture.html +776 -0
  89. data/bin/Image-ExifTool-9.33/html/TagNames/NikonCustom.html +3835 -0
  90. data/bin/Image-ExifTool-9.33/html/TagNames/OOXML.html +280 -0
  91. data/bin/Image-ExifTool-9.33/html/TagNames/Ogg.html +44 -0
  92. data/bin/Image-ExifTool-9.33/html/TagNames/Olympus.html +3386 -0
  93. data/bin/Image-ExifTool-9.33/html/TagNames/OpenEXR.html +222 -0
  94. data/bin/Image-ExifTool-9.33/html/TagNames/PDF.html +745 -0
  95. data/bin/Image-ExifTool-9.33/html/TagNames/PGF.html +80 -0
  96. data/bin/Image-ExifTool-9.33/html/TagNames/PICT.html +753 -0
  97. data/bin/Image-ExifTool-9.33/html/TagNames/PLIST.html +86 -0
  98. data/bin/Image-ExifTool-9.33/html/TagNames/PNG.html +515 -0
  99. data/bin/Image-ExifTool-9.33/html/TagNames/PSP.html +160 -0
  100. data/bin/Image-ExifTool-9.33/html/TagNames/Panasonic.html +1452 -0
  101. data/bin/Image-ExifTool-9.33/html/TagNames/PanasonicRaw.html +214 -0
  102. data/bin/Image-ExifTool-9.33/html/TagNames/Pentax.html +4332 -0
  103. data/bin/Image-ExifTool-9.33/html/TagNames/PhaseOne.html +258 -0
  104. data/bin/Image-ExifTool-9.33/html/TagNames/PhotoCD.html +402 -0
  105. data/bin/Image-ExifTool-9.33/html/TagNames/PhotoMechanic.html +196 -0
  106. data/bin/Image-ExifTool-9.33/html/TagNames/Photoshop.html +555 -0
  107. data/bin/Image-ExifTool-9.33/html/TagNames/PostScript.html +125 -0
  108. data/bin/Image-ExifTool-9.33/html/TagNames/PrintIM.html +31 -0
  109. data/bin/Image-ExifTool-9.33/html/TagNames/Qualcomm.html +4778 -0
  110. data/bin/Image-ExifTool-9.33/html/TagNames/QuickTime.html +3104 -0
  111. data/bin/Image-ExifTool-9.33/html/TagNames/RIFF.html +1164 -0
  112. data/bin/Image-ExifTool-9.33/html/TagNames/RSRC.html +74 -0
  113. data/bin/Image-ExifTool-9.33/html/TagNames/RTF.html +150 -0
  114. data/bin/Image-ExifTool-9.33/html/TagNames/Radiance.html +87 -0
  115. data/bin/Image-ExifTool-9.33/html/TagNames/Rawzor.html +45 -0
  116. data/bin/Image-ExifTool-9.33/html/TagNames/Real.html +780 -0
  117. data/bin/Image-ExifTool-9.33/html/TagNames/Reconyx.html +132 -0
  118. data/bin/Image-ExifTool-9.33/html/TagNames/Ricoh.html +456 -0
  119. data/bin/Image-ExifTool-9.33/html/TagNames/Samsung.html +419 -0
  120. data/bin/Image-ExifTool-9.33/html/TagNames/Sanyo.html +366 -0
  121. data/bin/Image-ExifTool-9.33/html/TagNames/Shortcuts.html +237 -0
  122. data/bin/Image-ExifTool-9.33/html/TagNames/Sigma.html +372 -0
  123. data/bin/Image-ExifTool-9.33/html/TagNames/SigmaRaw.html +403 -0
  124. data/bin/Image-ExifTool-9.33/html/TagNames/Sony.html +4279 -0
  125. data/bin/Image-ExifTool-9.33/html/TagNames/SonyIDC.html +267 -0
  126. data/bin/Image-ExifTool-9.33/html/TagNames/Stim.html +200 -0
  127. data/bin/Image-ExifTool-9.33/html/TagNames/Theora.html +102 -0
  128. data/bin/Image-ExifTool-9.33/html/TagNames/Unknown.html +31 -0
  129. data/bin/Image-ExifTool-9.33/html/TagNames/Vorbis.html +228 -0
  130. data/bin/Image-ExifTool-9.33/html/TagNames/XMP.html +7234 -0
  131. data/bin/Image-ExifTool-9.33/html/TagNames/ZIP.html +204 -0
  132. data/bin/Image-ExifTool-9.33/html/TagNames/iWork.html +49 -0
  133. data/bin/Image-ExifTool-9.33/html/TagNames/index.html +192 -0
  134. data/bin/Image-ExifTool-9.33/html/TagNames/style.css +31 -0
  135. data/bin/Image-ExifTool-9.33/html/ancient_history.html +6727 -0
  136. data/bin/Image-ExifTool-9.33/html/canon_raw.html +366 -0
  137. data/bin/Image-ExifTool-9.33/html/commentary.html +319 -0
  138. data/bin/Image-ExifTool-9.33/html/config.html +312 -0
  139. data/bin/Image-ExifTool-9.33/html/data_members.html +265 -0
  140. data/bin/Image-ExifTool-9.33/html/exiftool_pod.html +2338 -0
  141. data/bin/Image-ExifTool-9.33/html/faq.html +1434 -0
  142. data/bin/Image-ExifTool-9.33/html/filename.html +281 -0
  143. data/bin/Image-ExifTool-9.33/html/geotag.html +642 -0
  144. data/bin/Image-ExifTool-9.33/html/history.html +358 -0
  145. data/bin/Image-ExifTool-9.33/html/htmldump.html +732 -0
  146. data/bin/Image-ExifTool-9.33/html/idiosyncracies.html +251 -0
  147. data/bin/Image-ExifTool-9.33/html/index.html +1271 -0
  148. data/bin/Image-ExifTool-9.33/html/install.html +239 -0
  149. data/bin/Image-ExifTool-9.33/html/metafiles.html +266 -0
  150. data/bin/Image-ExifTool-9.33/html/overview.png +0 -0
  151. data/bin/Image-ExifTool-9.33/html/standards.html +277 -0
  152. data/bin/Image-ExifTool-9.33/html/struct.html +342 -0
  153. data/bin/Image-ExifTool-9.33/html/style.css +31 -0
  154. data/bin/Image-ExifTool-9.33/html/under.html +124 -0
  155. data/bin/Image-ExifTool-9.33/html/verbose.html +195 -0
  156. data/bin/Image-ExifTool-9.33/html/writing.html +239 -0
  157. data/bin/Image-ExifTool-9.33/lib/File/RandomAccess.pm +378 -0
  158. data/bin/Image-ExifTool-9.33/lib/File/RandomAccess.pod +231 -0
  159. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool.pm +6815 -0
  160. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool.pod +2385 -0
  161. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/AES.pm +501 -0
  162. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/AFCP.pm +284 -0
  163. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/AIFF.pm +271 -0
  164. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/APE.pm +262 -0
  165. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/APP12.pm +322 -0
  166. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/ASF.pm +884 -0
  167. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/BMP.pm +179 -0
  168. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/BZZ.pm +472 -0
  169. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/BigTIFF.pm +282 -0
  170. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/BuildTagLookup.pm +2400 -0
  171. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Canon.pm +7794 -0
  172. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/CanonCustom.pm +2523 -0
  173. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/CanonRaw.pm +931 -0
  174. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/CanonVRD.pm +1481 -0
  175. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/CaptureOne.pm +235 -0
  176. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Casio.pm +2013 -0
  177. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset.pm +396 -0
  178. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/Arabic.pm +39 -0
  179. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/Baltic.pm +35 -0
  180. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/Cyrillic.pm +45 -0
  181. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/Greek.pm +40 -0
  182. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/Hebrew.pm +36 -0
  183. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/JIS.pm +1735 -0
  184. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/Latin.pm +24 -0
  185. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/Latin2.pm +36 -0
  186. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacArabic.pm +47 -0
  187. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacChineseCN.pm +2088 -0
  188. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacChineseTW.pm +3623 -0
  189. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacCroatian.pm +43 -0
  190. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacCyrillic.pm +47 -0
  191. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacGreek.pm +45 -0
  192. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacHebrew.pm +47 -0
  193. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacIceland.pm +42 -0
  194. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacJapanese.pm +1933 -0
  195. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacKorean.pm +2720 -0
  196. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacLatin2.pm +44 -0
  197. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacRSymbol.pm +2087 -0
  198. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacRoman.pm +42 -0
  199. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacRomanian.pm +42 -0
  200. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacThai.pm +49 -0
  201. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/MacTurkish.pm +42 -0
  202. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/PDFDoc.pm +28 -0
  203. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/ShiftJIS.pm +1835 -0
  204. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/Symbol.pm +54 -0
  205. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/Thai.pm +41 -0
  206. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/Turkish.pm +25 -0
  207. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Charset/Vietnam.pm +27 -0
  208. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/DICOM.pm +3835 -0
  209. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/DNG.pm +835 -0
  210. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/DV.pm +319 -0
  211. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/DarwinCore.pm +317 -0
  212. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/DjVu.pm +376 -0
  213. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/EXE.pm +1228 -0
  214. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Exif.pm +4542 -0
  215. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/FLAC.pm +296 -0
  216. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/FLIR.pm +972 -0
  217. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Fixup.pm +354 -0
  218. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Flash.pm +755 -0
  219. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/FlashPix.pm +1882 -0
  220. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Font.pm +643 -0
  221. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/FotoStation.pm +258 -0
  222. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/FujiFilm.pm +1020 -0
  223. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/GE.pm +80 -0
  224. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/GIF.pm +542 -0
  225. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/GIMP.pm +258 -0
  226. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/GPS.pm +511 -0
  227. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/GeoTiff.pm +2187 -0
  228. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Geotag.pm +1173 -0
  229. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/H264.pm +1102 -0
  230. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/HP.pm +262 -0
  231. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/HTML.pm +576 -0
  232. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/HtmlDump.pm +895 -0
  233. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/ICC_Profile.pm +999 -0
  234. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/ID3.pm +1532 -0
  235. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/IPTC.pm +1244 -0
  236. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/ITC.pm +215 -0
  237. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Import.pm +308 -0
  238. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/InDesign.pm +277 -0
  239. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/JPEG.pm +588 -0
  240. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/JPEGDigest.pm +2511 -0
  241. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/JVC.pm +130 -0
  242. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Jpeg2000.pm +881 -0
  243. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Kodak.pm +2014 -0
  244. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/KyoceraRaw.pm +173 -0
  245. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/LNK.pm +723 -0
  246. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/cs.pm +1586 -0
  247. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/de.pm +7356 -0
  248. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/en_ca.pm +557 -0
  249. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/en_gb.pm +572 -0
  250. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/es.pm +4016 -0
  251. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/fi.pm +2856 -0
  252. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/fr.pm +4720 -0
  253. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/it.pm +7917 -0
  254. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/ja.pm +5815 -0
  255. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/ko.pm +2332 -0
  256. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/nl.pm +3220 -0
  257. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/pl.pm +1140 -0
  258. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/ru.pm +769 -0
  259. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/sv.pm +639 -0
  260. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/tr.pm +544 -0
  261. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/zh_cn.pm +1329 -0
  262. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Lang/zh_tw.pm +802 -0
  263. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Leaf.pm +515 -0
  264. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/M2TS.pm +729 -0
  265. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/MIE.pm +2561 -0
  266. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/MIEUnits.pod +377 -0
  267. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/MIFF.pm +279 -0
  268. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/MNG.pm +684 -0
  269. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/MPC.pm +156 -0
  270. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/MPEG.pm +736 -0
  271. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/MPF.pm +289 -0
  272. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/MWG.pm +736 -0
  273. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/MXF.pm +3032 -0
  274. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/MakerNotes.pm +1573 -0
  275. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Matroska.pm +891 -0
  276. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Microsoft.pm +879 -0
  277. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Minolta.pm +2833 -0
  278. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/MinoltaRaw.pm +534 -0
  279. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Nikon.pm +6116 -0
  280. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/NikonCapture.pm +911 -0
  281. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/NikonCustom.pm +4405 -0
  282. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/OOXML.pm +409 -0
  283. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Ogg.pm +237 -0
  284. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Olympus.pm +3582 -0
  285. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/OpenEXR.pm +324 -0
  286. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/PDF.pm +2327 -0
  287. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/PGF.pm +143 -0
  288. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/PICT.pm +1260 -0
  289. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/PLIST.pm +449 -0
  290. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/PNG.pm +1100 -0
  291. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/PPM.pm +169 -0
  292. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/PSP.pm +305 -0
  293. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Panasonic.pm +1995 -0
  294. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/PanasonicRaw.pm +535 -0
  295. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Pentax.pm +5489 -0
  296. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/PhaseOne.pm +557 -0
  297. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/PhotoCD.pm +507 -0
  298. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/PhotoMechanic.pm +256 -0
  299. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Photoshop.pm +629 -0
  300. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/PostScript.pm +693 -0
  301. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/PrintIM.pm +125 -0
  302. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Qualcomm.pm +1344 -0
  303. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/QuickTime.pm +3519 -0
  304. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/README +944 -0
  305. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/RIFF.pm +1322 -0
  306. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/RSRC.pm +241 -0
  307. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/RTF.pm +383 -0
  308. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Radiance.pm +144 -0
  309. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Rawzor.pm +190 -0
  310. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Real.pm +736 -0
  311. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Reconyx.pm +190 -0
  312. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Ricoh.pm +741 -0
  313. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Samsung.pm +820 -0
  314. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Sanyo.pm +439 -0
  315. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Shift.pl +594 -0
  316. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Shortcuts.pm +291 -0
  317. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Sigma.pm +574 -0
  318. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/SigmaRaw.pm +649 -0
  319. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Sony.pm +5722 -0
  320. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/SonyIDC.pm +330 -0
  321. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Stim.pm +196 -0
  322. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/TagInfoXML.pm +792 -0
  323. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/TagLookup.pm +8005 -0
  324. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/TagNames.pod +25950 -0
  325. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Theora.pm +145 -0
  326. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Unknown.pm +66 -0
  327. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Vorbis.pm +237 -0
  328. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/WriteCanonRaw.pl +637 -0
  329. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/WriteExif.pl +3674 -0
  330. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/WriteIPTC.pl +702 -0
  331. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/WritePDF.pl +759 -0
  332. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/WritePNG.pl +330 -0
  333. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/WritePhotoshop.pl +266 -0
  334. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/WritePostScript.pl +777 -0
  335. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/WriteXMP.pl +1318 -0
  336. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/Writer.pl +5779 -0
  337. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/XMP.pm +3634 -0
  338. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/XMP2.pl +1298 -0
  339. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/XMPStruct.pl +813 -0
  340. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/ZIP.pm +623 -0
  341. data/bin/Image-ExifTool-9.33/lib/Image/ExifTool/iWork.pm +223 -0
  342. data/bin/Image-ExifTool-9.33/perl-Image-ExifTool.spec +104 -0
  343. data/bin/Image-ExifTool-9.33/t/AFCP.t +44 -0
  344. data/bin/Image-ExifTool-9.33/t/AFCP_2.out +37 -0
  345. data/bin/Image-ExifTool-9.33/t/AFCP_3.out +20 -0
  346. data/bin/Image-ExifTool-9.33/t/AIFF.t +28 -0
  347. data/bin/Image-ExifTool-9.33/t/AIFF_2.out +31 -0
  348. data/bin/Image-ExifTool-9.33/t/APE.t +38 -0
  349. data/bin/Image-ExifTool-9.33/t/APE_2.out +28 -0
  350. data/bin/Image-ExifTool-9.33/t/APE_3.out +57 -0
  351. data/bin/Image-ExifTool-9.33/t/ASF.t +28 -0
  352. data/bin/Image-ExifTool-9.33/t/ASF_2.out +54 -0
  353. data/bin/Image-ExifTool-9.33/t/BMP.t +28 -0
  354. data/bin/Image-ExifTool-9.33/t/BMP_2.out +21 -0
  355. data/bin/Image-ExifTool-9.33/t/BigTIFF.t +28 -0
  356. data/bin/Image-ExifTool-9.33/t/BigTIFF_2.out +19 -0
  357. data/bin/Image-ExifTool-9.33/t/Canon.t +41 -0
  358. data/bin/Image-ExifTool-9.33/t/CanonRaw.t +126 -0
  359. data/bin/Image-ExifTool-9.33/t/CanonRaw_2.out +165 -0
  360. data/bin/Image-ExifTool-9.33/t/CanonRaw_4.out +217 -0
  361. data/bin/Image-ExifTool-9.33/t/CanonRaw_5.out +207 -0
  362. data/bin/Image-ExifTool-9.33/t/CanonRaw_6.out +231 -0
  363. data/bin/Image-ExifTool-9.33/t/CanonRaw_7.out +247 -0
  364. data/bin/Image-ExifTool-9.33/t/CanonVRD.t +129 -0
  365. data/bin/Image-ExifTool-9.33/t/CanonVRD_11.out +118 -0
  366. data/bin/Image-ExifTool-9.33/t/CanonVRD_12.out +12 -0
  367. data/bin/Image-ExifTool-9.33/t/CanonVRD_2.out +116 -0
  368. data/bin/Image-ExifTool-9.33/t/CanonVRD_3.out +116 -0
  369. data/bin/Image-ExifTool-9.33/t/CanonVRD_4.out +2 -0
  370. data/bin/Image-ExifTool-9.33/t/CanonVRD_5.out +3 -0
  371. data/bin/Image-ExifTool-9.33/t/CanonVRD_6.out +3 -0
  372. data/bin/Image-ExifTool-9.33/t/CanonVRD_7.out +2 -0
  373. data/bin/Image-ExifTool-9.33/t/CanonVRD_8.out +2 -0
  374. data/bin/Image-ExifTool-9.33/t/CanonVRD_9.out +1 -0
  375. data/bin/Image-ExifTool-9.33/t/Canon_2.out +350 -0
  376. data/bin/Image-ExifTool-9.33/t/Canon_3.out +3 -0
  377. data/bin/Image-ExifTool-9.33/t/Casio.t +54 -0
  378. data/bin/Image-ExifTool-9.33/t/Casio_2.out +70 -0
  379. data/bin/Image-ExifTool-9.33/t/Casio_3.out +100 -0
  380. data/bin/Image-ExifTool-9.33/t/Casio_4.out +26 -0
  381. data/bin/Image-ExifTool-9.33/t/Casio_5.out +78 -0
  382. data/bin/Image-ExifTool-9.33/t/Casio_6.out +115 -0
  383. data/bin/Image-ExifTool-9.33/t/DICOM.t +28 -0
  384. data/bin/Image-ExifTool-9.33/t/DICOM_2.out +108 -0
  385. data/bin/Image-ExifTool-9.33/t/DNG.t +39 -0
  386. data/bin/Image-ExifTool-9.33/t/DNG_2.out +326 -0
  387. data/bin/Image-ExifTool-9.33/t/DNG_3.out +4 -0
  388. data/bin/Image-ExifTool-9.33/t/DV.t +27 -0
  389. data/bin/Image-ExifTool-9.33/t/DV_2.out +24 -0
  390. data/bin/Image-ExifTool-9.33/t/DjVu.t +28 -0
  391. data/bin/Image-ExifTool-9.33/t/DjVu_2.out +44 -0
  392. data/bin/Image-ExifTool-9.33/t/EXE.t +31 -0
  393. data/bin/Image-ExifTool-9.33/t/EXE_2.out +40 -0
  394. data/bin/Image-ExifTool-9.33/t/EXE_3.out +15 -0
  395. data/bin/Image-ExifTool-9.33/t/EXE_4.out +14 -0
  396. data/bin/Image-ExifTool-9.33/t/ExifTool.t +284 -0
  397. data/bin/Image-ExifTool-9.33/t/ExifTool_16.out +180 -0
  398. data/bin/Image-ExifTool-9.33/t/ExifTool_17.out +594 -0
  399. data/bin/Image-ExifTool-9.33/t/ExifTool_2.out +399 -0
  400. data/bin/Image-ExifTool-9.33/t/ExifTool_20.out +1 -0
  401. data/bin/Image-ExifTool-9.33/t/ExifTool_21.out +1 -0
  402. data/bin/Image-ExifTool-9.33/t/ExifTool_22.out +1 -0
  403. data/bin/Image-ExifTool-9.33/t/ExifTool_23.out +6 -0
  404. data/bin/Image-ExifTool-9.33/t/ExifTool_24.out +3 -0
  405. data/bin/Image-ExifTool-9.33/t/ExifTool_25.out +13 -0
  406. data/bin/Image-ExifTool-9.33/t/ExifTool_26.out +12 -0
  407. data/bin/Image-ExifTool-9.33/t/ExifTool_3.out +87 -0
  408. data/bin/Image-ExifTool-9.33/t/ExifTool_4.out +41 -0
  409. data/bin/Image-ExifTool-9.33/t/ExifTool_5.out +6 -0
  410. data/bin/Image-ExifTool-9.33/t/ExifTool_6.out +68 -0
  411. data/bin/Image-ExifTool-9.33/t/ExifTool_7.out +125 -0
  412. data/bin/Image-ExifTool-9.33/t/ExifTool_8.out +125 -0
  413. data/bin/Image-ExifTool-9.33/t/ExifTool_9.out +33 -0
  414. data/bin/Image-ExifTool-9.33/t/FLAC.t +37 -0
  415. data/bin/Image-ExifTool-9.33/t/FLAC_2.out +25 -0
  416. data/bin/Image-ExifTool-9.33/t/FLAC_3.out +19 -0
  417. data/bin/Image-ExifTool-9.33/t/FLIR.t +30 -0
  418. data/bin/Image-ExifTool-9.33/t/FLIR_2.out +104 -0
  419. data/bin/Image-ExifTool-9.33/t/FLIR_3.out +47 -0
  420. data/bin/Image-ExifTool-9.33/t/Flash.t +37 -0
  421. data/bin/Image-ExifTool-9.33/t/FlashPix.t +30 -0
  422. data/bin/Image-ExifTool-9.33/t/FlashPix_2.out +48 -0
  423. data/bin/Image-ExifTool-9.33/t/Flash_2.out +20 -0
  424. data/bin/Image-ExifTool-9.33/t/Flash_3.out +53 -0
  425. data/bin/Image-ExifTool-9.33/t/Font.t +30 -0
  426. data/bin/Image-ExifTool-9.33/t/Font_2.out +23 -0
  427. data/bin/Image-ExifTool-9.33/t/Font_3.out +35 -0
  428. data/bin/Image-ExifTool-9.33/t/Font_4.out +26 -0
  429. data/bin/Image-ExifTool-9.33/t/Font_5.out +26 -0
  430. data/bin/Image-ExifTool-9.33/t/Font_6.out +36 -0
  431. data/bin/Image-ExifTool-9.33/t/Font_7.out +36 -0
  432. data/bin/Image-ExifTool-9.33/t/FotoStation.t +38 -0
  433. data/bin/Image-ExifTool-9.33/t/FotoStation_2.out +39 -0
  434. data/bin/Image-ExifTool-9.33/t/FotoStation_3.out +3 -0
  435. data/bin/Image-ExifTool-9.33/t/FujiFilm.t +78 -0
  436. data/bin/Image-ExifTool-9.33/t/FujiFilm_2.out +87 -0
  437. data/bin/Image-ExifTool-9.33/t/FujiFilm_3.out +88 -0
  438. data/bin/Image-ExifTool-9.33/t/FujiFilm_4.out +117 -0
  439. data/bin/Image-ExifTool-9.33/t/FujiFilm_5.out +1 -0
  440. data/bin/Image-ExifTool-9.33/t/GE.t +46 -0
  441. data/bin/Image-ExifTool-9.33/t/GE_2.out +84 -0
  442. data/bin/Image-ExifTool-9.33/t/GE_3.out +84 -0
  443. data/bin/Image-ExifTool-9.33/t/GIF.t +83 -0
  444. data/bin/Image-ExifTool-9.33/t/GIF_2.out +40 -0
  445. data/bin/Image-ExifTool-9.33/t/GIF_3.out +41 -0
  446. data/bin/Image-ExifTool-9.33/t/GIF_4.out +16 -0
  447. data/bin/Image-ExifTool-9.33/t/GIMP.t +27 -0
  448. data/bin/Image-ExifTool-9.33/t/GIMP_2.out +63 -0
  449. data/bin/Image-ExifTool-9.33/t/GPS.t +42 -0
  450. data/bin/Image-ExifTool-9.33/t/GPS_2.out +94 -0
  451. data/bin/Image-ExifTool-9.33/t/GPS_3.out +96 -0
  452. data/bin/Image-ExifTool-9.33/t/GeoTiff.t +36 -0
  453. data/bin/Image-ExifTool-9.33/t/GeoTiff_2.out +36 -0
  454. data/bin/Image-ExifTool-9.33/t/GeoTiff_3.out +36 -0
  455. data/bin/Image-ExifTool-9.33/t/Geotag.t +164 -0
  456. data/bin/Image-ExifTool-9.33/t/Geotag_2.out +9 -0
  457. data/bin/Image-ExifTool-9.33/t/Geotag_3.out +6 -0
  458. data/bin/Image-ExifTool-9.33/t/Geotag_5.out +1 -0
  459. data/bin/Image-ExifTool-9.33/t/Geotag_6.out +9 -0
  460. data/bin/Image-ExifTool-9.33/t/Geotag_7.out +53 -0
  461. data/bin/Image-ExifTool-9.33/t/Geotag_8.out +15 -0
  462. data/bin/Image-ExifTool-9.33/t/HTML.t +28 -0
  463. data/bin/Image-ExifTool-9.33/t/HTML_2.out +68 -0
  464. data/bin/Image-ExifTool-9.33/t/IPTC.t +157 -0
  465. data/bin/Image-ExifTool-9.33/t/IPTC_2.out +58 -0
  466. data/bin/Image-ExifTool-9.33/t/IPTC_4.out +56 -0
  467. data/bin/Image-ExifTool-9.33/t/IPTC_5.out +1 -0
  468. data/bin/Image-ExifTool-9.33/t/IPTC_6.out +2 -0
  469. data/bin/Image-ExifTool-9.33/t/IPTC_7.out +1 -0
  470. data/bin/Image-ExifTool-9.33/t/IPTC_8.out +20 -0
  471. data/bin/Image-ExifTool-9.33/t/ITC.t +28 -0
  472. data/bin/Image-ExifTool-9.33/t/ITC_2.out +19 -0
  473. data/bin/Image-ExifTool-9.33/t/InDesign.t +61 -0
  474. data/bin/Image-ExifTool-9.33/t/InDesign_2.out +19 -0
  475. data/bin/Image-ExifTool-9.33/t/InDesign_3.out +21 -0
  476. data/bin/Image-ExifTool-9.33/t/InDesign_4.out +11 -0
  477. data/bin/Image-ExifTool-9.33/t/JVC.t +36 -0
  478. data/bin/Image-ExifTool-9.33/t/JVC_2.out +3 -0
  479. data/bin/Image-ExifTool-9.33/t/JVC_3.out +3 -0
  480. data/bin/Image-ExifTool-9.33/t/Jpeg2000.t +49 -0
  481. data/bin/Image-ExifTool-9.33/t/Jpeg2000_2.out +63 -0
  482. data/bin/Image-ExifTool-9.33/t/Jpeg2000_3.out +51 -0
  483. data/bin/Image-ExifTool-9.33/t/Jpeg2000_4.out +15 -0
  484. data/bin/Image-ExifTool-9.33/t/Kodak.t +40 -0
  485. data/bin/Image-ExifTool-9.33/t/Kodak_2.out +109 -0
  486. data/bin/Image-ExifTool-9.33/t/Kodak_3.out +119 -0
  487. data/bin/Image-ExifTool-9.33/t/KyoceraRaw.t +28 -0
  488. data/bin/Image-ExifTool-9.33/t/KyoceraRaw_2.out +27 -0
  489. data/bin/Image-ExifTool-9.33/t/LNK.t +28 -0
  490. data/bin/Image-ExifTool-9.33/t/LNK_2.out +45 -0
  491. data/bin/Image-ExifTool-9.33/t/Lang.t +40 -0
  492. data/bin/Image-ExifTool-9.33/t/Lang_1.out +1 -0
  493. data/bin/Image-ExifTool-9.33/t/Lang_10.out +46 -0
  494. data/bin/Image-ExifTool-9.33/t/Lang_11.out +46 -0
  495. data/bin/Image-ExifTool-9.33/t/Lang_12.out +46 -0
  496. data/bin/Image-ExifTool-9.33/t/Lang_13.out +46 -0
  497. data/bin/Image-ExifTool-9.33/t/Lang_14.out +46 -0
  498. data/bin/Image-ExifTool-9.33/t/Lang_15.out +46 -0
  499. data/bin/Image-ExifTool-9.33/t/Lang_16.out +46 -0
  500. data/bin/Image-ExifTool-9.33/t/Lang_17.out +46 -0
  501. data/bin/Image-ExifTool-9.33/t/Lang_18.out +46 -0
  502. data/bin/Image-ExifTool-9.33/t/Lang_2.out +46 -0
  503. data/bin/Image-ExifTool-9.33/t/Lang_3.out +46 -0
  504. data/bin/Image-ExifTool-9.33/t/Lang_4.out +46 -0
  505. data/bin/Image-ExifTool-9.33/t/Lang_5.out +46 -0
  506. data/bin/Image-ExifTool-9.33/t/Lang_6.out +46 -0
  507. data/bin/Image-ExifTool-9.33/t/Lang_7.out +46 -0
  508. data/bin/Image-ExifTool-9.33/t/Lang_8.out +46 -0
  509. data/bin/Image-ExifTool-9.33/t/Lang_9.out +46 -0
  510. data/bin/Image-ExifTool-9.33/t/M2TS.t +29 -0
  511. data/bin/Image-ExifTool-9.33/t/M2TS_2.out +27 -0
  512. data/bin/Image-ExifTool-9.33/t/MIE.t +82 -0
  513. data/bin/Image-ExifTool-9.33/t/MIE_2.out +67 -0
  514. data/bin/Image-ExifTool-9.33/t/MIE_3.out +134 -0
  515. data/bin/Image-ExifTool-9.33/t/MIE_5.out +1 -0
  516. data/bin/Image-ExifTool-9.33/t/MIE_6.out +1 -0
  517. data/bin/Image-ExifTool-9.33/t/MIFF.t +28 -0
  518. data/bin/Image-ExifTool-9.33/t/MIFF_2.out +108 -0
  519. data/bin/Image-ExifTool-9.33/t/MP3.t +29 -0
  520. data/bin/Image-ExifTool-9.33/t/MP3_2.out +45 -0
  521. data/bin/Image-ExifTool-9.33/t/MWG.t +72 -0
  522. data/bin/Image-ExifTool-9.33/t/MWG_2.out +13 -0
  523. data/bin/Image-ExifTool-9.33/t/MWG_3.out +8 -0
  524. data/bin/Image-ExifTool-9.33/t/MWG_4.out +5 -0
  525. data/bin/Image-ExifTool-9.33/t/MWG_5.out +22 -0
  526. data/bin/Image-ExifTool-9.33/t/MXF.t +27 -0
  527. data/bin/Image-ExifTool-9.33/t/MXF_2.out +78 -0
  528. data/bin/Image-ExifTool-9.33/t/Matroska.t +29 -0
  529. data/bin/Image-ExifTool-9.33/t/Matroska_2.out +64 -0
  530. data/bin/Image-ExifTool-9.33/t/Minolta.t +50 -0
  531. data/bin/Image-ExifTool-9.33/t/Minolta_2.out +133 -0
  532. data/bin/Image-ExifTool-9.33/t/Minolta_3.out +146 -0
  533. data/bin/Image-ExifTool-9.33/t/Minolta_4.out +148 -0
  534. data/bin/Image-ExifTool-9.33/t/Nikon.t +114 -0
  535. data/bin/Image-ExifTool-9.33/t/Nikon_2.out +82 -0
  536. data/bin/Image-ExifTool-9.33/t/Nikon_3.out +98 -0
  537. data/bin/Image-ExifTool-9.33/t/Nikon_4.out +174 -0
  538. data/bin/Image-ExifTool-9.33/t/Nikon_5.out +167 -0
  539. data/bin/Image-ExifTool-9.33/t/Nikon_7.out +260 -0
  540. data/bin/Image-ExifTool-9.33/t/Nikon_8.out +4 -0
  541. data/bin/Image-ExifTool-9.33/t/Olympus.t +85 -0
  542. data/bin/Image-ExifTool-9.33/t/Olympus_2.out +79 -0
  543. data/bin/Image-ExifTool-9.33/t/Olympus_3.out +81 -0
  544. data/bin/Image-ExifTool-9.33/t/Olympus_4.out +192 -0
  545. data/bin/Image-ExifTool-9.33/t/Olympus_5.out +264 -0
  546. data/bin/Image-ExifTool-9.33/t/Olympus_6.out +151 -0
  547. data/bin/Image-ExifTool-9.33/t/Olympus_7.out +482 -0
  548. data/bin/Image-ExifTool-9.33/t/OpenEXR.t +28 -0
  549. data/bin/Image-ExifTool-9.33/t/OpenEXR_2.out +23 -0
  550. data/bin/Image-ExifTool-9.33/t/PDF.t +295 -0
  551. data/bin/Image-ExifTool-9.33/t/PDF_10.out +10 -0
  552. data/bin/Image-ExifTool-9.33/t/PDF_11.out +10 -0
  553. data/bin/Image-ExifTool-9.33/t/PDF_12.out +9 -0
  554. data/bin/Image-ExifTool-9.33/t/PDF_14.out +5 -0
  555. data/bin/Image-ExifTool-9.33/t/PDF_15.out +6 -0
  556. data/bin/Image-ExifTool-9.33/t/PDF_16.out +4 -0
  557. data/bin/Image-ExifTool-9.33/t/PDF_17.out +4 -0
  558. data/bin/Image-ExifTool-9.33/t/PDF_18.out +5 -0
  559. data/bin/Image-ExifTool-9.33/t/PDF_19.out +6 -0
  560. data/bin/Image-ExifTool-9.33/t/PDF_2.out +117 -0
  561. data/bin/Image-ExifTool-9.33/t/PDF_20.out +4 -0
  562. data/bin/Image-ExifTool-9.33/t/PDF_22.out +3 -0
  563. data/bin/Image-ExifTool-9.33/t/PDF_4.out +12 -0
  564. data/bin/Image-ExifTool-9.33/t/PDF_5.out +8 -0
  565. data/bin/Image-ExifTool-9.33/t/PDF_6.out +9 -0
  566. data/bin/Image-ExifTool-9.33/t/PDF_7.out +11 -0
  567. data/bin/Image-ExifTool-9.33/t/PDF_8.out +9 -0
  568. data/bin/Image-ExifTool-9.33/t/PDF_9.out +9 -0
  569. data/bin/Image-ExifTool-9.33/t/PGF.t +28 -0
  570. data/bin/Image-ExifTool-9.33/t/PGF_2.out +32 -0
  571. data/bin/Image-ExifTool-9.33/t/PICT.t +28 -0
  572. data/bin/Image-ExifTool-9.33/t/PICT_2.out +15 -0
  573. data/bin/Image-ExifTool-9.33/t/PLIST.t +31 -0
  574. data/bin/Image-ExifTool-9.33/t/PLIST_2.out +20 -0
  575. data/bin/Image-ExifTool-9.33/t/PLIST_3.out +20 -0
  576. data/bin/Image-ExifTool-9.33/t/PNG.t +75 -0
  577. data/bin/Image-ExifTool-9.33/t/PNG_2.out +22 -0
  578. data/bin/Image-ExifTool-9.33/t/PNG_3.out +118 -0
  579. data/bin/Image-ExifTool-9.33/t/PNG_4.out +12 -0
  580. data/bin/Image-ExifTool-9.33/t/PPM.t +40 -0
  581. data/bin/Image-ExifTool-9.33/t/PPM_2.out +15 -0
  582. data/bin/Image-ExifTool-9.33/t/PPM_3.out +9 -0
  583. data/bin/Image-ExifTool-9.33/t/PSP.t +28 -0
  584. data/bin/Image-ExifTool-9.33/t/PSP_2.out +32 -0
  585. data/bin/Image-ExifTool-9.33/t/Panasonic.t +60 -0
  586. data/bin/Image-ExifTool-9.33/t/Panasonic_2.out +99 -0
  587. data/bin/Image-ExifTool-9.33/t/Panasonic_3.out +119 -0
  588. data/bin/Image-ExifTool-9.33/t/Panasonic_4.out +177 -0
  589. data/bin/Image-ExifTool-9.33/t/Panasonic_5.out +228 -0
  590. data/bin/Image-ExifTool-9.33/t/Pentax.t +50 -0
  591. data/bin/Image-ExifTool-9.33/t/Pentax_2.out +219 -0
  592. data/bin/Image-ExifTool-9.33/t/Pentax_3.out +262 -0
  593. data/bin/Image-ExifTool-9.33/t/Pentax_4.out +123 -0
  594. data/bin/Image-ExifTool-9.33/t/PhotoCD.t +28 -0
  595. data/bin/Image-ExifTool-9.33/t/PhotoCD_2.out +35 -0
  596. data/bin/Image-ExifTool-9.33/t/PhotoMechanic.t +38 -0
  597. data/bin/Image-ExifTool-9.33/t/PhotoMechanic_2.out +81 -0
  598. data/bin/Image-ExifTool-9.33/t/PhotoMechanic_3.out +2 -0
  599. data/bin/Image-ExifTool-9.33/t/Photoshop.t +42 -0
  600. data/bin/Image-ExifTool-9.33/t/Photoshop_2.out +96 -0
  601. data/bin/Image-ExifTool-9.33/t/Photoshop_3.out +108 -0
  602. data/bin/Image-ExifTool-9.33/t/PostScript.t +49 -0
  603. data/bin/Image-ExifTool-9.33/t/PostScript_2.out +64 -0
  604. data/bin/Image-ExifTool-9.33/t/PostScript_3.out +132 -0
  605. data/bin/Image-ExifTool-9.33/t/QuickTime.t +31 -0
  606. data/bin/Image-ExifTool-9.33/t/QuickTime_2.out +128 -0
  607. data/bin/Image-ExifTool-9.33/t/QuickTime_3.out +69 -0
  608. data/bin/Image-ExifTool-9.33/t/RIFF.t +31 -0
  609. data/bin/Image-ExifTool-9.33/t/RIFF_2.out +24 -0
  610. data/bin/Image-ExifTool-9.33/t/RIFF_3.out +52 -0
  611. data/bin/Image-ExifTool-9.33/t/RIFF_4.out +16 -0
  612. data/bin/Image-ExifTool-9.33/t/RTF.t +27 -0
  613. data/bin/Image-ExifTool-9.33/t/RTF_2.out +20 -0
  614. data/bin/Image-ExifTool-9.33/t/Radiance.t +28 -0
  615. data/bin/Image-ExifTool-9.33/t/Radiance_2.out +22 -0
  616. data/bin/Image-ExifTool-9.33/t/Real.t +46 -0
  617. data/bin/Image-ExifTool-9.33/t/Real_2.out +68 -0
  618. data/bin/Image-ExifTool-9.33/t/Real_3.out +18 -0
  619. data/bin/Image-ExifTool-9.33/t/Real_4.out +11 -0
  620. data/bin/Image-ExifTool-9.33/t/Ricoh.t +47 -0
  621. data/bin/Image-ExifTool-9.33/t/Ricoh_2.out +70 -0
  622. data/bin/Image-ExifTool-9.33/t/Ricoh_3.out +98 -0
  623. data/bin/Image-ExifTool-9.33/t/Ricoh_4.out +112 -0
  624. data/bin/Image-ExifTool-9.33/t/Sanyo.t +39 -0
  625. data/bin/Image-ExifTool-9.33/t/Sanyo_2.out +101 -0
  626. data/bin/Image-ExifTool-9.33/t/Sanyo_3.out +111 -0
  627. data/bin/Image-ExifTool-9.33/t/Sigma.t +60 -0
  628. data/bin/Image-ExifTool-9.33/t/Sigma_2.out +91 -0
  629. data/bin/Image-ExifTool-9.33/t/Sigma_3.out +94 -0
  630. data/bin/Image-ExifTool-9.33/t/Sigma_4.out +63 -0
  631. data/bin/Image-ExifTool-9.33/t/Sigma_5.out +192 -0
  632. data/bin/Image-ExifTool-9.33/t/Sony.t +62 -0
  633. data/bin/Image-ExifTool-9.33/t/Sony_2.out +84 -0
  634. data/bin/Image-ExifTool-9.33/t/Sony_3.out +85 -0
  635. data/bin/Image-ExifTool-9.33/t/Sony_5.out +32 -0
  636. data/bin/Image-ExifTool-9.33/t/TestLib.pm +417 -0
  637. data/bin/Image-ExifTool-9.33/t/Unknown.t +36 -0
  638. data/bin/Image-ExifTool-9.33/t/Unknown_2.out +90 -0
  639. data/bin/Image-ExifTool-9.33/t/Unknown_3.out +90 -0
  640. data/bin/Image-ExifTool-9.33/t/Vorbis.t +28 -0
  641. data/bin/Image-ExifTool-9.33/t/Vorbis_2.out +28 -0
  642. data/bin/Image-ExifTool-9.33/t/Writer.t +913 -0
  643. data/bin/Image-ExifTool-9.33/t/Writer_10.out +240 -0
  644. data/bin/Image-ExifTool-9.33/t/Writer_11.out +37 -0
  645. data/bin/Image-ExifTool-9.33/t/Writer_13.out +160 -0
  646. data/bin/Image-ExifTool-9.33/t/Writer_14.out +67 -0
  647. data/bin/Image-ExifTool-9.33/t/Writer_15.out +171 -0
  648. data/bin/Image-ExifTool-9.33/t/Writer_16.out +1 -0
  649. data/bin/Image-ExifTool-9.33/t/Writer_17.out +1 -0
  650. data/bin/Image-ExifTool-9.33/t/Writer_18.out +3 -0
  651. data/bin/Image-ExifTool-9.33/t/Writer_19.out +34 -0
  652. data/bin/Image-ExifTool-9.33/t/Writer_2.out +168 -0
  653. data/bin/Image-ExifTool-9.33/t/Writer_22.out +4 -0
  654. data/bin/Image-ExifTool-9.33/t/Writer_24.out +1 -0
  655. data/bin/Image-ExifTool-9.33/t/Writer_25.out +38 -0
  656. data/bin/Image-ExifTool-9.33/t/Writer_26.out +32 -0
  657. data/bin/Image-ExifTool-9.33/t/Writer_27.out +14 -0
  658. data/bin/Image-ExifTool-9.33/t/Writer_28.out +1 -0
  659. data/bin/Image-ExifTool-9.33/t/Writer_29.out +2 -0
  660. data/bin/Image-ExifTool-9.33/t/Writer_30.out +2 -0
  661. data/bin/Image-ExifTool-9.33/t/Writer_31.out +97 -0
  662. data/bin/Image-ExifTool-9.33/t/Writer_32.out +3 -0
  663. data/bin/Image-ExifTool-9.33/t/Writer_33.out +3 -0
  664. data/bin/Image-ExifTool-9.33/t/Writer_34.out +3 -0
  665. data/bin/Image-ExifTool-9.33/t/Writer_35.out +187 -0
  666. data/bin/Image-ExifTool-9.33/t/Writer_36.out +2 -0
  667. data/bin/Image-ExifTool-9.33/t/Writer_37.out +2 -0
  668. data/bin/Image-ExifTool-9.33/t/Writer_38.out +62 -0
  669. data/bin/Image-ExifTool-9.33/t/Writer_39.out +4 -0
  670. data/bin/Image-ExifTool-9.33/t/Writer_4.out +85 -0
  671. data/bin/Image-ExifTool-9.33/t/Writer_40.out +4 -0
  672. data/bin/Image-ExifTool-9.33/t/Writer_41.out +3 -0
  673. data/bin/Image-ExifTool-9.33/t/Writer_42.out +5 -0
  674. data/bin/Image-ExifTool-9.33/t/Writer_43.out +5 -0
  675. data/bin/Image-ExifTool-9.33/t/Writer_44.out +2 -0
  676. data/bin/Image-ExifTool-9.33/t/Writer_45.out +1 -0
  677. data/bin/Image-ExifTool-9.33/t/Writer_46.out +77 -0
  678. data/bin/Image-ExifTool-9.33/t/Writer_47.out +56 -0
  679. data/bin/Image-ExifTool-9.33/t/Writer_48.out +29 -0
  680. data/bin/Image-ExifTool-9.33/t/Writer_50.out +3 -0
  681. data/bin/Image-ExifTool-9.33/t/Writer_51.out +386 -0
  682. data/bin/Image-ExifTool-9.33/t/Writer_6.out +182 -0
  683. data/bin/Image-ExifTool-9.33/t/Writer_7.out +149 -0
  684. data/bin/Image-ExifTool-9.33/t/Writer_9.out +237 -0
  685. data/bin/Image-ExifTool-9.33/t/XMP.t +521 -0
  686. data/bin/Image-ExifTool-9.33/t/XMP_10.out +33 -0
  687. data/bin/Image-ExifTool-9.33/t/XMP_11.out +59 -0
  688. data/bin/Image-ExifTool-9.33/t/XMP_12.out +4 -0
  689. data/bin/Image-ExifTool-9.33/t/XMP_13.out +5 -0
  690. data/bin/Image-ExifTool-9.33/t/XMP_14.out +3 -0
  691. data/bin/Image-ExifTool-9.33/t/XMP_15.out +3 -0
  692. data/bin/Image-ExifTool-9.33/t/XMP_16.out +5 -0
  693. data/bin/Image-ExifTool-9.33/t/XMP_17.out +6 -0
  694. data/bin/Image-ExifTool-9.33/t/XMP_18.out +10 -0
  695. data/bin/Image-ExifTool-9.33/t/XMP_19.out +35 -0
  696. data/bin/Image-ExifTool-9.33/t/XMP_2.out +138 -0
  697. data/bin/Image-ExifTool-9.33/t/XMP_20.out +35 -0
  698. data/bin/Image-ExifTool-9.33/t/XMP_21.out +38 -0
  699. data/bin/Image-ExifTool-9.33/t/XMP_22.out +38 -0
  700. data/bin/Image-ExifTool-9.33/t/XMP_23.out +9 -0
  701. data/bin/Image-ExifTool-9.33/t/XMP_24.out +31 -0
  702. data/bin/Image-ExifTool-9.33/t/XMP_25.out +28 -0
  703. data/bin/Image-ExifTool-9.33/t/XMP_26.out +52 -0
  704. data/bin/Image-ExifTool-9.33/t/XMP_27.out +93 -0
  705. data/bin/Image-ExifTool-9.33/t/XMP_28.out +44 -0
  706. data/bin/Image-ExifTool-9.33/t/XMP_29.out +24 -0
  707. data/bin/Image-ExifTool-9.33/t/XMP_3.out +136 -0
  708. data/bin/Image-ExifTool-9.33/t/XMP_30.out +90 -0
  709. data/bin/Image-ExifTool-9.33/t/XMP_31.out +19 -0
  710. data/bin/Image-ExifTool-9.33/t/XMP_32.out +2 -0
  711. data/bin/Image-ExifTool-9.33/t/XMP_34.out +2 -0
  712. data/bin/Image-ExifTool-9.33/t/XMP_36.out +18 -0
  713. data/bin/Image-ExifTool-9.33/t/XMP_37.out +35 -0
  714. data/bin/Image-ExifTool-9.33/t/XMP_39.out +44 -0
  715. data/bin/Image-ExifTool-9.33/t/XMP_40.out +3 -0
  716. data/bin/Image-ExifTool-9.33/t/XMP_41.out +175 -0
  717. data/bin/Image-ExifTool-9.33/t/XMP_5.out +29 -0
  718. data/bin/Image-ExifTool-9.33/t/XMP_6.out +87 -0
  719. data/bin/Image-ExifTool-9.33/t/XMP_7.out +118 -0
  720. data/bin/Image-ExifTool-9.33/t/XMP_8.out +17 -0
  721. data/bin/Image-ExifTool-9.33/t/XMP_9.out +36 -0
  722. data/bin/Image-ExifTool-9.33/t/ZIP.t +69 -0
  723. data/bin/Image-ExifTool-9.33/t/ZIP_2.out +18 -0
  724. data/bin/Image-ExifTool-9.33/t/ZIP_3.out +17 -0
  725. data/bin/Image-ExifTool-9.33/t/ZIP_4.out +213 -0
  726. data/bin/Image-ExifTool-9.33/t/ZIP_5.out +134 -0
  727. data/bin/Image-ExifTool-9.33/t/ZIP_6.out +49 -0
  728. data/bin/Image-ExifTool-9.33/t/ZIP_7.out +28 -0
  729. data/bin/Image-ExifTool-9.33/t/images/AFCP.jpg +0 -0
  730. data/bin/Image-ExifTool-9.33/t/images/AIFF.aif +0 -0
  731. data/bin/Image-ExifTool-9.33/t/images/APE.ape +0 -0
  732. data/bin/Image-ExifTool-9.33/t/images/APE.mpc +0 -0
  733. data/bin/Image-ExifTool-9.33/t/images/ASF.wmv +0 -0
  734. data/bin/Image-ExifTool-9.33/t/images/BMP.bmp +0 -0
  735. data/bin/Image-ExifTool-9.33/t/images/BigTIFF.btf +0 -0
  736. data/bin/Image-ExifTool-9.33/t/images/Canon.jpg +0 -0
  737. data/bin/Image-ExifTool-9.33/t/images/Canon1DmkIII.jpg +0 -0
  738. data/bin/Image-ExifTool-9.33/t/images/CanonRaw.cr2 +0 -0
  739. data/bin/Image-ExifTool-9.33/t/images/CanonRaw.crw +0 -0
  740. data/bin/Image-ExifTool-9.33/t/images/CanonVRD.vrd +0 -0
  741. data/bin/Image-ExifTool-9.33/t/images/CaptureOne.eip +0 -0
  742. data/bin/Image-ExifTool-9.33/t/images/Casio.jpg +0 -0
  743. data/bin/Image-ExifTool-9.33/t/images/Casio2.jpg +0 -0
  744. data/bin/Image-ExifTool-9.33/t/images/CasioQVCI.jpg +0 -0
  745. data/bin/Image-ExifTool-9.33/t/images/DICOM.dcm +0 -0
  746. data/bin/Image-ExifTool-9.33/t/images/DNG.dng +0 -0
  747. data/bin/Image-ExifTool-9.33/t/images/DV.dv +0 -0
  748. data/bin/Image-ExifTool-9.33/t/images/DjVu.djvu +0 -0
  749. data/bin/Image-ExifTool-9.33/t/images/EXE.elf +0 -0
  750. data/bin/Image-ExifTool-9.33/t/images/EXE.exe +0 -0
  751. data/bin/Image-ExifTool-9.33/t/images/EXE.macho +0 -0
  752. data/bin/Image-ExifTool-9.33/t/images/ExifTool.jpg +0 -0
  753. data/bin/Image-ExifTool-9.33/t/images/ExifTool.tif +0 -0
  754. data/bin/Image-ExifTool-9.33/t/images/ExtendedXMP.jpg +0 -0
  755. data/bin/Image-ExifTool-9.33/t/images/FLAC.flac +0 -0
  756. data/bin/Image-ExifTool-9.33/t/images/FLAC.ogg +0 -0
  757. data/bin/Image-ExifTool-9.33/t/images/FLIR.fpf +0 -0
  758. data/bin/Image-ExifTool-9.33/t/images/FLIR.jpg +0 -0
  759. data/bin/Image-ExifTool-9.33/t/images/Flash.flv +0 -0
  760. data/bin/Image-ExifTool-9.33/t/images/Flash.swf +0 -0
  761. data/bin/Image-ExifTool-9.33/t/images/FlashPix.ppt +0 -0
  762. data/bin/Image-ExifTool-9.33/t/images/Font.afm +28 -0
  763. data/bin/Image-ExifTool-9.33/t/images/Font.dfont +0 -0
  764. data/bin/Image-ExifTool-9.33/t/images/Font.pfa +38 -0
  765. data/bin/Image-ExifTool-9.33/t/images/Font.pfb +0 -0
  766. data/bin/Image-ExifTool-9.33/t/images/Font.pfm +0 -0
  767. data/bin/Image-ExifTool-9.33/t/images/Font.ttf +0 -0
  768. data/bin/Image-ExifTool-9.33/t/images/FotoStation.jpg +0 -0
  769. data/bin/Image-ExifTool-9.33/t/images/FujiFilm.jpg +0 -0
  770. data/bin/Image-ExifTool-9.33/t/images/FujiFilm.raf +0 -0
  771. data/bin/Image-ExifTool-9.33/t/images/GE.jpg +0 -0
  772. data/bin/Image-ExifTool-9.33/t/images/GIF.gif +0 -0
  773. data/bin/Image-ExifTool-9.33/t/images/GIMP.xcf +0 -0
  774. data/bin/Image-ExifTool-9.33/t/images/GPS.jpg +0 -0
  775. data/bin/Image-ExifTool-9.33/t/images/GeoTiff.tif +0 -0
  776. data/bin/Image-ExifTool-9.33/t/images/Geotag.gpx +23 -0
  777. data/bin/Image-ExifTool-9.33/t/images/Geotag.igc +24 -0
  778. data/bin/Image-ExifTool-9.33/t/images/Geotag.log +13 -0
  779. data/bin/Image-ExifTool-9.33/t/images/Geotag.xml +23 -0
  780. data/bin/Image-ExifTool-9.33/t/images/Geotag2.log +7 -0
  781. data/bin/Image-ExifTool-9.33/t/images/HTML.html +77 -0
  782. data/bin/Image-ExifTool-9.33/t/images/IPTC.jpg +0 -0
  783. data/bin/Image-ExifTool-9.33/t/images/ITC.itc +0 -0
  784. data/bin/Image-ExifTool-9.33/t/images/InDesign.indd +0 -0
  785. data/bin/Image-ExifTool-9.33/t/images/JVC.jpg +0 -0
  786. data/bin/Image-ExifTool-9.33/t/images/JVC2.jpg +0 -0
  787. data/bin/Image-ExifTool-9.33/t/images/Jpeg2000.j2c +0 -0
  788. data/bin/Image-ExifTool-9.33/t/images/Jpeg2000.jp2 +0 -0
  789. data/bin/Image-ExifTool-9.33/t/images/Kodak.jpg +0 -0
  790. data/bin/Image-ExifTool-9.33/t/images/KyoceraRaw.raw +0 -0
  791. data/bin/Image-ExifTool-9.33/t/images/LNK.lnk +0 -0
  792. data/bin/Image-ExifTool-9.33/t/images/M2TS.mts +0 -0
  793. data/bin/Image-ExifTool-9.33/t/images/MIE.mie +0 -0
  794. data/bin/Image-ExifTool-9.33/t/images/MIFF.miff +0 -0
  795. data/bin/Image-ExifTool-9.33/t/images/MP3.mp3 +0 -0
  796. data/bin/Image-ExifTool-9.33/t/images/MWG.jpg +0 -0
  797. data/bin/Image-ExifTool-9.33/t/images/MXF.mxf +0 -0
  798. data/bin/Image-ExifTool-9.33/t/images/Matroska.mkv +0 -0
  799. data/bin/Image-ExifTool-9.33/t/images/Minolta.jpg +0 -0
  800. data/bin/Image-ExifTool-9.33/t/images/Minolta.mrw +0 -0
  801. data/bin/Image-ExifTool-9.33/t/images/Nikon.jpg +0 -0
  802. data/bin/Image-ExifTool-9.33/t/images/Nikon.nef +0 -0
  803. data/bin/Image-ExifTool-9.33/t/images/NikonD2Hs.jpg +0 -0
  804. data/bin/Image-ExifTool-9.33/t/images/NikonD70.jpg +0 -0
  805. data/bin/Image-ExifTool-9.33/t/images/OOXML.docx +0 -0
  806. data/bin/Image-ExifTool-9.33/t/images/Olympus.jpg +0 -0
  807. data/bin/Image-ExifTool-9.33/t/images/Olympus2.jpg +0 -0
  808. data/bin/Image-ExifTool-9.33/t/images/OlympusE1.jpg +0 -0
  809. data/bin/Image-ExifTool-9.33/t/images/OpenDoc.ods +0 -0
  810. data/bin/Image-ExifTool-9.33/t/images/OpenEXR.exr +0 -0
  811. data/bin/Image-ExifTool-9.33/t/images/PDF.pdf +0 -0
  812. data/bin/Image-ExifTool-9.33/t/images/PDF2.pdf +0 -0
  813. data/bin/Image-ExifTool-9.33/t/images/PGF.pgf +0 -0
  814. data/bin/Image-ExifTool-9.33/t/images/PICT.pict +0 -0
  815. data/bin/Image-ExifTool-9.33/t/images/PLIST-bin.plist +0 -0
  816. data/bin/Image-ExifTool-9.33/t/images/PLIST-xml.plist +35 -0
  817. data/bin/Image-ExifTool-9.33/t/images/PNG.png +0 -0
  818. data/bin/Image-ExifTool-9.33/t/images/PPM.ppm +5 -0
  819. data/bin/Image-ExifTool-9.33/t/images/PSP.psp +0 -0
  820. data/bin/Image-ExifTool-9.33/t/images/Panasonic.jpg +0 -0
  821. data/bin/Image-ExifTool-9.33/t/images/Panasonic.rw2 +0 -0
  822. data/bin/Image-ExifTool-9.33/t/images/Pentax.avi +0 -0
  823. data/bin/Image-ExifTool-9.33/t/images/Pentax.jpg +0 -0
  824. data/bin/Image-ExifTool-9.33/t/images/PhotoCD.pcd +0 -0
  825. data/bin/Image-ExifTool-9.33/t/images/PhotoMechanic.jpg +0 -0
  826. data/bin/Image-ExifTool-9.33/t/images/Photoshop.psd +0 -0
  827. data/bin/Image-ExifTool-9.33/t/images/PostScript.eps +108 -0
  828. data/bin/Image-ExifTool-9.33/t/images/QuickTime.m4a +0 -0
  829. data/bin/Image-ExifTool-9.33/t/images/QuickTime.mov +0 -0
  830. data/bin/Image-ExifTool-9.33/t/images/RIFF.avi +0 -0
  831. data/bin/Image-ExifTool-9.33/t/images/RIFF.wav +0 -0
  832. data/bin/Image-ExifTool-9.33/t/images/RIFF.webp +0 -0
  833. data/bin/Image-ExifTool-9.33/t/images/RTF.rtf +25 -0
  834. data/bin/Image-ExifTool-9.33/t/images/Radiance.hdr +0 -0
  835. data/bin/Image-ExifTool-9.33/t/images/Real.ra +0 -0
  836. data/bin/Image-ExifTool-9.33/t/images/Real.ram +1 -0
  837. data/bin/Image-ExifTool-9.33/t/images/Real.rm +0 -0
  838. data/bin/Image-ExifTool-9.33/t/images/Ricoh.jpg +0 -0
  839. data/bin/Image-ExifTool-9.33/t/images/Ricoh2.jpg +0 -0
  840. data/bin/Image-ExifTool-9.33/t/images/Sanyo.jpg +0 -0
  841. data/bin/Image-ExifTool-9.33/t/images/Sigma.jpg +0 -0
  842. data/bin/Image-ExifTool-9.33/t/images/Sigma.x3f +0 -0
  843. data/bin/Image-ExifTool-9.33/t/images/SigmaDP2.x3f +0 -0
  844. data/bin/Image-ExifTool-9.33/t/images/Sony.jpg +0 -0
  845. data/bin/Image-ExifTool-9.33/t/images/Sony.pmp +0 -0
  846. data/bin/Image-ExifTool-9.33/t/images/Unknown.jpg +0 -0
  847. data/bin/Image-ExifTool-9.33/t/images/Vorbis.ogg +0 -0
  848. data/bin/Image-ExifTool-9.33/t/images/Writer.jpg +0 -0
  849. data/bin/Image-ExifTool-9.33/t/images/XMP.inx +108 -0
  850. data/bin/Image-ExifTool-9.33/t/images/XMP.jpg +0 -0
  851. data/bin/Image-ExifTool-9.33/t/images/XMP.svg +33 -0
  852. data/bin/Image-ExifTool-9.33/t/images/XMP.xml +98 -0
  853. data/bin/Image-ExifTool-9.33/t/images/XMP.xmp +99 -0
  854. data/bin/Image-ExifTool-9.33/t/images/XMP2.xmp +25 -0
  855. data/bin/Image-ExifTool-9.33/t/images/XMP3.xmp +43 -0
  856. data/bin/Image-ExifTool-9.33/t/images/XMP4.xmp +93 -0
  857. data/bin/Image-ExifTool-9.33/t/images/XMP5.xmp +158 -0
  858. data/bin/Image-ExifTool-9.33/t/images/ZIP.gz +0 -0
  859. data/bin/Image-ExifTool-9.33/t/images/ZIP.zip +0 -0
  860. data/bin/Image-ExifTool-9.33/t/images/iWork.numbers +0 -0
  861. data/lib/exiftool_vendored.rb +10 -0
  862. data/lib/exiftool_vendored/version.rb +3 -0
  863. data/lib/exiftool_vendored/version_extractor.rb +17 -0
  864. metadata +977 -0
@@ -0,0 +1,2385 @@
1
+ #------------------------------------------------------------------------------
2
+ # File: ExifTool.pod - Documentation for File::ExifTool
3
+ #
4
+ # Description: Read and write meta information
5
+ #
6
+ # URL: http://owl.phy.queensu.ca/~phil/exiftool/
7
+ #
8
+ # Legal: Copyright (c) 2003-2013, Phil Harvey (phil at owl.phy.queensu.ca)
9
+ # This library is free software; you can redistribute it and/or
10
+ # modify it under the same terms as Perl itself.
11
+ #------------------------------------------------------------------------------
12
+
13
+ =head1 NAME
14
+
15
+ Image::ExifTool - Read and write meta information
16
+
17
+ =head1 SYNOPSIS
18
+
19
+ use Image::ExifTool qw(:Public);
20
+
21
+ # ---- Simple procedural usage ----
22
+
23
+ # Get hash of meta information tag names/values from an image
24
+ $info = ImageInfo('a.jpg');
25
+
26
+ # ---- Object-oriented usage ----
27
+
28
+ # Create a new Image::ExifTool object
29
+ $exifTool = new Image::ExifTool;
30
+
31
+ # Extract meta information from an image
32
+ $exifTool->ExtractInfo($file, \%options);
33
+
34
+ # Get list of tags in the order they were found in the file
35
+ @tagList = $exifTool->GetFoundTags('File');
36
+
37
+ # Get the value of a specified tag
38
+ $value = $exifTool->GetValue($tag, $type);
39
+
40
+ # Get a tag description
41
+ $description = $exifTool->GetDescription($tag);
42
+
43
+ # Get the group name associated with this tag
44
+ $group = $exifTool->GetGroup($tag, $family);
45
+
46
+ # Set a new value for a tag
47
+ $exifTool->SetNewValue($tag, $newValue);
48
+
49
+ # Write new meta information to a file
50
+ $success = $exifTool->WriteInfo($srcfile, $dstfile);
51
+
52
+ # ...plus a host of other useful methods...
53
+
54
+ =head1 DESCRIPTION
55
+
56
+ ExifTool provides an extensible set of perl modules to read and write meta
57
+ information in a wide variety of files, including the maker note information
58
+ of many digital cameras by various manufacturers such as Canon, Casio,
59
+ FujiFilm, GE, HP, JVC/Victor, Kodak, Leaf, Minolta/Konica-Minolta, Nikon,
60
+ Olympus/Epson, Panasonic/Leica, Pentax/Asahi, Phase One, Reconyx, Ricoh,
61
+ Samsung, Sanyo, Sigma/Foveon and Sony.
62
+
63
+ Below is a list of file types and meta information formats currently
64
+ supported by ExifTool (r = read, w = write, c = create):
65
+
66
+ File Types
67
+ ------------+-------------+-------------+-------------+------------
68
+ 3FR r | EIP r | LA r | ORF r/w | RSRC r
69
+ 3G2 r | EPS r/w | LNK r | OTF r | RTF r
70
+ 3GP r | ERF r/w | M2TS r | PAC r | RW2 r/w
71
+ ACR r | EXE r | M4A/V r | PAGES r | RWL r/w
72
+ AFM r | EXIF r/w/c | MEF r/w | PBM r/w | RWZ r
73
+ AI r/w | EXR r | MIE r/w/c | PCD r | RM r
74
+ AIFF r | F4A/V r | MIFF r | PDF r/w | SO r
75
+ APE r | FFF r/w | MKA r | PEF r/w | SR2 r/w
76
+ ARW r/w | FLA r | MKS r | PFA r | SRF r
77
+ ASF r | FLAC r | MKV r | PFB r | SRW r/w
78
+ AVI r | FLV r | MNG r/w | PFM r | SVG r
79
+ BMP r | FPF r | MODD r | PGF r | SWF r
80
+ BTF r | FPX r | MOS r/w | PGM r/w | THM r/w
81
+ CHM r | GIF r/w | MOV r | PLIST r | TIFF r/w
82
+ COS r | GZ r | MP3 r | PICT r | TTC r
83
+ CR2 r/w | HDP r/w | MP4 r | PMP r | TTF r
84
+ CRW r/w | HDR r | MPC r | PNG r/w | VRD r/w/c
85
+ CS1 r/w | HTML r | MPG r | PPM r/w | VSD r
86
+ DCM r | ICC r/w/c | MPO r/w | PPT r | WAV r
87
+ DCP r/w | IDML r | MQV r | PPTX r | WDP r/w
88
+ DCR r | IIQ r/w | MRW r/w | PS r/w | WEBP r
89
+ DFONT r | IND r/w | MXF r | PSB r/w | WEBM r
90
+ DIVX r | INX r | NEF r/w | PSD r/w | WMA r
91
+ DJVU r | ITC r | NRW r/w | PSP r | WMV r
92
+ DLL r | J2C r | NUMBERS r | QTIF r | WV r
93
+ DNG r/w | JNG r/w | ODP r | RA r | X3F r/w
94
+ DOC r | JP2 r/w | ODS r | RAF r/w | XCF r
95
+ DOCX r | JPEG r/w | ODT r | RAM r | XLS r
96
+ DV r | K25 r | OFR r | RAR r | XLSX r
97
+ DVB r | KDC r | OGG r | RAW r/w | XMP r/w/c
98
+ DYLIB r | KEY r | OGV r | RIFF r | ZIP r
99
+
100
+ Meta Information
101
+ ----------------------+----------------------+---------------------
102
+ EXIF r/w/c | CIFF r/w | Ricoh RMETA r
103
+ GPS r/w/c | AFCP r/w | Picture Info r
104
+ IPTC r/w/c | Kodak Meta r/w | Adobe APP14 r
105
+ XMP r/w/c | FotoStation r/w | MPF r
106
+ MakerNotes r/w/c | PhotoMechanic r/w | Stim r
107
+ Photoshop IRB r/w/c | JPEG 2000 r | APE r
108
+ ICC Profile r/w/c | DICOM r | Vorbis r
109
+ MIE r/w/c | Flash r | SPIFF r
110
+ JFIF r/w/c | FlashPix r | DjVu r
111
+ Ducky APP12 r/w/c | QuickTime r | M2TS r
112
+ PDF r/w/c | Matroska r | PE/COFF r
113
+ PNG r/w/c | GeoTIFF r | AVCHD r
114
+ Canon VRD r/w/c | PrintIM r | ZIP r
115
+ Nikon Capture r/w/c | ID3 r | (and more)
116
+
117
+ =head1 CONFIGURATION
118
+
119
+ User-defined tags can be added via the ExifTool configuration file, or by
120
+ defining the %Image::ExifTool::UserDefined hash before calling any ExifTool
121
+ methods. See "ExifTool_config" in the ExifTool distribution for more
122
+ details.
123
+
124
+ By default ExifTool looks for a configuration file named ".ExifTool_config"
125
+ first in your home directory, then in the directory of the application
126
+ script, but a different directory may be specified by setting the
127
+ EXIFTOOL_HOME environment variable, or a different file may be specified by
128
+ setting the ExifTool C<configFile> variable before using Image::ExifTool.
129
+ For example:
130
+
131
+ BEGIN { $Image::ExifTool::configFile = '/Users/phil/myconfig.cfg' }
132
+ use Image::ExifTool;
133
+
134
+ The configuration feature may also be disabled by setting C<configFile> to
135
+ an empty string:
136
+
137
+ BEGIN { $Image::ExifTool::configFile = '' }
138
+ use Image::ExifTool;
139
+
140
+ =head1 EXPORTS
141
+
142
+ Exports nothing by default, but L</ImageInfo> and all static methods may be
143
+ exported with the C<:Public> export list.
144
+
145
+ =head1 METHODS
146
+
147
+ All ExifTool features are accessed through the methods of the public
148
+ interface listed below. Other Image::ExifTool methods and modules should
149
+ not be accessed directly because their interface may change with future
150
+ versions.
151
+
152
+ None of these methods should ever die or issue warnings to STDERR if called
153
+ with the proper arguments (with the exception of L</SetNewValue> which may
154
+ send an error message to STDERR, but only when called in scalar context).
155
+ Error and warning messages that occur during processing are stored in the
156
+ values of the Error and Warning tags, and are accessible via the
157
+ L</GetValue> method.
158
+
159
+ The ExifTool methods are not thread safe.
160
+
161
+ =head2 new
162
+
163
+ Creates a new ExifTool object.
164
+
165
+ $exifTool = new Image::ExifTool;
166
+
167
+ Note that ExifTool uses AUTOLOAD to load non-member methods, so any class
168
+ using Image::ExifTool as a base class must define an AUTOLOAD which calls
169
+ Image::ExifTool::DoAutoLoad(). ie)
170
+
171
+ sub AUTOLOAD
172
+ {
173
+ Image::ExifTool::DoAutoLoad($AUTOLOAD, @_);
174
+ }
175
+
176
+ =head2 ImageInfo
177
+
178
+ Read image file and return meta information. This is the one step function
179
+ for retrieving meta information from an image. Internally, L</ImageInfo>
180
+ calls L</ExtractInfo> to extract the information, L</GetInfo> to generate
181
+ the information hash, and L</GetTagList> for the returned tag list.
182
+
183
+ # return meta information for 2 tags only (procedural)
184
+ $info = ImageInfo($filename, $tag1, $tag2);
185
+
186
+ # return information about an open image file (object-oriented)
187
+ $info = $exifTool->ImageInfo(\*FILE);
188
+
189
+ # return information from image data in memory for specified tags
190
+ %options = (PrintConv => 0);
191
+ @tagList = qw(filename imagesize xmp:creator exif:* -ifd1:*);
192
+ $info = ImageInfo(\$imageData, \@tagList, \%options);
193
+
194
+ # extract information from an embedded thumbnail image
195
+ $info = ImageInfo('image.jpg', 'thumbnailimage');
196
+ $thumbInfo = ImageInfo($$info{ThumbnailImage});
197
+
198
+ =over 4
199
+
200
+ =item Inputs:
201
+
202
+ L</ImageInfo> is very flexible about the input arguments, and interprets
203
+ them based on their type. It may be called with one or more arguments.
204
+ The one required argument is either a SCALAR (the image file name), a file
205
+ reference (a reference to the image file) or a SCALAR reference (a
206
+ reference to the image in memory). Other arguments are optional. The
207
+ order of the arguments is not significant, except that the first SCALAR is
208
+ taken to be the file name unless a file reference or scalar reference comes
209
+ earlier in the argument list.
210
+
211
+ Below is an explanation of how the L</ImageInfo> function arguments are
212
+ interpreted:
213
+
214
+ =over 4
215
+
216
+ =item ExifTool ref
217
+
218
+ L</ImageInfo> may be called with an ExifTool object if desired. Advantages
219
+ of using the object-oriented form are that options may be set before calling
220
+ L</ImageInfo>, and the object may be used afterward to access member
221
+ functions. Must be the first argument if used.
222
+
223
+ =item SCALAR
224
+
225
+ The first scalar argument is taken to be the file name unless an earlier
226
+ argument specified the image data via a file reference (file ref) or data
227
+ reference (SCALAR ref). The remaining scalar arguments are names of tags
228
+ for requested information. All tags are returned if no tags are specified.
229
+
230
+ Tag names are case-insensitive and may be prefixed by optional group names
231
+ separated by colons. A group name may begin with a family number (ie.
232
+ '1IPTC:Keywords'), to restrict matches to a specific family. In the tag
233
+ name, a '?' matches any single character and a '*' matches zero or more
234
+ characters. Thus 'GROUP:*' represents all tags in a specific group.
235
+ Wildcards may not be used in group names, with the exception that a group
236
+ name of '*' may be used to extract all available instances of a tag
237
+ regardless of the L</Duplicates> setting (ie. '*:WhiteBalance'). Multiple
238
+ groups may be specified (ie. 'EXIF:Time:*' extracts all EXIF Time tags). And
239
+ finally, a leading '-' indicates a tag to be excluded (ie. '-IFD1:*'), or a
240
+ trailing '#' causes the ValueConv value to be returned for this tag.
241
+
242
+ Note that keys in the returned information hash and elements of the returned
243
+ tag list are not necessarily the same as these tag names because group names
244
+ are removed, the case may be changed, and an instance number may be added.
245
+ For this reason it is best to use either the keys of the returned hash or
246
+ the elements of the returned tag list when accessing the tag values.
247
+
248
+ See L<Image::ExifTool::TagNames|Image::ExifTool::TagNames> for a complete
249
+ list of ExifTool tag names.
250
+
251
+ =item File ref
252
+
253
+ A reference to an open image file. If you use this method (or a SCALAR
254
+ reference) to access information in an image, the FileName and Directory
255
+ tags will not be returned. (Also, the FileSize, FileModifyDate and
256
+ FilePermissions tags will not be returned unless it is a plain file.) Image
257
+ processing begins at the current file position, and on return the file
258
+ position is unspecified. May be either a standard filehandle, or a
259
+ reference to a L<File::RandomAccess|File::RandomAccess> object. Note that
260
+ the file remains open and must be closed by the caller after L</ImageInfo>
261
+ returns.
262
+
263
+ [Advanced: To allow a non-rewindable stream (ie. a network socket) to be
264
+ re-read after processing with ExifTool, first wrap the file reference in a
265
+ L<File::RandomAccess|File::RandomAccess> object, then pass this object to
266
+ L</ImageInfo>. The L<File::RandomAccess|File::RandomAccess> object will
267
+ buffer the file if necessary, and may be used to re-read the file after
268
+ L</ImageInfo> returns.]
269
+
270
+ =item SCALAR ref
271
+
272
+ A reference to image data in memory.
273
+
274
+ =item ARRAY ref
275
+
276
+ Reference to a list of tag names. On entry, any elements in the list are
277
+ added to the list of requested tags. Tags with names beginning with '-' are
278
+ excluded. On return, this list is updated to contain an ordered list of tag
279
+ keys for the returned information.
280
+
281
+ There will be 1:1 correspondence between the requested tags and the returned
282
+ tag keys only if the L</Duplicates> option is 0 and L</Sort> is 'Input'.
283
+ (With L</Duplicates> enabled, there may be more entries in the returned list
284
+ of tag keys, and with other L</Sort> settings the entries may not be in the
285
+ same order as requested.)
286
+
287
+ =item HASH ref
288
+
289
+ Reference to a hash containing the options settings. See L</Options>
290
+ documentation below for a list of available options. Options specified
291
+ as arguments to L</ImageInfo> take precedence over L</Options> settings.
292
+
293
+ =back
294
+
295
+ =item Return Values:
296
+
297
+ L</ImageInfo> returns a reference to a hash of tag key/value pairs. The tag
298
+ keys are identifiers, which are similar to the tag names but may have an
299
+ appended instance number if multiple tags with the same name were extracted
300
+ from the image. Many of the ExifTool functions require a tag key as an
301
+ argument. Use L</GetTagName [static]> to get the tag name for a given tag
302
+ key. Note that the case of the tag names may not be the same as requested.
303
+ Here is a simple example to print out the information returned by
304
+ L</ImageInfo>:
305
+
306
+ foreach (sort keys %$info) {
307
+ print "$_ => $$info{$_}\n";
308
+ }
309
+
310
+ Values of the returned hash are usually simple scalars, but a scalar
311
+ reference is used to indicate binary data and an array reference may be used
312
+ to indicate a list. Also, a hash reference may be returned if the L</Struct>
313
+ option is used. Lists of values are joined by commas into a single
314
+ string only if the PrintConv option is enabled and the List option is
315
+ disabled (which are the defaults). Note that binary values are not
316
+ necessarily extracted unless specifically requested, or the Binary option is
317
+ enabled and the tag is not specifically excluded. If not extracted the
318
+ value is a reference to a string of the form "Binary data ##### bytes".
319
+
320
+ The code below gives an example of how to handle these return values, as
321
+ well as illustrating the use of other ExifTool functions:
322
+
323
+ use Image::ExifTool;
324
+ my $exifTool = new Image::ExifTool;
325
+ $exifTool->Options(Unknown => 1);
326
+ my $info = $exifTool->ImageInfo('a.jpg');
327
+ my $group = '';
328
+ my $tag;
329
+ foreach $tag ($exifTool->GetFoundTags('Group0')) {
330
+ if ($group ne $exifTool->GetGroup($tag)) {
331
+ $group = $exifTool->GetGroup($tag);
332
+ print "---- $group ----\n";
333
+ }
334
+ my $val = $info->{$tag};
335
+ if (ref $val eq 'SCALAR') {
336
+ if ($$val =~ /^Binary data/) {
337
+ $val = "($$val)";
338
+ } else {
339
+ my $len = length($$val);
340
+ $val = "(Binary data $len bytes)";
341
+ }
342
+ }
343
+ printf("%-32s : %s\n", $exifTool->GetDescription($tag), $val);
344
+ }
345
+
346
+ =item Notes:
347
+
348
+ ExifTool returns all values as byte strings of encoded characters. Perl
349
+ wide characters are not used. See L</CHARACTER ENCODINGS> for details about
350
+ the encodings. By default, most returned strings are encoded in UTF-8. For
351
+ these, Encode::decode_utf8() may be used to convert to a sequence of logical
352
+ Perl characters.
353
+
354
+ As well as tags representing information extracted from the image,
355
+ the following tags generated by ExifTool may be returned:
356
+
357
+ ExifToolVersion - The ExifTool version number.
358
+
359
+ Error - An error message if the image could not be processed.
360
+
361
+ Warning - A warning message if problems were encountered while
362
+ processing the image.
363
+
364
+ =back
365
+
366
+ =head2 Options
367
+
368
+ Get/set ExifTool options. This function can be called to set the default
369
+ options for an ExifTool object. Options set this way are in effect for
370
+ all function calls but may be overridden by options passed as arguments
371
+ to some functions.
372
+
373
+ The default option values may be changed by defining a
374
+ %Image::ExifTool::UserDefined::Options hash. See the ExifTool_config file
375
+ in the full ExifTool distribution for examples.
376
+
377
+ # exclude the 'OwnerName' tag from returned information
378
+ $exifTool->Options(Exclude => 'OwnerName');
379
+
380
+ # only get information in EXIF or MakerNotes groups
381
+ $exifTool->Options(Group0 => ['EXIF', 'MakerNotes']);
382
+
383
+ # ignore information from IFD1
384
+ $exifTool->Options(Group1 => '-IFD1');
385
+
386
+ # sort by groups in family 2, and extract unknown tags
387
+ $exifTool->Options(Sort => 'Group2', Unknown => 1);
388
+
389
+ # reset DateFormat option
390
+ $exifTool->Options(DateFormat => undef);
391
+
392
+ # do not extract duplicate tag names
393
+ $oldSetting = $exifTool->Options(Duplicates => 0);
394
+
395
+ # get current Verbose setting
396
+ $isVerbose = $exifTool->Options('Verbose');
397
+
398
+ =over 4
399
+
400
+ =item Inputs:
401
+
402
+ 0) ExifTool object reference
403
+
404
+ 1) Option parameter name
405
+
406
+ 2) [optional] Option parameter value (may be undef to clear option)
407
+
408
+ 3-N) [optional] Additional parameter/value pairs
409
+
410
+ =item Option Parameters:
411
+
412
+ =over 4
413
+
414
+ =item Binary
415
+
416
+ Flag to extract the value data for all binary tags. Tag values representing
417
+ large binary data blocks (ie. ThumbnailImage) are not necessarily extracted
418
+ unless this option is set or the tag is specifically requested by name.
419
+ Default is 0.
420
+
421
+ =item ByteOrder
422
+
423
+ The byte order for newly created EXIF segments when writing. Note that if
424
+ EXIF information already exists, the existing order is maintained. Valid
425
+ values are 'MM', 'II' and undef. If ByteOrder is not defined (the default),
426
+ then the maker note byte order is used (if they are being copied), otherwise
427
+ big-endian ('MM') order is assumed. This can also be set via the
428
+ L<ExifByteOrder tag|Image::ExifTool::TagNames/Extra Tags>, but the ByteOrder
429
+ option takes precedence if both are set.
430
+
431
+ =item Charset
432
+
433
+ Character set for encoding character strings passed to/from ExifTool with
434
+ code points above U+007F. Default is 'UTF8'. Valid values are listed
435
+ below, case is not significant:
436
+
437
+ Value Alias(es) Description
438
+ ----------- --------------- ----------------------------------
439
+ UTF8 cp65001, UTF-8 UTF-8 characters
440
+ Latin cp1252, Latin1 Windows Latin1 (West European)
441
+ Latin2 cp1250 Windows Latin2 (Central European)
442
+ Cyrillic cp1251, Russian Windows Cyrillic
443
+ Greek cp1253 Windows Greek
444
+ Turkish cp1254 Windows Turkish
445
+ Hebrew cp1255 Windows Hebrew
446
+ Arabic cp1256 Windows Arabic
447
+ Baltic cp1257 Windows Baltic
448
+ Vietnam cp1258 Windows Vietnamese
449
+ Thai cp874 Windows Thai
450
+ MacRoman cp10000, Roman Macintosh Roman
451
+ MacLatin2 cp10029 Macintosh Latin2 (Central Europe)
452
+ MacCyrillic cp10007 Macintosh Cyrillic
453
+ MacGreek cp10006 Macintosh Greek
454
+ MacTurkish cp10081 Macintosh Turkish
455
+ MacRomanian cp10010 Macintosh Romanian
456
+ MacIceland cp10079 Macintosh Icelandic
457
+ MacCroatian cp10082 Macintosh Croatian
458
+
459
+ Note that this option affects some types of information when reading/writing
460
+ the file and other types when getting/setting tag values, so it must be
461
+ defined for both types of access.
462
+
463
+ =item CharsetEXIF
464
+
465
+ Internal encoding to use for stored EXIF "ASCII" string values. Unlike
466
+ other Charset options, CharsetEXIF may also be set to undef to pass through
467
+ all string values without recoding. Default is undef.
468
+
469
+ =item CharsetID3
470
+
471
+ Internal encoding to assume for ID3v1 strings. By the specification ID3v1
472
+ strings should be encoded in ISO 8859-1 (essentially Latin), but some
473
+ applications may use local encoding instead. Default is 'Latin'.
474
+
475
+ =item CharsetIPTC
476
+
477
+ Fallback internal IPTC character set to assume if IPTC information contains
478
+ no CodedCharacterSet tag. Possible values are the same as the L</Charset>
479
+ option. Default is 'Latin'.
480
+
481
+ Note that this option affects some types of information when reading/writing
482
+ the file and other types when getting/setting tag values, so it must be
483
+ defined for both types of access.
484
+
485
+ =item CharsetPhotoshop
486
+
487
+ Internal encoding to assume for Photoshop IRB resource names. Default is
488
+ 'Latin'.
489
+
490
+ =item CharsetQuickTime
491
+
492
+ Internal encoding to assume for QuickTime strings stored with an unspecified
493
+ encoding. Default is 'MacRoman'.
494
+
495
+ =item Compact
496
+
497
+ Flag to write compact output. Default is 0. The XMP specification suggests
498
+ that the data be padded with blanks to allow in-place editing. With this
499
+ flag set the 2kB of padding is not written. Note that this only effects
500
+ embedded XMP since padding is never written for stand-alone XMP files.
501
+
502
+ =item Composite
503
+
504
+ Flag to generate Composite tags when extracting information. Default is 1.
505
+
506
+ =item Compress
507
+
508
+ Flag to write new values in compressed format if possible. Has no effect
509
+ unless Compress::Zlib is installed. Default is 0.
510
+
511
+ =item CoordFormat
512
+
513
+ Format for printing GPS coordinates. This is a printf format string with
514
+ specifiers for degrees, minutes and seconds in that order, however minutes
515
+ and seconds may be omitted. If the hemisphere is known, a reference
516
+ direction (N, S, E or W) is appended to each printed coordinate, but adding
517
+ a C<+> to the format specifier (ie. C<%+.6f>) prints a signed coordinate
518
+ instead. For example, the following table gives the output for the same
519
+ coordinate using various formats:
520
+
521
+ CoordFormat Example Output
522
+ ------------------- ------------------
523
+ q{%d deg %d' %.2f"} 54 deg 59' 22.80" (default for reading)
524
+ q{%d %d %.8f} 54 59 22.80000000 (default for copying)
525
+ q{%d deg %.4f min} 54 deg 59.3800 min
526
+ q{%.6f degrees} 54.989667 degrees
527
+
528
+ Note: To avoid loss of precision, the default coordinate format is
529
+ different when copying tags with L</SetNewValuesFromFile>.
530
+
531
+ =item DateFormat
532
+
533
+ Format for printing date/time values. See C<strftime> in the L<POSIX>
534
+ package for details about the format string. The default is similar to a
535
+ format of "%Y:%m:%d %H:%M:%S". If date can not be converted, value is left
536
+ unchanged unless the StrictDate option is set. Timezones are ignored.
537
+
538
+ =item Duplicates
539
+
540
+ Flag to return values from tags with duplicate names when extracting
541
+ information. Default is 1.
542
+
543
+ =item Escape
544
+
545
+ Escape special characters in extracted values for HTML or XML. Also
546
+ unescapes HTML or XML character entities in input values passed to
547
+ L</SetNewValue>. Valid settings are 'HTML', 'XML' or undef. Default is
548
+ undef.
549
+
550
+ =item Exclude
551
+
552
+ Exclude specified tags from tags extracted from an image. The option value
553
+ is either a tag name or reference to a list of tag names to exclude. The
554
+ case of tag names is not significant. This option is ignored for
555
+ specifically requested tags. Tags may also be excluded by preceding their
556
+ name with a '-' in the arguments to L</ImageInfo>.
557
+
558
+ =item ExtractEmbedded
559
+
560
+ Flag to extract information from embedded documents in EPS files, embedded
561
+ EPS information and JPEG and Jpeg2000 images in PDF files, embedded MPF
562
+ images in JPEG and MPO files, streaming metadata in AVCHD videos, and the
563
+ resource fork of Mac OS files. Default is 0.
564
+
565
+ =item FastScan
566
+
567
+ Flag to increase speed of extracting information from JPEG images. With
568
+ this option set to 1, ExifTool will not scan to the end of a JPEG image to
569
+ check for an AFCP, CanonVRD, FotoStation, PhotoMechanic, MIE or PreviewImage
570
+ trailer. This also stops the parsing after the first comment in GIF images,
571
+ and at the audio/video data with RIFF-format files (AVI, WAV, etc), so any
572
+ trailing metadata (ie. XMP written by some utilities) may be missed. When
573
+ combined with the ScanForXMP option, prevents scanning for XMP in recognized
574
+ file types. With a value of 2, ExifTool will also avoid extracting any EXIF
575
+ MakerNote information. Default is 0.
576
+
577
+ =item FixBase
578
+
579
+ Fix maker notes base offset. A common problem with image editing software
580
+ is that offsets in the maker notes are not adjusted properly when the file
581
+ is modified. This may cause the wrong values to be extracted for some maker
582
+ note entries when reading the edited file. FixBase specifies an integer
583
+ value to be added to the maker notes base offset. It may also be set to the
584
+ empty string ('') for ExifTool will take its best guess at the correct base,
585
+ or undef (the default) for no base adjustment.
586
+
587
+ =item GeoMaxIntSecs
588
+
589
+ Maximum interpolation time in seconds for geotagging. Geotagging is treated
590
+ as an extrapolation if the Geotime value lies between two fixes in the same
591
+ track which are separated by a number of seconds greater than this.
592
+ Otherwise, the coordinates are calculated as a linear interpolation between
593
+ the nearest fixes on either side of the Geotime value. Set to 0 to disable
594
+ interpolation and use the coordinates of the nearest fix instead (provided
595
+ it is within GeoMaxExtSecs, otherwise geotagging fails). Default is 1800.
596
+
597
+ =item GeoMaxExtSecs
598
+
599
+ Maximum extrapolation time in seconds for geotagging. Geotagging fails if
600
+ the Geotime value lies outside a GPS track by a number of seconds greater
601
+ than this. Otherwise, the coordinates of the nearest fix are taken.
602
+ Default is 1800.
603
+
604
+ =item GeoMaxHDOP
605
+
606
+ Maximum Horizontal (2D) Dilution Of Precision for geotagging. GPS fixes are
607
+ ignored if the HDOP is greater than this. Default is undef.
608
+
609
+ =item GeoMaxPDOP
610
+
611
+ Maximum Position (3D) Dilution Of Precision for geotagging. GPS fixes are
612
+ ignored if the PDOP is greater than this. Default is undef.
613
+
614
+ =item GeoMinSats
615
+
616
+ Minimum number of satellites for geotagging. GPS fixes are ignored if the
617
+ number of acquired satellites is less than this. Default is undef.
618
+
619
+ =item GoNoInterpolate
620
+
621
+ Disable interpolation for geotagging. With this flag set to 1, geotagging
622
+ uses the nearest fix instead of interpolating between fixes. Default is 0.
623
+
624
+ =item GlobalTimeShift
625
+
626
+ Time shift to apply to all extracted date/time PrintConv values. Does not
627
+ affect ValueConv values. Value is a date/time shift string (see
628
+ L<Image::ExifTool::Shift.pl|Image::ExifTool::Shift.pl>), with a leading '-'
629
+ for negative shifts. Default is undef.
630
+
631
+ =item Group#
632
+
633
+ Extract tags only for specified groups in family # (Group0 assumed if #
634
+ not given). The option value may be a single group name or a reference
635
+ to a list of groups. Case is significant in group names. Specify a group
636
+ to be excluded by preceding group name with a '-'. See L</GetGroup> for a
637
+ description of group families, and L</GetAllGroups [static]> for lists of
638
+ group names.
639
+
640
+ =item HtmlDump
641
+
642
+ Dump information in hex to dynamic HTML web page. The value may be 0-3 for
643
+ increasingly larger limits on the maximum block size. Default is 0. Output
644
+ goes to the file specified by the TextOut option (\*STDOUT by default).
645
+
646
+ =item HtmlDumpBase
647
+
648
+ Base for HTML dump offsets. If not defined, the EXIF/TIFF base offset is
649
+ used. Set to 0 for absolute offsets. Default is undef.
650
+
651
+ =item IgnoreMinorErrors
652
+
653
+ Flag to ignore minor errors. Causes minor errors to be downgraded to
654
+ warnings, and minor warnings to be ignored. This option is provided mainly
655
+ to allow writing of files when minor errors occur, but by ignoring some
656
+ minor warnings the behaviour of ExifTool may be changed to allow some
657
+ questionable operations to proceed (such as extracting thumbnail and preview
658
+ images even if they don't have a recognizable header). Minor errors and
659
+ warnings are denoted by "[minor]" at the start of the message, or "[Minor]"
660
+ (with a capital "M") for warnings that affect processing when ignored.
661
+
662
+ =item Lang
663
+
664
+ Localized language for exiftool tag descriptions, etc. Available languages
665
+ are given by the Image::ExifTool::Lang module names (ie. 'fr', 'zh_cn'). If
666
+ the specified language isn't available, the option is not changed. May be
667
+ set to undef to select the built-in default language. Default is 'en'.
668
+
669
+ =item LargeFileSupport
670
+
671
+ Flag to indicate that 64-bit file offsets are supported on this system.
672
+ Default is 0.
673
+
674
+ =item List
675
+
676
+ Flag to extract lists of PrintConv values into arrays instead of joining
677
+ them into a string of values. The L</ListSep> option specifies the
678
+ separator used when combining values. Default is 0.
679
+
680
+ =item ListSep
681
+
682
+ Separator string used to join lists of PrintConv values when L</List> option
683
+ is not set. Default is ', '.
684
+
685
+ =item ListSplit
686
+
687
+ Regular expression used to split values of list-type tags into individual
688
+ items when writing. (ie. use ',\\s*' to split a comma-separated list.)
689
+ Default is undef.
690
+
691
+ =item MakerNotes
692
+
693
+ Option to extract MakerNotes and other writable subdirectories (such as
694
+ PrintIM) as a data block. Normally when the MakerNotes are extracted they
695
+ are rebuilt to include data outside the boundaries of the original maker
696
+ note data block, but a value of 2 disables this feature. Possible values
697
+ are:
698
+
699
+ 0 - Do not extract writable subdirectories (default)
700
+ 1 - Extract and rebuild maker notes into self-contained block
701
+ 2 - Extract without rebuilding maker notes
702
+
703
+ =item MissingTagValue
704
+
705
+ Value for missing tags in expressions evaluated by L</SetNewValuesFromFile>.
706
+ If not set, a minor error is issued for missing values, or the value is set
707
+ to '' if L</IgnoreMinorErrors> is set. Default is undef.
708
+
709
+ =item Password
710
+
711
+ Password for reading/writing password-protected PDF documents. Ignored if a
712
+ password is not required. Character encoding of the password is determined
713
+ by the value of the Charset option at processing time. Default is undef.
714
+
715
+ =item PrintConv
716
+
717
+ Flag to enable automatic print conversion. Also enables inverse
718
+ print conversion for writing. Default is 1.
719
+
720
+ =item QuickTimeUTC
721
+
722
+ Flag set to assume that QuickTime date/time values are stored as UTC,
723
+ causing conversion to local time when they are extracted. According to the
724
+ QuickTime specification date/time values should be UTC, but many digital
725
+ cameras store local time instead (presumably because they don't know the
726
+ time zone), so the default is 0.
727
+
728
+ =item RequestAll
729
+
730
+ Flag to request all tags to be extracted. This causes some tags to be
731
+ generated which normally would not be unless specifically requested (by
732
+ passing the tag name to ImageInfo or ExtractInfo). Default is 0.
733
+
734
+ =item ScanForXMP
735
+
736
+ Flag for scan all files (even unrecognized formats) for XMP information
737
+ unless XMP was already found in the file. When combined with the FastScan
738
+ option, only unrecognized file types are scanned for XMP. Default is 0.
739
+
740
+ =item Sort
741
+
742
+ Specifies order to sort tags in returned list:
743
+
744
+ Input - Sort in same order as input tag arguments (default)
745
+ File - Sort in order that tags were found in the file
746
+ Tag - Sort alphabetically by tag name
747
+ Descr - Sort by tag description (for current Lang setting)
748
+ Group# - Sort by tag group, where # is zero or more family
749
+ numbers separated by colons. If # is not specified,
750
+ Group0 is assumed. See GetGroup for a description
751
+ of group families.
752
+
753
+ =item Sort2
754
+
755
+ Secondary sort order used for tags within each group when Sort is 'Group':
756
+
757
+ File - Sort in order tags were found in the file (default)
758
+ Tag - Sort alphabetically by tag name
759
+ Descr - Sort by tag description (for current Lang setting)
760
+
761
+ =item StrictDate
762
+
763
+ Flag to return undefined value for any date which can't be converted when
764
+ the DateFormat option is used. Default is undef.
765
+
766
+ =item Struct
767
+
768
+ Flag to return XMP structures as hash references instead of flattening into
769
+ individual tags. Has no effect when writing since both flattened and
770
+ structured tags may always be written. Possible values are:
771
+
772
+ undef - Same as 0 for reading, 2 for copying
773
+ 0 - Read/copy flattened tags
774
+ 1 - Read/copy structured tags
775
+ 2 - Read/copy both flattened and structured tags, but flag
776
+ flattened tags as 'unsafe' for copying
777
+
778
+ =item TextOut
779
+
780
+ Output file reference for Verbose and HtmlDump options. Default is
781
+ \*STDOUT.
782
+
783
+ =item Unknown
784
+
785
+ Flag to get the values of unknown tags. If set to 1, unknown tags are
786
+ extracted from EXIF (or other tagged-format) directories. If set to 2,
787
+ unknown tags are also extracted from binary data blocks. Default is 0.
788
+
789
+ =item Verbose
790
+
791
+ Print verbose messages to file specified by TextOut option. Value may be
792
+ from 0 to 5 for increasingly verbose messages. Default is 0. With the
793
+ verbose option set, messages are printed to the console as the file is
794
+ parsed. Level 1 prints the tag names and raw values. Level 2 adds more
795
+ details about the tags. Level 3 adds a hex dump of the tag data, but with
796
+ limits on the number of bytes dumped. Levels 4 and 5 remove the dump limit
797
+ on tag values and JPEG segment data respectively.
798
+
799
+ =item WriteMode
800
+
801
+ Set tag write/create mode. Value is a string of one or more characters from
802
+ list below. Default is 'wcg'.
803
+
804
+ w - Write existing tags
805
+ c - Create new tags
806
+ g - create new Groups as necessary
807
+
808
+ The level of the group is the SubDirectory level in the metadata structure.
809
+ For XMP or IPTC this is the full XMP/IPTC block (the family 0 group), but
810
+ for EXIF this is the individual IFD (the family 1 group).
811
+
812
+ =item XMPAutoConv
813
+
814
+ Flag to enable automatic conversion for unknown XMP tags with values that
815
+ look like rational numbers or dates. Default is 1.
816
+
817
+ =back
818
+
819
+ =item Return Values:
820
+
821
+ The original value of the last specified parameter.
822
+
823
+ =back
824
+
825
+ =head2 ClearOptions
826
+
827
+ Reset all options to their default values. Loads user-defined default
828
+ option values from the %Image::ExifTool::UserDefined::Options hash in the
829
+ .ExifTool_config file if it exists.
830
+
831
+ $exifTool->ClearOptions();
832
+
833
+ =over 4
834
+
835
+ =item Inputs:
836
+
837
+ 0) ExifTool object reference
838
+
839
+ =item Return Values:
840
+
841
+ (none)
842
+
843
+ =back
844
+
845
+ =head2 ExtractInfo
846
+
847
+ Extract all meta information from an image.
848
+
849
+ $success = $exifTool->ExtractInfo('image.jpg', \%options);
850
+
851
+ =over 4
852
+
853
+ =item Inputs:
854
+
855
+ L</ExtractInfo> takes exactly the same arguments as L</ImageInfo>. The only
856
+ difference is that a list of tag keys is not returned if an ARRAY reference
857
+ is given. The following options are effective in the call to
858
+ L</ExtractInfo>:
859
+
860
+ Binary, Charset, CharsetEXIF, CharsetID3, CharsetIPTC, CharsetPhotoshop,
861
+ CharsetQuickTime, Composite, ExtractEmbedded, FastScan, FixBase, HtmlDump,
862
+ HtmlDumpBase, IgnoreMinorErrors, Lang, LargeFileSupport, MakerNotes,
863
+ ScanForXMP, Struct, TextOut, Unknown and Verbose.
864
+
865
+ =item Return Value:
866
+
867
+ 1 if this was a recognized file format, 0 otherwise (and 'Error' tag set).
868
+
869
+ =back
870
+
871
+ =head2 GetInfo
872
+
873
+ L</GetInfo> is called to return meta information after it has been extracted
874
+ from the image by a previous call to L</ExtractInfo> or L</ImageInfo>. This
875
+ function may be called repeatedly after a single call to L</ExtractInfo> or
876
+ L</ImageInfo>.
877
+
878
+ # get image width and height only
879
+ $info = $exifTool->GetInfo('ImageWidth', 'ImageHeight');
880
+
881
+ # get information for all tags in list (list updated with tags found)
882
+ $info = $exifTool->GetInfo(\@ioTagList);
883
+
884
+ # get all information in Author or Location groups
885
+ $info = $exifTool->GetInfo({Group2 => ['Author', 'Location']});
886
+
887
+ =over 4
888
+
889
+ =item Inputs:
890
+
891
+ Inputs are the same as L</ExtractInfo> and L</ImageInfo> except that an
892
+ image can not be specified. Options in effect are:
893
+
894
+ Charset, CoordFormat, DateFormat, Duplicates, Escape, Exclude, Group#,
895
+ GlobalTimeShift, Lang, List, ListSep, PrintConv, Sort (if a tag list
896
+ reference is given) and StrictDate.
897
+
898
+ =item Return Value:
899
+
900
+ Reference to information hash, the same as with L</ImageInfo>.
901
+
902
+ =back
903
+
904
+ =head2 WriteInfo
905
+
906
+ Write meta information to a file. The specified source file is rewritten to
907
+ the same-type destination file with new information as specified by previous
908
+ calls to L</SetNewValue>. The necessary segments and/or directories are
909
+ created in the destination file as required to store the specified
910
+ information. May be called repeatedly to write the same information to
911
+ additional files without the need to call L</SetNewValue> again.
912
+
913
+ # add information to a source file, writing output to new file
914
+ $exifTool->WriteInfo($srcfile, $dstfile);
915
+
916
+ # create XMP data file from scratch
917
+ $exifTool->WriteInfo(undef, $dstfile, 'XMP');
918
+
919
+ # overwrite file (you do have backups, right?)
920
+ $exifTool->WriteInfo($srcfile);
921
+
922
+ =over 4
923
+
924
+ =item Inputs:
925
+
926
+ 0) ExifTool object reference
927
+
928
+ 1) Source file name, file reference, scalar reference, or undef to create a
929
+ file from scratch. A reference to a
930
+ L<File::RandomAccess|File::RandomAccess> object is also allowed as a source,
931
+ but in this case the destination is not optional.
932
+
933
+ 2) [optional] Destination file name, file reference, scalar reference, or
934
+ undef to overwrite the original file. May be '-' to write to stdout.
935
+
936
+ 3) [optional] Destination file type.
937
+
938
+ =item Return Value:
939
+
940
+ 1 if file was written OK, 2 if file was written but no changes made, 0 on
941
+ file write error.
942
+
943
+ If an error code is returned, an Error tag is set and GetValue('Error') can
944
+ be called to obtain the error description. A Warning tag may be set even if
945
+ this routine is successful. Calling WriteInfo clears any pre-existing Error
946
+ and Warning tags.
947
+
948
+ $errorMessage = $exifTool->GetValue('Error');
949
+ $warningMessage = $exifTool->GetValue('Warning');
950
+
951
+ =item Notes:
952
+
953
+ The source file name may be undefined to create a file from scratch
954
+ (currently only XMP, MIE, ICC, VRD and EXIF files can be created in this way
955
+ -- see L</CanCreate> for details). If undefined, the destination file type
956
+ is required unless the type can be determined from the destination file
957
+ name.
958
+
959
+ If a destination file name is given, the specified file must not exist
960
+ because an existing destination file will not be overwritten. The
961
+ destination file name may be undefined to overwrite the original file (make
962
+ sure you have backups!). In this case, if a source file name is provided, a
963
+ temporary file is created and renamed to replace the source file if no
964
+ errors occurred while writing. Otherwise, if a source file reference or
965
+ scalar reference is used, the image is first written to memory then copied
966
+ back to replace the original if there were no errors.
967
+
968
+ The destination file type is only used if the source file is undefined.
969
+
970
+ On Mac OS systems, the file resource fork is preserved if this routine is
971
+ called with a source file name.
972
+
973
+ =back
974
+
975
+ The following ExifTool options are effective in the call to L</WriteInfo>:
976
+
977
+ ByteOrder, Charset, CharsetEXIF, CharsetIPTC, Compact, Compress, FixBase,
978
+ IgnoreMinorErrors and Verbose.
979
+
980
+ =head2 GetTagList
981
+
982
+ Get a sorted list of tags from the specified information hash or tag list.
983
+
984
+ @tags = $exifTool->GetTagList($info, 'Group0');
985
+
986
+ =over 4
987
+
988
+ =item Inputs:
989
+
990
+ 0) ExifTool object reference
991
+
992
+ 1) [optional] Information hash reference or tag list reference
993
+
994
+ 2) [optional] Sort order ('Input', 'File', 'Tag', 'Descr' or 'Group#')
995
+
996
+ 3) [optional] Secondary sort order ('File', 'Tag' or 'Descr')
997
+
998
+ If the information hash or tag list reference is not provided, then the list
999
+ of found tags from the last call to L</ImageInfo>, L</ExtractInfo> or
1000
+ L</GetInfo> is used instead, and the result is the same as if
1001
+ L</GetFoundTags> was called. If sort order is not specified, the sort order
1002
+ is taken from the current options settings.
1003
+
1004
+ =item Return Values:
1005
+
1006
+ A list of tag keys in the specified order.
1007
+
1008
+ =back
1009
+
1010
+ =head2 GetFoundTags
1011
+
1012
+ Get list of found tags in specified sort order. The found tags are the tags
1013
+ for the information obtained from the most recent call to L</ImageInfo>,
1014
+ L</ExtractInfo> or L</GetInfo> for this object.
1015
+
1016
+ @tags = $exifTool->GetFoundTags('File');
1017
+
1018
+ =over 4
1019
+
1020
+ =item Inputs:
1021
+
1022
+ 0) ExifTool object reference
1023
+
1024
+ 1) [optional] Sort order ('Input', 'File', 'Tag', 'Descr' or 'Group#')
1025
+
1026
+ 2) [optional] Secondary sort order ('File', 'Tag' or 'Descr')
1027
+
1028
+ If sort order is not specified, the sort order from the ExifTool options is
1029
+ used.
1030
+
1031
+ =item Return Values:
1032
+
1033
+ A list of tag keys in the specified order.
1034
+
1035
+ =back
1036
+
1037
+ =head2 GetRequestedTags
1038
+
1039
+ Get list of requested tags. These are the tags that were specified in the
1040
+ arguments of the most recent call to L</ImageInfo>, L</ExtractInfo> or
1041
+ L</GetInfo>, including tags specified via a tag list reference. Shortcut
1042
+ tags are expanded in the list.
1043
+
1044
+ @tags = $exifTool->GetRequestedTags();
1045
+
1046
+ =over 4
1047
+
1048
+ =item Inputs:
1049
+
1050
+ (none)
1051
+
1052
+ =item Return Values:
1053
+
1054
+ List of requested tag keys in the same order that the tags were specified.
1055
+ Note that this list will be empty if tags were not specifically requested
1056
+ (ie. If extracting all tags).
1057
+
1058
+ =back
1059
+
1060
+ =head2 GetValue
1061
+
1062
+ Get the value of a specified tag. The returned value is either the
1063
+ human-readable (PrintConv) value, the converted machine-readable (ValueConv)
1064
+ value, or the original raw (Raw) value. If the value type is not specified,
1065
+ the PrintConv value is returned if the PrintConv option is set, otherwise
1066
+ the ValueConv value is returned. The PrintConv values are same as the
1067
+ values returned by L</ImageInfo> and L</GetInfo> in the tag/value hash
1068
+ unless the PrintConv option is disabled.
1069
+
1070
+ Tags which represent lists of multiple values (as may happen with 'Keywords'
1071
+ for example) are handled specially. In scalar context, the returned
1072
+ PrintConv value for these tags is either a string of values or a list
1073
+ reference (depending on the List option setting), and the ValueConv value is
1074
+ always a list reference. But in list context, L</GetValue> always returns
1075
+ the list itself.
1076
+
1077
+ Note that L</GetValue> requires a case-sensitive tag key as an argument. To
1078
+ retrieve tag information based on a case-insensitive tag name (with an
1079
+ optional group specifier), use L</GetInfo> instead.
1080
+
1081
+ # PrintConv example
1082
+ my $val = $exifTool->GetValue($tag);
1083
+ if (ref $val eq 'SCALAR') {
1084
+ print "$tag = (unprintable value)\n";
1085
+ } else {
1086
+ print "$tag = $val\n";
1087
+ }
1088
+
1089
+ # ValueConv examples
1090
+ my $val = $exifTool->GetValue($tag, 'ValueConv');
1091
+ if (ref $val eq 'ARRAY') {
1092
+ print "$tag is a list of values\n";
1093
+ } elsif (ref $val eq 'SCALAR') {
1094
+ print "$tag represents binary data\n";
1095
+ } else {
1096
+ print "$tag is a simple scalar\n";
1097
+ }
1098
+
1099
+ my @keywords = $exifTool->GetValue('Keywords', 'ValueConv');
1100
+
1101
+ The following options are in effect when L</GetValue> is called:
1102
+
1103
+ Charset, CoordFormat, DateFormat, Escape, GlobalTimeShift, Lang, List,
1104
+ ListSep, PrintConv and StrictDate.
1105
+
1106
+ =over 4
1107
+
1108
+ =item Inputs:
1109
+
1110
+ 0) ExifTool object reference
1111
+
1112
+ 1) Tag key
1113
+
1114
+ 2) [optional] Value type: 'PrintConv', 'ValueConv', 'Both', 'Raw' or
1115
+ 'Rational'
1116
+
1117
+ The default value type is 'PrintConv' if the PrintConv option is set,
1118
+ otherwise the default is 'ValueConv'. A value type of 'Both' returns both
1119
+ ValueConv and PrintConv values as a list. 'Rational' returns the raw
1120
+ rational value as a string fraction for rational types.
1121
+
1122
+ =item Return Values:
1123
+
1124
+ The value of the specified tag. If the tag represents a list of values and
1125
+ the List option is disabled then PrintConv returns a string of values,
1126
+ otherwise a reference to the list is returned in scalar context. The list
1127
+ itself is returned in list context. Values may also be scalar references to
1128
+ binary data, or hash references if the L</Struct> option is set.
1129
+
1130
+ Note: It is possible for L</GetValue> to return an undefined ValueConv or
1131
+ PrintConv value (or an empty list in list context) even if the tag exists,
1132
+ since it is possible for these conversions to yield undefined values. And
1133
+ the Rational value will be undefined for any non-rational tag. The Raw
1134
+ value should always exist if the tag exists.
1135
+
1136
+ =back
1137
+
1138
+ =head2 SetNewValue
1139
+
1140
+ Set the new value for a tag. The routine may be called multiple times to
1141
+ set the values of many tags before using L</WriteInfo> to write the new
1142
+ values to an image.
1143
+
1144
+ For list-type tags (like Keywords), either call repeatedly with the same tag
1145
+ name for each value, or call with a reference to the list of values.
1146
+
1147
+ # set a new value for a tag (errors go to STDERR)
1148
+ $success = $exifTool->SetNewValue($tag, $value);
1149
+
1150
+ # set a new value and capture any error message
1151
+ ($success, $errStr) = $exifTool->SetNewValue($tag, $value);
1152
+
1153
+ # delete information for specified tag if it exists in image
1154
+ # (also resets AddValue and DelValue options for this tag)
1155
+ $exifTool->SetNewValue($tag);
1156
+
1157
+ # reset all values from previous calls to SetNewValue()
1158
+ $exifTool->SetNewValue();
1159
+
1160
+ # delete a specific keyword
1161
+ $exifTool->SetNewValue('Keywords', $word, DelValue => 1);
1162
+
1163
+ # set keywords (a list-type tag) with two new values
1164
+ $exifTool->SetNewValue(Keywords => 'word1');
1165
+ $exifTool->SetNewValue(Keywords => 'word2');
1166
+ # equivalent, but set both in one call using an array reference
1167
+ $exifTool->SetNewValue(Keywords => ['word1','word2']);
1168
+
1169
+ # add a keyword without replacing existing keywords in the file
1170
+ $exifTool->SetNewValue(Keywords => $word, AddValue => 1);
1171
+
1172
+ # set a tag in a specific group
1173
+ $exifTool->SetNewValue(Headline => $val, Group => 'XMP');
1174
+ $exifTool->SetNewValue('XMP:Headline' => $val); # (equivalent)
1175
+
1176
+ # shift original date/time back by 2.5 hours
1177
+ $exifTool->SetNewValue(DateTimeOriginal => '2:30', Shift => -1);
1178
+
1179
+ # write a tag only if it had a specific value
1180
+ # (the order of the following calls is not significant)
1181
+ $exifTool->SetNewValue(Title => $oldVal, DelValue => 1);
1182
+ $exifTool->SetNewValue(Title => $newVal);
1183
+
1184
+ # write tag by numerical value
1185
+ $exifTool->SetNewValue(Orientation => 6, Type => 'ValueConv');
1186
+ $exifTool->SetNewValue('Orientation#' => 6); # (equivalent)
1187
+
1188
+ # delete all but EXIF tags
1189
+ $exifTool->SetNewValue('*'); # delete all...
1190
+ $exifTool->SetNewValue('EXIF:*', undef, Replace => 2); # ...but EXIF
1191
+
1192
+ # write structured information as a HASH reference
1193
+ $exifTool->SetNewValue('XMP:Flash' => {
1194
+ mode => 'on',
1195
+ fired => 'true',
1196
+ return => 'not'
1197
+ });
1198
+
1199
+ # write structured information as a serialized string
1200
+ $exifTool->SetNewValue('XMP:Flash'=>'{mode=on,fired=true,return=not}');
1201
+
1202
+ (See L<http://owl.phy.queensu.ca/~phil/exiftool/struct.html#Serialize> for
1203
+ a description of the structure serialization technique.)
1204
+
1205
+ =over 4
1206
+
1207
+ =item Inputs:
1208
+
1209
+ 0) ExifTool object reference
1210
+
1211
+ 1) [optional] Tag key or tag name, or undef to clear all new values. The
1212
+ tag name may be prefixed by group name, separated by a colon (ie.
1213
+ 'EXIF:Artist'), which is equivalent to using a Group option argument. Also,
1214
+ a '#' may be appended to the tag name (ie. 'EXIF:Orientation#'), with the
1215
+ same effect as setting Type to 'ValueConv'. Wildcards ('*' and '?') may be
1216
+ used in the tag name to assign multiple tags simultaneously. A tag name of
1217
+ '*' is special when deleting information, and will delete an entire group
1218
+ even if some individual tags in the group are not writable. Use
1219
+ L</GetDeleteGroups> to get a list of deletable group names, and see
1220
+ L<Image::ExifTool::TagNames|Image::ExifTool::TagNames> for a complete list
1221
+ of tag names.
1222
+
1223
+ 2) [optional] New value for tag. Undefined to delete tag from file. May be
1224
+ a scalar, scalar reference, list reference to set a list of values, or hash
1225
+ reference for a structure. Integer values may be specified as a hexadecimal
1226
+ string (with a leading '0x'), and simple rational values may be specified in
1227
+ fractional form (ie. '4/10'). Structure tags may be specified either as a
1228
+ hash reference or a serialized string (see the last two examples above).
1229
+
1230
+ 3-N) [optional] SetNewValue option/value pairs (see below).
1231
+
1232
+ =item SetNewValue Options:
1233
+
1234
+ =over 4
1235
+
1236
+ =item AddValue
1237
+
1238
+ Specifies that the value be added to an existing list in a file rather than
1239
+ overwriting. Valid settings are 0 (overwrite any existing tag value), 1
1240
+ (add to an existing list and warn for non-list tags) or 2 (add to existing
1241
+ list and overwrite non-list tags). Default is 0.
1242
+
1243
+ =item DelValue
1244
+
1245
+ Delete existing tag from a file if it has the specified value. Option
1246
+ values are 0 or 1. Default is 0.
1247
+
1248
+ =item EditGroup
1249
+
1250
+ Create tags in existing groups only. Don't create new group. Valid values
1251
+ are 0 and 1. Effectively removes the 'g' from the ExifTool WriteMode option
1252
+ for this tag only. Default is 0.
1253
+
1254
+ =item EditOnly
1255
+
1256
+ Edit tag only if it already exists. Don't create new tag. Valid values are
1257
+ 0 and 1. Effectively removes the 'c' from the ExifTool WriteMode option for
1258
+ this tag only. Default is 0.
1259
+
1260
+ =item Group
1261
+
1262
+ Specifies group name where tag should be written. If not specified, tag is
1263
+ written to highest priority group as specified by L</SetNewGroups>. Any
1264
+ family 0 or 1 group name may be used. Case is not significant.
1265
+
1266
+ =item NoFlat
1267
+
1268
+ Treat flattened tags as 'unsafe'.
1269
+
1270
+ =item NoShortcut
1271
+
1272
+ Disables default behaviour of looking up tag in shortcuts if not found
1273
+ otherwise.
1274
+
1275
+ =item Protected
1276
+
1277
+ Bit mask for tag protection levels to write. Bit 0x01 allows writing of
1278
+ 'unsafe' tags (ie. tags not copied automatically via
1279
+ L</SetNewValuesFromFile>). Bit 0x02 allows writing of 'protected' tags, and
1280
+ should only be used internally by ExifTool. See
1281
+ L<Image::ExifTool::TagNames|Image::ExifTool::TagNames>, for a list of tag
1282
+ names indicating 'unsafe' and 'protected' tags. Default is 0.
1283
+
1284
+ =item ProtectSaved
1285
+
1286
+ Avoid setting new values which were saved after the Nth call to
1287
+ L</SaveNewValues>. Has no effect on unsaved values, or values saved before
1288
+ Nth call. Option value is N. Default is undef.
1289
+
1290
+ =item Replace
1291
+
1292
+ Flag to replace the previous new values for this tag (ie. replace the values
1293
+ set in previous calls to L</SetNewValue>). This option is most commonly
1294
+ used to replace previously-set new values for list-type tags. Valid values
1295
+ are 0 (set new value normally -- adds to new values for list-type tags), 1
1296
+ (reset previous new values for this tag and replace with the specified new
1297
+ value) or 2 (reset previous new values only).
1298
+
1299
+ =item Shift
1300
+
1301
+ Shift the tag by the specified value. Currently only date/time tags and
1302
+ tags with numerical values may be shifted. Undefined for no shift, 1 for a
1303
+ positive shift, or -1 for a negative shift. A value of 0 causes a positive
1304
+ shift to be applied if the tag is shiftable and AddValue is set, or a
1305
+ negative shift for date/time tags only if DelValue is set. Default is undef.
1306
+ See L<Image::ExifTool::Shift.pl|Image::ExifTool::Shift.pl> for more
1307
+ information.
1308
+
1309
+ =item Type
1310
+
1311
+ The type of value being set. Valid values are PrintConv, ValueConv or Raw.
1312
+ Default is PrintConv if the L</PrintConv> Option is set, otherwise
1313
+ ValueConv.
1314
+
1315
+ =back
1316
+
1317
+ =item Return Values:
1318
+
1319
+ In scalar context, returns the number of tags set and error messages are
1320
+ printed to STDERR. In list context, returns the number of tags set, and the
1321
+ error string (which is undefined if there was no error).
1322
+
1323
+ =item Notes:
1324
+
1325
+ When deleting groups of tags, the Replace option may be used as in the last
1326
+ example above to exclude specific groups from a mass delete. However, this
1327
+ technique may not be used to exclude individual tags. Instead, use
1328
+ L</SetNewValuesFromFile> to recover the values of individual tags after
1329
+ deleting a group.
1330
+
1331
+ When deleting all tags from a JPEG image, the APP14 "Adobe" information is
1332
+ not deleted by default because doing so may affect the appearance of the
1333
+ image. However, this information may be deleted by specifying it
1334
+ explicitly, either by group (with 'Adobe:*') or as a block (with 'Adobe').
1335
+
1336
+ =back
1337
+
1338
+ The following ExifTool options are effective in the call to L</SetNewValue>:
1339
+
1340
+ Charset, Escape, IgnoreMinorErrors, Lang, ListSep, ListSplit, PrintConv,
1341
+ Verbose and WriteMode.
1342
+
1343
+ =head2 SetNewValuesFromFile
1344
+
1345
+ A very powerful routine that sets new values for tags from information found
1346
+ in a specified file.
1347
+
1348
+ # set new values from all information in a file...
1349
+ my $info = $exifTool->SetNewValuesFromFile($srcFile);
1350
+ # ...then write these values to another image
1351
+ my $result = $exifTool->WriteInfo($file2, $outFile);
1352
+
1353
+ # set all new values, preserving original groups
1354
+ $exifTool->SetNewValuesFromFile($srcFile, '*:*');
1355
+
1356
+ # set specific information
1357
+ $exifTool->SetNewValuesFromFile($srcFile, @tags);
1358
+
1359
+ # set new value from a different tag in specific group
1360
+ $exifTool->SetNewValuesFromFile($fp, 'IPTC:Keywords>XMP-dc:Subject');
1361
+
1362
+ # add all IPTC keywords to XMP subject list
1363
+ $exifTool->SetNewValuesFromFile($fp, 'IPTC:Keywords+>XMP-dc:Subject');
1364
+
1365
+ # set new value from an expression involving other tags
1366
+ $exifTool->SetNewValuesFromFile($file,
1367
+ 'Comment<ISO=$ISO Aperture=$aperture Exposure=$shutterSpeed');
1368
+
1369
+ # set keywords list from the values of multiple tags
1370
+ $exifTool->SetNewValuesFromFile($file, { Replace => 0 },
1371
+ 'keywords<xmp:subject', 'keywords<filename');
1372
+
1373
+ # copy all EXIF information, preserving the original IFD
1374
+ # (without '>*.*' tags would be copied to the preferred EXIF IFD)
1375
+ $exifTool->SetNewValuesFromFile($file, 'EXIF:*>*:*');
1376
+
1377
+ # copy all tags with names starting with "gps" (note: this is
1378
+ # different than "gps:*" because it will also copy XMP GPS tags)
1379
+ $exifTool->SetNewValuesFromFile($file, 'gps*');
1380
+
1381
+ # set FileName from Model, translating questionable characters
1382
+ $exifTool->SetNewValuesFromFile($file,
1383
+ 'filename<${model; tr(/\\\\?*:|"><)(_) }.jpg');
1384
+
1385
+ =over 4
1386
+
1387
+ =item Inputs:
1388
+
1389
+ 0) ExifTool object reference
1390
+
1391
+ 1) File name, file reference, or scalar reference
1392
+
1393
+ 2-N) [optional] List of tag names to set or options hash references. All
1394
+ writable tags are set if none are specified. The tag names are not case
1395
+ sensitive, and may be prefixed by an optional family 0 or 1 group name,
1396
+ separated by a colon (ie. 'exif:iso'). A leading '-' indicates tags to be
1397
+ excluded (ie. '-comment'), or a trailing '#' causes the ValueConv value to
1398
+ be copied (same as setting the Type option to 'ValueConv' for this tag
1399
+ only). Wildcards ('*' and '?') may be used in the tag name. A tag name of
1400
+ '*' is commonly used when a group is specified to copy all tags in the group
1401
+ (ie. 'XMP:*'). A special feature allows tag names of the form
1402
+ 'DSTTAGE<lt>SRCTAG' (or 'SRCTAGE<gt>DSTTAG') to be specified to copy information
1403
+ to a tag with a different name or a specified group. Both 'SRCTAG' and
1404
+ 'DSTTAG' may contain wildcards and/or be prefixed by a group name (ie.
1405
+ 'fileModifyDateE<lt>modifyDate' or 'xmp:*E<lt>*'), and/or suffixed by a '#' to
1406
+ disable print conversion. Copied tags may also be added or deleted from a
1407
+ list with arguments of the form 'DSTTAG+E<lt>SRCTAG' or 'DSTTAG-E<lt>SRCTAG'. Tags
1408
+ are evaluated in order, so exclusions apply only to tags included earlier in
1409
+ the list. An extension of this feature allows the tag value to be set from
1410
+ an expression containing tag names with leading '$' symbols (ie.
1411
+ 'CommentE<lt>the file is $filename'). Braces '{}' may be used around the
1412
+ tag name to separate it from subsequent text, and a '$$' is used to to
1413
+ represent a '$' symbol. The behaviour for missing tags in expressions is
1414
+ defined by the L</MissingTagValue> option. The tag value may be modified
1415
+ via changes to the default input variable ($_) in Perl expressions placed
1416
+ inside the braces and after a semicolon following the tag name. Braces
1417
+ within the expression must be balanced. Multiple options hash references
1418
+ may be passed to set different options for different tags. Options apply to
1419
+ subsequent tags in the argument list.
1420
+
1421
+ By default, this routine will commute information between same-named tags in
1422
+ different groups, allowing information to be translated between images with
1423
+ different formats. This behaviour may be modified by specifying a group
1424
+ name for extracted tags (even if '*' is used as a group name), in which case
1425
+ the information is written to the original group, unless redirected to a
1426
+ different group. When '*' is used for a group name, the family 1 group of
1427
+ the original tag is preserved. (For example, specifying '*:*' copies all
1428
+ information while preserving the original family 1 groups.)
1429
+
1430
+ =item SetNewValuesFromFile Options:
1431
+
1432
+ The options are the same was for L</SetNewValue>, and are passed directly
1433
+ to L</SetNewValue> internally, with a few exceptions:
1434
+
1435
+ - The Replace option defaults to 1 instead of 0 as with L</SetNewValue>.
1436
+
1437
+ - The AddValue or DelValue option is set for individual tags if '+>' or '->'
1438
+ (or '+E<lt>' or '-E<lt>') are used.
1439
+
1440
+ - The Group option is set for tags where a group name is given.
1441
+
1442
+ - The Protected flag is set to 1 for individually specified tags.
1443
+
1444
+ - The Type option also applies to extracted tags.
1445
+
1446
+ =item Return Values:
1447
+
1448
+ A hash of information that was set successfully. May include Warning or
1449
+ Error entries if there were problems reading the input file.
1450
+
1451
+ =item Notes:
1452
+
1453
+ The PrintConv option applies to this routine, but it normally should be left
1454
+ on to provide more reliable transfer of information between groups.
1455
+
1456
+ If a preview image exists, it is not copied. The preview image must be
1457
+ transferred separately if desired, in a separate call to L</WriteInfo>
1458
+
1459
+ When simply copying all information between files of the same type, it is
1460
+ usually desirable to preserve the original groups by specifying '*:*' for
1461
+ the tags to set.
1462
+
1463
+ The L</Duplicates> option is always in effect for tags extracted from the
1464
+ source file using this routine.
1465
+
1466
+ The L</Struct> option is enabled by default for tags extracted by this
1467
+ routine. This allows the hierarchy of complex structures to be preserved
1468
+ when copying, but the Struct option may be set to 0 to override this
1469
+ behaviour and copy as flattened tags instead.
1470
+
1471
+ =back
1472
+
1473
+ =head2 GetNewValues
1474
+
1475
+ Get list of new Raw values for the specified tag. These are the values that
1476
+ will be written to file. Most tags return only a single value, but
1477
+ List-type tags may return multiple values.
1478
+
1479
+ $rawVal = $exifTool->GetNewValues($tag);
1480
+
1481
+ @rawVals = $exifTool->GetNewValues($tag);
1482
+
1483
+ =over 4
1484
+
1485
+ =item Inputs:
1486
+
1487
+ 0) ExifTool object reference
1488
+
1489
+ 1) Tag name (case sensitive, may be prefixed by family 0 or 1 group name)
1490
+
1491
+ =item Return Values:
1492
+
1493
+ List of new Raw tag values, or first value in list when called in scalar
1494
+ context. The list may be empty either if the tag isn't being written, or if
1495
+ it is being deleted (ie. if L</SetNewValue> was called without a value).
1496
+
1497
+ =back
1498
+
1499
+ =head2 CountNewValues
1500
+
1501
+ Return the total number of new values set.
1502
+
1503
+ $numSet = $exifTool->CountNewValues();
1504
+ ($numSet, $numPseudo) = $exifTool->CountNewValues();
1505
+
1506
+ =over 4
1507
+
1508
+ =item Inputs:
1509
+
1510
+ 0) ExifTool object reference
1511
+
1512
+ =item Return Values:
1513
+
1514
+ In scalar context, returns the total number of tags with new values set. In
1515
+ list context, also returns the number of "pseudo" tag values which have been
1516
+ set. "Pseudo" tags are tags like FileName and FileModifyDate which are not
1517
+ contained within the file and can be changed without rewriting the file.
1518
+
1519
+ =back
1520
+
1521
+ =head2 SaveNewValues
1522
+
1523
+ Save state of new values to be later restored by L</RestoreNewValues>.
1524
+
1525
+ $exifTool->SaveNewValues(); # save state of new values
1526
+ $exifTool->SetNewValue(ISO => 100); # set new value for ISO
1527
+ $exifTool->WriteInfo($src, $dst1); # write ISO + previous new values
1528
+ $exifTool->RestoreNewValues(); # restore previous new values
1529
+ $exifTool->WriteInfo($src, $dst2); # write previous new values only
1530
+
1531
+ =over 4
1532
+
1533
+ =item Inputs:
1534
+
1535
+ 0) ExifTool object reference
1536
+
1537
+ =item Return Value:
1538
+
1539
+ Count of the number of times this routine has been called (N) since the last
1540
+ time the new values were reset.
1541
+
1542
+ =back
1543
+
1544
+ =head2 RestoreNewValues
1545
+
1546
+ Restore new values to the settings that existed when L</SaveNewValues> was
1547
+ last called. May be called repeatedly after a single call to
1548
+ L</SaveNewValues>. See L</SaveNewValues> above for an example.
1549
+
1550
+ =over 4
1551
+
1552
+ =item Inputs:
1553
+
1554
+ 0) ExifTool object reference
1555
+
1556
+ =item Return Value:
1557
+
1558
+ None.
1559
+
1560
+ =back
1561
+
1562
+ =head2 SetFileModifyDate
1563
+
1564
+ Write the filesystem modification or creation time from the new value of the
1565
+ FileModifyDate or FileCreateDate tag.
1566
+
1567
+ $exifTool->SetNewValue(FileModifyDate => '2000:01:02 03:04:05-05:00',
1568
+ Protected => 1);
1569
+ $result = $exifTool->SetFileModifyDate($file);
1570
+
1571
+ =over 4
1572
+
1573
+ =item Inputs:
1574
+
1575
+ 0) ExifTool object reference
1576
+
1577
+ 1) File name
1578
+
1579
+ 2) [optional] Base time if applying shift (days before $^T)
1580
+
1581
+ 3) [optional] Tag to write: 'FileModifyDate' (default), or 'FileCreateDate'
1582
+
1583
+ =item Return Value:
1584
+
1585
+ 1 if the time was changed, 0 if nothing was done, or -1 if there was an
1586
+ error setting the time.
1587
+
1588
+ =item Notes:
1589
+
1590
+ Equivalent to, but more efficient than calling L</WriteInfo> when only the
1591
+ FileModifyDate or FileCreateDate tag has been set. If a timezone is not
1592
+ specified, local time is assumed. When shifting, the time of the original
1593
+ file is used unless the optional base time is specified.
1594
+
1595
+ The ability to write FileCreateDate is currently restricted to Windows
1596
+ systems only.
1597
+
1598
+ =back
1599
+
1600
+ =head2 SetFileName
1601
+
1602
+ Set the file name and directory. If not specified, the new file name is
1603
+ derived from the new values of the FileName and Directory tags. If the
1604
+ FileName tag contains a '/', then the file is renamed into a new directory.
1605
+ If FileName ends with '/', then it is taken as a directory name and the file
1606
+ is moved into the new directory. The new value for the Directory tag takes
1607
+ precedence over any directory specified in FileName.
1608
+
1609
+ $result = $exifTool->SetFileName($file);
1610
+ $result = $exifTool->SetFileName($file, $newName);
1611
+
1612
+ =over 4
1613
+
1614
+ =item Inputs:
1615
+
1616
+ 0) ExifTool object reference
1617
+
1618
+ 1) Current file name
1619
+
1620
+ 2) [optional] New file name
1621
+
1622
+ =item Return Value:
1623
+
1624
+ 1 if the file name or directory was changed, 0 if nothing was done, or -1 if
1625
+ there was an error renaming the file.
1626
+
1627
+ =item Notes:
1628
+
1629
+ Will not overwrite existing files. New directories are created as necessary.
1630
+
1631
+ =back
1632
+
1633
+ =head2 SetNewGroups
1634
+
1635
+ Set the order of the preferred groups when adding new information. In
1636
+ subsequent calls to L</SetNewValue>, new information will be created in the
1637
+ first valid group of this list. This has an impact only if the group is not
1638
+ specified when calling L</SetNewValue> and if the tag name exists in more
1639
+ than one group. The default order is EXIF, IPTC then XMP. Any family 0
1640
+ group name may be used. Case is not significant.
1641
+
1642
+ $exifTool->SetNewGroups('XMP','EXIF','IPTC');
1643
+
1644
+ =over 4
1645
+
1646
+ =item Inputs:
1647
+
1648
+ 0) ExifTool object reference
1649
+
1650
+ 1-N) Groups in order of priority. If no groups are specified, the priorities
1651
+ are reset to the defaults.
1652
+
1653
+ =item Return Value:
1654
+
1655
+ None.
1656
+
1657
+ =back
1658
+
1659
+ =head2 GetNewGroups
1660
+
1661
+ Get current group priority list.
1662
+
1663
+ @groups = $exifTool->GetNewGroups();
1664
+
1665
+ =over 4
1666
+
1667
+ =item Inputs:
1668
+
1669
+ 0) ExifTool object reference
1670
+
1671
+ =item Return Values:
1672
+
1673
+ List of group names in order of write priority. Highest priority first.
1674
+
1675
+ =back
1676
+
1677
+ =head2 GetTagID
1678
+
1679
+ Get the ID for the specified tag. The ID is the IFD tag number in EXIF
1680
+ information, the property name in XMP information, or the data offset in a
1681
+ binary data block. For some tags, such as Composite tags where there is no
1682
+ ID, an empty string is returned. In list context, also returns a language
1683
+ code for the tag if available and different from the default language (ie.
1684
+ with alternate language entries for XMP "lang-alt" tags).
1685
+
1686
+ $id = $exifTool->GetTagID($tag);
1687
+ ($id, $lang) = $exifTool->GetTagID($tag);
1688
+
1689
+ =over 4
1690
+
1691
+ =item Inputs:
1692
+
1693
+ 0) ExifTool object reference
1694
+
1695
+ 1) Tag key
1696
+
1697
+ =item Return Values:
1698
+
1699
+ In scalar context, returns the tag ID or '' if there is no ID for this tag.
1700
+ In list context, returns the tag ID (or '') and the language code (or
1701
+ undef).
1702
+
1703
+ =back
1704
+
1705
+ =head2 GetDescription
1706
+
1707
+ Get description for specified tag. This function will always return a
1708
+ defined value. In the case where the description doesn't exist, one is
1709
+ generated from the tag name.
1710
+
1711
+ =over 4
1712
+
1713
+ =item Inputs:
1714
+
1715
+ 0) ExifTool object reference
1716
+
1717
+ 1) Tag key
1718
+
1719
+ =item Return Values:
1720
+
1721
+ A description for the specified tag.
1722
+
1723
+ =back
1724
+
1725
+ =head2 GetGroup
1726
+
1727
+ Get group name(s) for a specified tag.
1728
+
1729
+ # return family 0 group name (ie. 'EXIF');
1730
+ $group = $exifTool->GetGroup($tag, 0);
1731
+
1732
+ # return all groups (ie. qw{EXIF IFD0 Author Main})
1733
+ @groups = $exifTool->GetGroup($tag);
1734
+
1735
+ # return groups as a string (ie. 'Main:IFD0:Author')
1736
+ $group = $exifTool->GetGroup($tag, ':3:1:2');
1737
+
1738
+ # return groups as a simplified string (ie. 'IFD0:Author')
1739
+ $group = $exifTool->GetGroup($tag, '3:1:2');
1740
+
1741
+ =over 4
1742
+
1743
+ =item Inputs:
1744
+
1745
+ 0) ExifTool object reference
1746
+
1747
+ 1) Tag key
1748
+
1749
+ 2) [optional] Group family number, or string of numbers separated by colons
1750
+
1751
+ =item Return Values:
1752
+
1753
+ Group name (or '' if tag has no group). If no group family is specified,
1754
+ L</GetGroup> returns the name of the group in family 0 when called in scalar
1755
+ context, or the names of groups for all families in list context. Returns a
1756
+ string of group names separated by colons if the input group family contains
1757
+ a colon. The string is simplified to remove a leading 'Main:' and adjacent
1758
+ identical group names unless the family string begins with a colon.
1759
+
1760
+ =item Notes:
1761
+
1762
+ The group family numbers are currently available:
1763
+
1764
+ 0) Information Type (ie. EXIF, XMP, IPTC)
1765
+ 1) Specific Location (ie. IFD0, XMP-dc)
1766
+ 2) Category (ie. Author, Time)
1767
+ 3) Document Number (ie. Main, Doc1, Doc3-2)
1768
+ 4) Instance Number (ie. Copy1, Copy2, Copy3...)
1769
+
1770
+ Families 0 and 1 are based on the file structure, and are similar except
1771
+ that family 1 is more specific and sub-divides some groups to give more
1772
+ detail about the specific location where the information was found. For
1773
+ example, the EXIF group is split up based on the specific IFD (Image File
1774
+ Directory), the MakerNotes group is divided into groups for each
1775
+ manufacturer, and the XMP group is separated based on the XMP namespace
1776
+ prefix. Note that only common XMP namespaces are listed in the
1777
+ L<GetAllGroups documentation|/GetAllGroups [static]>, but additional
1778
+ namespaces may be present in some XMP data. Also note that the 'XMP-xmp...'
1779
+ group names may appear in the older form 'XMP-xap...' since these names
1780
+ evolved as the XMP standard was developed. The ICC_Profile group is broken
1781
+ down to give information about the specific ICC_Profile tag from which
1782
+ multiple values were extracted. As well, information extracted from the
1783
+ ICC_Profile header is separated into the ICC-header group.
1784
+
1785
+ Family 2 classifies information based on the logical category to which the
1786
+ information refers.
1787
+
1788
+ Family 3 gives the document number for tags extracted from embedded
1789
+ documents, or 'Main' for tags from the main document. (See the
1790
+ L</ExtractEmbedded> option for extracting tags from embedded documents.)
1791
+ Nested sub-documents (if they exist) are indicated by numbers separated with
1792
+ dashes in the group name, to an arbitrary depth. (ie. 'Doc2-3-1' is the 1st
1793
+ sub-sub-document of the 3rd sub-document of the 2nd embedded document of the
1794
+ main file.)
1795
+
1796
+ Family 4 provides a method for differentiating tags when multiple tags exist
1797
+ with the same name in the same location. The primary instance of a tag (the
1798
+ tag extracted when the Duplicates option is disabled and no group is
1799
+ specified) has no family 4 group name, but additional instances have have
1800
+ family 4 group names of 'Copy1', 'Copy2', 'Copy3', etc.
1801
+
1802
+ See L</GetAllGroups [static]> for complete lists of group names.
1803
+
1804
+ =back
1805
+
1806
+ =head2 GetGroups
1807
+
1808
+ Get list of group names that exist in the specified information.
1809
+
1810
+ @groups = $exifTool->GetGroups($info, 2);
1811
+ @groups = $exifTool->GetGroups('3:1');
1812
+
1813
+ =over 4
1814
+
1815
+ =item Inputs:
1816
+
1817
+ 0) ExifTool object reference
1818
+
1819
+ 1) [optional] Info hash ref (default is all extracted info)
1820
+
1821
+ 2) [optional] Group family number, or string of numbers (default 0)
1822
+
1823
+ =item Return Values:
1824
+
1825
+ List of group names in alphabetical order. If information hash is not
1826
+ specified, the group names are returned for all extracted information. See
1827
+ L</GetGroup> for an description of family numbers and family number strings.
1828
+
1829
+ =back
1830
+
1831
+ =head2 BuildCompositeTags
1832
+
1833
+ Builds composite tags from required tags. The composite tags are
1834
+ convenience tags which are derived from the values of other tags. This
1835
+ routine is called automatically by L</ImageInfo> and L</ExtractInfo> if the
1836
+ Composite option is set.
1837
+
1838
+ =over 4
1839
+
1840
+ =item Inputs:
1841
+
1842
+ 0) ExifTool object reference
1843
+
1844
+ =item Return Values:
1845
+
1846
+ (none)
1847
+
1848
+ =item Notes:
1849
+
1850
+ Tag values are calculated in alphabetical order unless a tag Require's or
1851
+ Desire's another composite tag, in which case the calculation is deferred
1852
+ until after the other tag is calculated. Composite tags may need to read
1853
+ data from the image for their value to be determined, so for these
1854
+ L</BuildCompositeTags> must be called while the image is available. This is
1855
+ only a problem if L</ImageInfo> is called with a filename (as opposed to a
1856
+ file reference or scalar reference) since in this case the file is closed
1857
+ before L</ImageInfo> returns. However if you enable the Composite option,
1858
+ L</BuildCompositeTags> is called from within L</ImageInfo> before the file
1859
+ is closed.
1860
+
1861
+ =back
1862
+
1863
+ =head2 GetTagName [static]
1864
+
1865
+ Get name of tag from tag key. This is a convenience function that
1866
+ strips the embedded instance number, if it exists, from the tag key.
1867
+
1868
+ Note: "static" in the heading above indicates that the function does not
1869
+ require an ExifTool object reference as the first argument. All functions
1870
+ documented below are also static.
1871
+
1872
+ $tagName = Image::ExifTool::GetTagName($tag);
1873
+
1874
+ =over 4
1875
+
1876
+ =item Inputs:
1877
+
1878
+ 0) Tag key
1879
+
1880
+ =item Return Value:
1881
+
1882
+ Tag name. This is the same as the tag key but has the instance number
1883
+ removed.
1884
+
1885
+ =back
1886
+
1887
+ =head2 GetShortcuts [static]
1888
+
1889
+ Get a list of shortcut tags.
1890
+
1891
+ =over 4
1892
+
1893
+ =item Inputs:
1894
+
1895
+ (none)
1896
+
1897
+ =item Return Values:
1898
+
1899
+ List of shortcut tags (as defined in Image::ExifTool::Shortcuts).
1900
+
1901
+ =back
1902
+
1903
+ =head2 GetAllTags [static]
1904
+
1905
+ Get list of all available tag names.
1906
+
1907
+ @tagList = Image::ExifTool::GetAllTags($group);
1908
+
1909
+ =over 4
1910
+
1911
+ =item Inputs:
1912
+
1913
+ 0) [optional] Group name, or string of group names separated by colons
1914
+
1915
+ =item Return Values:
1916
+
1917
+ A list of all available tags in alphabetical order, or all tags in a
1918
+ specified group or intersection of groups. The group name is case
1919
+ insensitive, and any group in families 0-2 may be used except for EXIF
1920
+ family 1 groups (ie. the specific IFD).
1921
+
1922
+ =back
1923
+
1924
+ =head2 GetWritableTags [static]
1925
+
1926
+ Get list of all writable tag names.
1927
+
1928
+ @tagList = Image::ExifTool::GetWritableTags($group);
1929
+
1930
+ =over 4
1931
+
1932
+ =item Inputs:
1933
+
1934
+ 0) [optional] Group name, or string of group names separated by colons
1935
+
1936
+ =item Return Values:
1937
+
1938
+ A list of all writable tags in alphabetical order. These are the tags for
1939
+ which values may be set through L</SetNewValue>. If a group name is given,
1940
+ returns only writable tags in specified group(s). The group name is case
1941
+ insensitive, and any group in families 0-2 may be used except for EXIF
1942
+ family 1 groups (ie. the specific IFD).
1943
+
1944
+ =back
1945
+
1946
+ =head2 GetAllGroups [static]
1947
+
1948
+ Get list of all group names in specified family.
1949
+
1950
+ @groupList = Image::ExifTool::GetAllGroups($family);
1951
+
1952
+ =over 4
1953
+
1954
+ =item Inputs:
1955
+
1956
+ 0) Group family number (0-4)
1957
+
1958
+ =item Return Values:
1959
+
1960
+ A list of all groups in the specified family in alphabetical order.
1961
+
1962
+ =back
1963
+
1964
+ Here is a complete list of groups for each of these families:
1965
+
1966
+ =over 4
1967
+
1968
+ =item Family 0 (Information Type):
1969
+
1970
+ AFCP, AIFF, APE, APP0, APP1, APP12, APP13, APP14, APP15, APP4, APP5, APP6,
1971
+ APP8, ASF, CanonVRD, Composite, DICOM, DNG, DV, DjVu, Ducky, EXE, EXIF,
1972
+ ExifTool, FLAC, FLIR File, Flash, FlashPix,, Font, FotoStation, GIF, GIMP,
1973
+ GeoTiff, H264, HTML, ICC_Profile, ID3, IPTC, ITC, JFIF, JPEG, Jpeg2000, LNK,
1974
+ Leaf, M2TS, MIE, MIFF, MNG, MPC, MPEG, MPF, MXF, MakerNotes, Matroska, Meta,
1975
+ Ogg, OpenEXR, PDF, PICT, PLIST, PNG, PSP, PanasonicRaw, PhotoCD,
1976
+ PhotoMechanic, Photoshop, PostScript, PrintIM, QuickTime, RAF, RIFF, RSRC,
1977
+ RTF, Radiance, Rawzor, Real, SVG, SigmaRaw, Stim, Theora, Vorbis, XML, XMP,
1978
+ ZIP
1979
+
1980
+ =item Family 1 (Specific Location):
1981
+
1982
+ AC3, AFCP, AIFF, APE, ASF, AVI1, Adobe, AdobeCM, AdobeDNG, CIFF, Canon,
1983
+ CanonCustom, CanonRaw, CanonVRD, Casio, Chapter#, Composite, DICOM, DNG, DV,
1984
+ DjVu, DjVu-Meta, Ducky, EPPIM, EXE, EXIF, ExifIFD, ExifTool, FLAC, File,
1985
+ Flash, FlashPix, FLIR, Font, FotoStation, FujiFilm, FujiIFD, GE, GIF, GIMP,
1986
+ GPS, GeoTiff, GlobParamIFD, GraphConv, H264, HP, HTML, HTML-dc, HTML-ncc,
1987
+ HTML-office, HTML-prod, HTML-vw96, HTTP-equiv, ICC-chrm, ICC-clrt,
1988
+ ICC-header, ICC-meas, ICC-meta, ICC-view, ICC_Profile, ICC_Profile#, ID3,
1989
+ ID3v1, ID3v1_Enh, ID3v2_2, ID3v2_3, ID3v2_4, IFD0, IFD1, IPTC, IPTC#, ITC,
1990
+ InteropIFD, JFIF, JPEG, JVC, Jpeg2000, KDC_IFD, Kodak, KodakBordersIFD,
1991
+ KodakEffectsIFD, KodakIFD, KyoceraRaw, LNK, Leaf, LeafSubIFD, Leica, M2TS,
1992
+ MAC, MIE-Audio, MIE-Camera, MIE-Canon, MIE-Doc, MIE-Extender, MIE-Flash,
1993
+ MIE-GPS, MIE-Geo, MIE-Image, MIE-Lens, MIE-Main, MIE-MakerNotes, MIE-Meta,
1994
+ MIE-Orient, MIE-Preview, MIE-Thumbnail, MIE-UTM, MIE-Unknown, MIE-Video,
1995
+ MIFF, MNG, MPC, MPEG, MPF0, MPImage, MXF, MakerNotes, MakerUnknown,
1996
+ Matroska, MetaIFD, Microsoft, Minolta, MinoltaRaw, NITF, Nikon,
1997
+ NikonCapture, NikonCustom, NikonScan, Ocad, Ogg, Olympus, OpenEXR, PDF,
1998
+ PICT, PLIST, PNG, PSP, Panasonic, PanasonicRaw, Pentax, PhaseOne, PhotoCD,
1999
+ PhotoMechanic, Photoshop, PictureInfo, PostScript, PreviewIFD, PrintIM,
2000
+ ProfileIFD, Qualcomm, QuickTime, RAF, RAF2, RIFF, RMETA, RSRC, RTF,
2001
+ Radiance, Rawzor, Real, Real-CONT, Real-MDPR, Real-PROP, Real-RA3, Real-RA4,
2002
+ Real-RA5, Real-RJMD, Reconyx, Ricoh, SPIFF, SR2, SR2DataIFD, SR2SubIFD,
2003
+ SRF#, SVG, Samsung, Sanyo, Scalado, Sigma, SigmaRaw, Sony, SonyIDC, Stim,
2004
+ SubIFD, System, Theora, Track#, Version0, Vorbis, XML, XMP, XMP-DICOM,
2005
+ XMP-GPano, XMP-MP, XMP-MP1, XMP-PixelLive, XMP-aas, XMP-acdsee, XMP-album,
2006
+ XMP-apple-fi, XMP-aux, XMP-cc, XMP-cell, XMP-crs, XMP-dc, XMP-dex,
2007
+ XMP-digiKam, XMP-dwc, XMP-exif, XMP-expressionmedia, XMP-extensis, XMP-fpv,
2008
+ XMP-ics, XMP-iptcCore, XMP-iptcExt, XMP-lr, XMP-mediapro, XMP-microsoft,
2009
+ XMP-mwg-coll, XMP-mwg-kw, XMP-mwg-rs, XMP-pdf, XMP-pdfx, XMP-photomech,
2010
+ XMP-photoshop, XMP-plus, XMP-prism, XMP-prl, XMP-pur, XMP-rdf, XMP-swf,
2011
+ XMP-tiff, XMP-x, XMP-xmp, XMP-xmpBJ, XMP-xmpDM, XMP-xmpMM, XMP-xmpNote,
2012
+ XMP-xmpPLUS, XMP-xmpRights, XMP-xmpTPg, ZIP
2013
+
2014
+ =item Family 2 (Category):
2015
+
2016
+ Audio, Author, Camera, Document, ExifTool, Image, Location, Other, Printing,
2017
+ Time, Unknown, Video
2018
+
2019
+ =item Family 3 (Document Number):
2020
+
2021
+ Doc#, Main
2022
+
2023
+ =item Family 4 (Instance Number):
2024
+
2025
+ Copy#
2026
+
2027
+ =back
2028
+
2029
+ =head2 GetDeleteGroups [static]
2030
+
2031
+ Get list of all deletable group names.
2032
+
2033
+ @delGroups = Image::ExifTool::GetDeleteGroups();
2034
+
2035
+ =over 4
2036
+
2037
+ =item Inputs:
2038
+
2039
+ None.
2040
+
2041
+ =item Return Values:
2042
+
2043
+ A list of deletable group names in alphabetical order. The current list of
2044
+ deletable group names is:
2045
+
2046
+ AFCP, APP0, APP1, APP10, APP11, APP12, APP13, APP14, APP15, APP2, APP3,
2047
+ APP4, APP5, APP6, APP7, APP8, APP9, Adobe, CIFF, CanonVRD, Ducky, EXIF,
2048
+ ExifIFD, File, FlashPix, FotoStation, GPS, GlobParamIFD, ICC_Profile, IFD0,
2049
+ IFD1, IPTC, InteropIFD, JFIF, Jpeg2000, MIE, MPF, MakerNotes, Meta, MetaIFD,
2050
+ NikonCapture, PDF, PDF-update, PNG, PhotoMechanic, Photoshop, PrintIM,
2051
+ RMETA, RSRC, SubIFD, Trailer, XML, XML-*, XMP, XMP-*
2052
+
2053
+ All names in this list are either family 0 or family 1 group names, with the
2054
+ exception of 'Trailer' which allows all trailers in JPEG and TIFF-format
2055
+ images to be deleted at once, including unknown trailers. To schedule a
2056
+ group for deletion, call L</SetNewValue> with an undefined value and a tag
2057
+ name like 'Trailer:*'.
2058
+
2059
+ Note that the JPEG "APP" groups are special, and are used only to delete
2060
+ application segments which are not associated with another deletable group.
2061
+ For example, deleting 'APP14:*' will delete other APP14 segments, but not
2062
+ the APP14 "Adobe" segment.
2063
+
2064
+ =back
2065
+
2066
+ =head2 GetFileType [static]
2067
+
2068
+ Get type of file given file name.
2069
+
2070
+ my $type = Image::ExifTool::GetFileType($filename);
2071
+ my $desc = Image::ExifTool::GetFileType($filename, 1);
2072
+
2073
+ =over 4
2074
+
2075
+ =item Inputs:
2076
+
2077
+ 0) [optional] File name (or just an extension)
2078
+
2079
+ 1) [optional] Flag to return a description instead of a type. Set to 0 to
2080
+ return type for recognized but unsupported files (otherwise the return value
2081
+ for unsupported files is undef).
2082
+
2083
+ =item Return Value:
2084
+
2085
+ A string, based on the file extension, which indicates the basic format of
2086
+ the file. Note that some files may be based on other formats (like many RAW
2087
+ image formats are based on TIFF). In array context, may return more than
2088
+ one file type if the file may be based on different formats. Returns undef
2089
+ if files with this extension are not yet supported by ExifTool. Returns a
2090
+ list of extensions for all supported file types if no input extension is
2091
+ specified (or all recognized file types if the description flag is set to 0).
2092
+ Returns a more detailed description of the specific file format when the
2093
+ description flag is set.
2094
+
2095
+ =back
2096
+
2097
+ =head2 CanWrite [static]
2098
+
2099
+ Can the specified file be written?
2100
+
2101
+ my $writable = Image::ExifTool::CanWrite($filename);
2102
+
2103
+ =over 4
2104
+
2105
+ =item Inputs:
2106
+
2107
+ 0) File name or extension
2108
+
2109
+ =item Return Value:
2110
+
2111
+ True if ExifTool supports writing files of this type (based on the file
2112
+ extension).
2113
+
2114
+ =back
2115
+
2116
+ =head2 CanCreate [static]
2117
+
2118
+ Can the specified file be created?
2119
+
2120
+ my $creatable = Image::ExifTool::CanCreate($filename);
2121
+
2122
+ =over 4
2123
+
2124
+ =item Inputs:
2125
+
2126
+ 0) File name or extension
2127
+
2128
+ =item Return Value:
2129
+
2130
+ True if ExifTool can create files with this extension from scratch.
2131
+ Currently, this can only be done with XMP, MIE, ICC, VRD and EXIF files.
2132
+
2133
+ =back
2134
+
2135
+ =head2 AddUserDefinedTags [static]
2136
+
2137
+ Add user-defined tags to an existing tag table at run time. This differs
2138
+ from the usual technique of creating user-defined tags via the
2139
+ %Image::ExifTool::UserDefined hash (see the ExifTool_config file in the
2140
+ Image::ExifTool distribution) because it allows tags to be added after the
2141
+ tag table has been initialized.
2142
+
2143
+ use Image::ExifTool ':Public';
2144
+ my %tags = (
2145
+ TestTagID1 => { Name => 'TestTagName1' },
2146
+ TestTagID2 => { Name => 'TestTagName2' },
2147
+ );
2148
+ my $num = AddUserDefinedTags('Image::ExifTool::PDF::Info', %tags);
2149
+
2150
+ =over 4
2151
+
2152
+ =item Inputs:
2153
+
2154
+ 0) Destination tag table name
2155
+
2156
+ 1-N) Pairs of tag ID / tag information hash references for the new tags
2157
+
2158
+ =item Return Value:
2159
+
2160
+ The number of tags added.
2161
+
2162
+ =item Notes
2163
+
2164
+ Pre-existing tags with the same ID will be replaced in the destination
2165
+ table.
2166
+
2167
+ =back
2168
+
2169
+ =head1 CHARACTER ENCODINGS
2170
+
2171
+ Certain meta information formats allow coded character sets other than plain
2172
+ ASCII. When reading, most known encodings are converted to the external
2173
+ character set according to the L</Charset> option, or to UTF-8 by default.
2174
+ When writing, the inverse conversions are performed. Alternatively, special
2175
+ characters may be converted to/from HTML character entities with the
2176
+ L</Escape> HTML option.
2177
+
2178
+ A distinction is made between the external character set visible to via the
2179
+ ExifTool API, and the internal character used to store text in the metadata
2180
+ of a file. These character sets may be specified separately as follows:
2181
+
2182
+ =over 4
2183
+
2184
+ =item External Character Set:
2185
+
2186
+ The encoding for strings passed to/from ExifTool API functions. This is set
2187
+ via the L</Charset> option, which is 'UTF8' by default.
2188
+
2189
+ =item Internal Character Sets:
2190
+
2191
+ The encodings used to store strings in the various metadata formats. These
2192
+ encodings may be changed for certain types of metadata via the
2193
+ L</CharsetEXIF>, L</CharsetID3>, L</CharsetIPTC>, L</CharsetPhotoshop> and
2194
+ L</CharsetQuickTime> options.
2195
+
2196
+ =back
2197
+
2198
+ Values are returned as byte strings of encoded characters. Perl wide
2199
+ characters are not used. By default, most returned strings are encoded in
2200
+ UTF-8. For these, Encode::decode_utf8() may be used to convert to a
2201
+ sequence of logical Perl characters. Note that some settings of the
2202
+ PERL_UNICODE environment variable may be incompatible with ExifTool's
2203
+ character handling.
2204
+
2205
+ More specific details are given below about how character coding is handled
2206
+ for EXIF, IPTC, XMP, PNG, ID3, PDF, Photoshop, QuickTime, AIFF, MIE and
2207
+ Vorbis information:
2208
+
2209
+ =head2 EXIF
2210
+
2211
+ Most textual information in EXIF is stored in "ASCII" format (called
2212
+ "string" in the L<ExifTool tag name documentation|Image::ExifTool::TagNames>).
2213
+ By default ExifTool does not convert these strings. However, it is not
2214
+ uncommon for applications to write UTF-8 or other encodings where ASCII is
2215
+ expected. To deal with these, ExifTool allows the internal EXIF string
2216
+ encoding to be specified with L</CharsetEXIF>, which causes EXIF string
2217
+ values to be converted from the specified character set when reading, and
2218
+ stored with this character set when writing. (The MWG recommends using
2219
+ UTF-8 encoding for EXIF strings, and in keeping with this the
2220
+ L<MWG|Image::ExifTool::MWG> module sets the default internal EXIF string
2221
+ encoding to UTF-8, but note that this will have no effect unless the
2222
+ external encoding is also set to something other than the default of UTF-8.)
2223
+
2224
+ A few EXIF tags (UserComment, GPSProcessingMethod and GPSAreaInformation)
2225
+ support a designated internal text encoding, with values stored as ASCII,
2226
+ Unicode (UCS-2) or JIS. When reading these tags, ExifTool converts Unicode
2227
+ and JIS to the external character set specified by the L</Charset>
2228
+ option, or to UTF-8 by default. ASCII text is not converted. When writing,
2229
+ text is stored as ASCII unless the string contains special characters, in
2230
+ which case it is converted from the external character set (or UTF-8 by
2231
+ default), and stored as Unicode. ExifTool writes Unicode in native EXIF byte
2232
+ ordering by default, but the byte order may be specified by setting the
2233
+ ExifUnicodeByteOrder tag (see the
2234
+ L<Extra Tags documentation|Image::ExifTool::TagNames/Extra Tags>).
2235
+
2236
+ The EXIF "XP" tags (XPTitle, XPComment, etc) are always stored as
2237
+ little-endian Unicode (UCS-2), and are read and written using the specified
2238
+ character set.
2239
+
2240
+ =head2 IPTC
2241
+
2242
+ The value of the IPTC:CodedCharacterSet tag determines how the internal IPTC
2243
+ string values are interpreted. If CodedCharacterSet exists and has a value
2244
+ of 'UTF8' (or 'ESC % G') then string values are assumed to be stored as
2245
+ UTF-8, otherwise Windows Latin1 (cp1252, 'Latin') coding is assumed by
2246
+ default, but this can be changed with the L</CharsetIPTC> option. When
2247
+ reading, these strings are converted to the character set specified by the
2248
+ L</Charset> option. When writing, the inverse conversions are performed.
2249
+ No conversion is done if the internal (IPTC) and external (ExifTool)
2250
+ character sets are the same. Note that ISO 2022 character set shifting is
2251
+ not supported. Instead, a warning is issued and the string is not converted
2252
+ if an ISO 2022 shift code is encountered. See L<http://www.iptc.org/IIM/>
2253
+ for the official IPTC specification.
2254
+
2255
+ ExifTool may be used to convert IPTC values to a different internal
2256
+ encoding. To do this, all IPTC tags must be rewritten along with the
2257
+ desired value of CodedCharacterSet. For example, the following command
2258
+ changes the internal IPTC encoding to UTF-8 (from Windows Latin1 unless
2259
+ CodedCharacterSet was already "UTF8"):
2260
+
2261
+ exiftool -tagsfromfile @ -iptc:all -codedcharacterset=utf8 a.jpg
2262
+
2263
+ or from Windows Latin2 (cp1250) to UTF-8:
2264
+
2265
+ exiftool -tagsfromfile @ -iptc:all -codedcharacterset=utf8 \
2266
+ -charset iptc=latin2 a.jpg
2267
+
2268
+ and this command changes it back from UTF-8 to Windows Latin1 (cp1252):
2269
+
2270
+ exiftool -tagsfromfile @ -iptc:all -codedcharacterset= a.jpg
2271
+
2272
+ or to Windows Latin2:
2273
+
2274
+ exiftool -tagsfromfile @ -iptc:all -codedcharacterset= \
2275
+ -charset iptc=latin2 a.jpg
2276
+
2277
+ Unless CodedCharacterSet is 'UTF8', applications have no reliable way to
2278
+ determine the IPTC character encoding. For this reason, it is recommended
2279
+ that CodedCharacterSet be set to 'UTF8' when creating new IPTC.
2280
+
2281
+ (Note: Here, "IPTC" Refers to the older IPTC IIM format. The more recent
2282
+ IPTC Core and Extension specifications actually use the XMP format.)
2283
+
2284
+ =head2 XMP
2285
+
2286
+ Exiftool reads XMP encoded as UTF-8, UTF-16 or UTF-32, and converts them all
2287
+ to UTF-8 internally. Also, all XML character entity references and numeric
2288
+ character references are converted. When writing, ExifTool always encodes
2289
+ XMP as UTF-8, converting the following 5 characters to XML character
2290
+ references: E<amp> E<lt> E<gt> E<39> E<quot>. By default no further
2291
+ conversion is performed, however if the L</Charset> option is other than
2292
+ 'UTF8' then text is converted to/from a specified character set when
2293
+ reading/writing.
2294
+
2295
+ =head2 PNG
2296
+
2297
+ L<PNG TextualData tags|Image::ExifTool::TagNames/"PNG TextualData Tags"> are
2298
+ stored as tEXt, zTXt and iTXt chunks in PNG images. The tEXt and zTXt
2299
+ chunks use ISO 8859-1 encoding, while iTXt uses UTF-8. When reading,
2300
+ ExifTool converts all PNG textual data to the character set specified by the
2301
+ L</Charset> option. When writing, ExifTool generates a tEXt chunk (or zTXt
2302
+ with the L</Compress> option) if the text doesn't contain special characters
2303
+ or if Latin encoding is specified; otherwise an iTXt chunk is used and the
2304
+ text is converted from the specified character set and stored as UTF-8.
2305
+
2306
+ =head2 ID3
2307
+
2308
+ The ID3v1 specification officially supports only ISO 8859-1 encoding (a
2309
+ subset of Windows Latin1), although some applications may incorrectly use
2310
+ other character sets. By default ExifTool converts ID3v1 text from Latin to
2311
+ the character set specified by the L</Charset> option. However, the
2312
+ internal ID3v1 charset may be specified with the L</CharsetID3> option. The
2313
+ encoding for ID3v2 information is stored in the file, so ExifTool converts
2314
+ ID3v2 text from this encoding to the character set specified by the
2315
+ L</Charset> option. ExifTool does not currently write ID3 information.
2316
+
2317
+ =head2 PDF
2318
+
2319
+ PDF text strings are stored in either PDFDocEncoding (similar to Windows
2320
+ Latin1) or Unicode (UCS-2). When reading, ExifTool converts to the
2321
+ character set specified by the L</Charset> option. When writing, ExifTool
2322
+ encodes input text from the specified character set as Unicode only if the
2323
+ string contains special characters, otherwise PDFDocEncoding is used.
2324
+
2325
+ =head2 Photoshop
2326
+
2327
+ Some Photoshop resource names are stored as Pascal strings with unknown
2328
+ encoding. By default, ExifTool assumes MacRoman encoding and converts this
2329
+ to UTF-8, but the internal and external character sets may be specified with
2330
+ L</CharsetPhotoshop> and L</Charset> options respectively.
2331
+
2332
+ =head2 QuickTime
2333
+
2334
+ QuickTime text strings may be stored in a variety of poorly document
2335
+ formats. ExifTool does its best to decode these according to the L</Charset>
2336
+ option setting. For some QuickTime strings, ExifTool assumes a default
2337
+ encoding of MacRoman, but this may be changed with the L</CharsetQuickTime>
2338
+ option.
2339
+
2340
+ =head2 AIFF
2341
+
2342
+ AIFF strings are assumed to be stored in MacRoman, and are converted
2343
+ according to the L</Charset> option when reading.
2344
+
2345
+ =head2 MIE
2346
+
2347
+ MIE strings are stored as either UTF-8 or ISO 8859-1. When reading, UTF-8
2348
+ strings are converted according to the L</Charset> option, and ISO 8859-1
2349
+ strings are never converted. When writing, input strings are converted from
2350
+ the specified character set to UTF-8. The resulting strings are stored as
2351
+ UTF-8 if they contain multi-byte UTF-8 character sequences, otherwise they
2352
+ are stored as ISO 8859-1.
2353
+
2354
+ =head2 Vorbis
2355
+
2356
+ Vorbis comments are stored as UTF-8, and are converted to the character set
2357
+ specified by the L</Charset> option.
2358
+
2359
+ =head1 AUTHOR
2360
+
2361
+ Copyright 2003-2013, Phil Harvey
2362
+
2363
+ This library is free software; you can redistribute it and/or modify it
2364
+ under the same terms as Perl itself.
2365
+
2366
+ =head1 ACKNOWLEDGEMENTS
2367
+
2368
+ Many people have helped in the development of ExifTool through their bug
2369
+ reports, comments and suggestions, and/or additions to the code. See the
2370
+ ACKNOWLEDGEMENTS in the individual Image::ExifTool modules and in
2371
+ html/index.html of the Image::ExifTool distribution package for a list of
2372
+ people who have contributed to this project.
2373
+
2374
+ =head1 SEE ALSO
2375
+
2376
+ L<exiftool(1)|exiftool>,
2377
+ L<Image::ExifTool::TagNames(3pm)|Image::ExifTool::TagNames>,
2378
+ L<Image::ExifTool::Shortcuts(3pm)|Image::ExifTool::Shortcuts>,
2379
+ L<Image::ExifTool::Shift.pl|Image::ExifTool::Shift.pl>,
2380
+ L<Image::Info(3pm)|Image::Info>,
2381
+ L<Image::MetaData::JPEG(3pm)|Image::MetaData::JPEG>
2382
+
2383
+ =cut
2384
+
2385
+ # end