exiftool_vendored 9.33.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of exiftool_vendored might be problematic. Click here for more details.

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