mini_exiftool_vendored 8.9.7.v2 → 9.2.7.v1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1023) hide show
  1. checksums.yaml +7 -0
  2. data/lib/mini_exiftool_vendored.rb +1 -1
  3. data/lib/mini_exiftool_vendored/version.rb +2 -2
  4. data/mini_exiftool_vendored.gemspec +1 -1
  5. data/vendor/Image-ExifTool-9.27/Changes +6162 -0
  6. data/vendor/Image-ExifTool-9.27/MANIFEST +858 -0
  7. data/vendor/Image-ExifTool-9.27/META.yml +26 -0
  8. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/Makefile.PL +0 -0
  9. data/vendor/Image-ExifTool-9.27/README +227 -0
  10. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27/arg_files}/exif2iptc.args +0 -0
  11. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27/arg_files}/exif2xmp.args +0 -0
  12. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27/arg_files}/gps2xmp.args +0 -0
  13. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27/arg_files}/iptc2exif.args +0 -0
  14. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27/arg_files}/iptc2xmp.args +0 -0
  15. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27/arg_files}/iptcCore.args +0 -0
  16. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27/arg_files}/pdf2xmp.args +0 -0
  17. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27/arg_files}/xmp2exif.args +0 -0
  18. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27/arg_files}/xmp2gps.args +0 -0
  19. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27/arg_files}/xmp2iptc.args +0 -0
  20. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27/arg_files}/xmp2pdf.args +0 -0
  21. data/vendor/Image-ExifTool-9.27/config_files/ExifTool_config +299 -0
  22. data/vendor/Image-ExifTool-9.27/config_files/convert_regions.config +81 -0
  23. data/vendor/Image-ExifTool-9.27/exiftool +5655 -0
  24. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27/fmt_files}/gpx.fmt +0 -0
  25. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27/fmt_files}/gpx_wpt.fmt +0 -0
  26. data/vendor/Image-ExifTool-9.27/fmt_files/kml.fmt +53 -0
  27. data/vendor/Image-ExifTool-9.27/html/ExifTool.html +1951 -0
  28. data/vendor/Image-ExifTool-9.27/html/MIE1.1-20070121.pdf +0 -0
  29. data/vendor/Image-ExifTool-9.27/html/Shift.html +173 -0
  30. data/vendor/Image-ExifTool-9.27/html/TagNames/AFCP.html +49 -0
  31. data/vendor/Image-ExifTool-9.27/html/TagNames/AIFF.html +146 -0
  32. data/vendor/Image-ExifTool-9.27/html/TagNames/APE.html +149 -0
  33. data/vendor/Image-ExifTool-9.27/html/TagNames/APP12.html +188 -0
  34. data/vendor/Image-ExifTool-9.27/html/TagNames/ASF.html +1075 -0
  35. data/vendor/Image-ExifTool-9.27/html/TagNames/BMP.html +110 -0
  36. data/vendor/Image-ExifTool-9.27/html/TagNames/Canon.html +8021 -0
  37. data/vendor/Image-ExifTool-9.27/html/TagNames/CanonCustom.html +2044 -0
  38. data/vendor/Image-ExifTool-9.27/html/TagNames/CanonRaw.html +561 -0
  39. data/vendor/Image-ExifTool-9.27/html/TagNames/CanonVRD.html +1222 -0
  40. data/vendor/Image-ExifTool-9.27/html/TagNames/Casio.html +1569 -0
  41. data/vendor/Image-ExifTool-9.27/html/TagNames/Composite.html +659 -0
  42. data/vendor/Image-ExifTool-9.27/html/TagNames/DICOM.html +15762 -0
  43. data/vendor/Image-ExifTool-9.27/html/TagNames/DNG.html +273 -0
  44. data/vendor/Image-ExifTool-9.27/html/TagNames/DV.html +75 -0
  45. data/vendor/Image-ExifTool-9.27/html/TagNames/DarwinCore.html +1445 -0
  46. data/vendor/Image-ExifTool-9.27/html/TagNames/DjVu.html +312 -0
  47. data/vendor/Image-ExifTool-9.27/html/TagNames/EXE.html +697 -0
  48. data/vendor/Image-ExifTool-9.27/html/TagNames/EXIF.html +3244 -0
  49. data/vendor/Image-ExifTool-9.27/html/TagNames/Extra.html +300 -0
  50. data/vendor/Image-ExifTool-9.27/html/TagNames/FLAC.html +183 -0
  51. data/vendor/Image-ExifTool-9.27/html/TagNames/FLIR.html +615 -0
  52. data/vendor/Image-ExifTool-9.27/html/TagNames/Flash.html +419 -0
  53. data/vendor/Image-ExifTool-9.27/html/TagNames/FlashPix.html +1435 -0
  54. data/vendor/Image-ExifTool-9.27/html/TagNames/Font.html +485 -0
  55. data/vendor/Image-ExifTool-9.27/html/TagNames/FotoStation.html +103 -0
  56. data/vendor/Image-ExifTool-9.27/html/TagNames/FujiFilm.html +636 -0
  57. data/vendor/Image-ExifTool-9.27/html/TagNames/GE.html +40 -0
  58. data/vendor/Image-ExifTool-9.27/html/TagNames/GIF.html +116 -0
  59. data/vendor/Image-ExifTool-9.27/html/TagNames/GIMP.html +140 -0
  60. data/vendor/Image-ExifTool-9.27/html/TagNames/GPS.html +221 -0
  61. data/vendor/Image-ExifTool-9.27/html/TagNames/GeoTiff.html +2177 -0
  62. data/vendor/Image-ExifTool-9.27/html/TagNames/H264.html +387 -0
  63. data/vendor/Image-ExifTool-9.27/html/TagNames/HP.html +155 -0
  64. data/vendor/Image-ExifTool-9.27/html/TagNames/HTML.html +666 -0
  65. data/vendor/Image-ExifTool-9.27/html/TagNames/ICC_Profile.html +710 -0
  66. data/vendor/Image-ExifTool-9.27/html/TagNames/ID3.html +1429 -0
  67. data/vendor/Image-ExifTool-9.27/html/TagNames/IPTC.html +895 -0
  68. data/vendor/Image-ExifTool-9.27/html/TagNames/ITC.html +90 -0
  69. data/vendor/Image-ExifTool-9.27/html/TagNames/JFIF.html +61 -0
  70. data/vendor/Image-ExifTool-9.27/html/TagNames/JPEG.html +523 -0
  71. data/vendor/Image-ExifTool-9.27/html/TagNames/JVC.html +56 -0
  72. data/vendor/Image-ExifTool-9.27/html/TagNames/Jpeg2000.html +464 -0
  73. data/vendor/Image-ExifTool-9.27/html/TagNames/Kodak.html +1759 -0
  74. data/vendor/Image-ExifTool-9.27/html/TagNames/KyoceraRaw.html +92 -0
  75. data/vendor/Image-ExifTool-9.27/html/TagNames/LNK.html +478 -0
  76. data/vendor/Image-ExifTool-9.27/html/TagNames/Leaf.html +870 -0
  77. data/vendor/Image-ExifTool-9.27/html/TagNames/M2TS.html +133 -0
  78. data/vendor/Image-ExifTool-9.27/html/TagNames/MIE.html +1026 -0
  79. data/vendor/Image-ExifTool-9.27/html/TagNames/MIFF.html +196 -0
  80. data/vendor/Image-ExifTool-9.27/html/TagNames/MNG.html +847 -0
  81. data/vendor/Image-ExifTool-9.27/html/TagNames/MPC.html +97 -0
  82. data/vendor/Image-ExifTool-9.27/html/TagNames/MPEG.html +249 -0
  83. data/vendor/Image-ExifTool-9.27/html/TagNames/MPF.html +199 -0
  84. data/vendor/Image-ExifTool-9.27/html/TagNames/MWG.html +519 -0
  85. data/vendor/Image-ExifTool-9.27/html/TagNames/MXF.html +6673 -0
  86. data/vendor/Image-ExifTool-9.27/html/TagNames/Matroska.html +1069 -0
  87. data/vendor/Image-ExifTool-9.27/html/TagNames/Microsoft.html +2066 -0
  88. data/vendor/Image-ExifTool-9.27/html/TagNames/Minolta.html +2550 -0
  89. data/vendor/Image-ExifTool-9.27/html/TagNames/MinoltaRaw.html +326 -0
  90. data/vendor/Image-ExifTool-9.27/html/TagNames/Nikon.html +4453 -0
  91. data/vendor/Image-ExifTool-9.27/html/TagNames/NikonCapture.html +776 -0
  92. data/vendor/Image-ExifTool-9.27/html/TagNames/NikonCustom.html +3835 -0
  93. data/vendor/Image-ExifTool-9.27/html/TagNames/OOXML.html +280 -0
  94. data/vendor/Image-ExifTool-9.27/html/TagNames/Ogg.html +44 -0
  95. data/vendor/Image-ExifTool-9.27/html/TagNames/Olympus.html +3331 -0
  96. data/vendor/Image-ExifTool-9.27/html/TagNames/OpenEXR.html +222 -0
  97. data/vendor/Image-ExifTool-9.27/html/TagNames/PDF.html +745 -0
  98. data/vendor/Image-ExifTool-9.27/html/TagNames/PGF.html +80 -0
  99. data/vendor/Image-ExifTool-9.27/html/TagNames/PICT.html +753 -0
  100. data/vendor/Image-ExifTool-9.27/html/TagNames/PLIST.html +86 -0
  101. data/vendor/Image-ExifTool-9.27/html/TagNames/PNG.html +515 -0
  102. data/vendor/Image-ExifTool-9.27/html/TagNames/PSP.html +160 -0
  103. data/vendor/Image-ExifTool-9.27/html/TagNames/Panasonic.html +1359 -0
  104. data/vendor/Image-ExifTool-9.27/html/TagNames/PanasonicRaw.html +214 -0
  105. data/vendor/Image-ExifTool-9.27/html/TagNames/Pentax.html +4329 -0
  106. data/vendor/Image-ExifTool-9.27/html/TagNames/PhaseOne.html +258 -0
  107. data/vendor/Image-ExifTool-9.27/html/TagNames/PhotoCD.html +402 -0
  108. data/vendor/Image-ExifTool-9.27/html/TagNames/PhotoMechanic.html +196 -0
  109. data/vendor/Image-ExifTool-9.27/html/TagNames/Photoshop.html +460 -0
  110. data/vendor/Image-ExifTool-9.27/html/TagNames/PostScript.html +125 -0
  111. data/vendor/Image-ExifTool-9.27/html/TagNames/PrintIM.html +31 -0
  112. data/vendor/Image-ExifTool-9.27/html/TagNames/Qualcomm.html +4778 -0
  113. data/vendor/Image-ExifTool-9.27/html/TagNames/QuickTime.html +2967 -0
  114. data/vendor/Image-ExifTool-9.27/html/TagNames/RIFF.html +1164 -0
  115. data/vendor/Image-ExifTool-9.27/html/TagNames/RSRC.html +74 -0
  116. data/vendor/Image-ExifTool-9.27/html/TagNames/RTF.html +150 -0
  117. data/vendor/Image-ExifTool-9.27/html/TagNames/Radiance.html +87 -0
  118. data/vendor/Image-ExifTool-9.27/html/TagNames/Rawzor.html +45 -0
  119. data/vendor/Image-ExifTool-9.27/html/TagNames/Real.html +780 -0
  120. data/vendor/Image-ExifTool-9.27/html/TagNames/Reconyx.html +132 -0
  121. data/vendor/Image-ExifTool-9.27/html/TagNames/Ricoh.html +456 -0
  122. data/vendor/Image-ExifTool-9.27/html/TagNames/Samsung.html +377 -0
  123. data/vendor/Image-ExifTool-9.27/html/TagNames/Sanyo.html +366 -0
  124. data/vendor/Image-ExifTool-9.27/html/TagNames/Shortcuts.html +237 -0
  125. data/vendor/Image-ExifTool-9.27/html/TagNames/Sigma.html +372 -0
  126. data/vendor/Image-ExifTool-9.27/html/TagNames/SigmaRaw.html +403 -0
  127. data/vendor/Image-ExifTool-9.27/html/TagNames/Sony.html +4052 -0
  128. data/vendor/Image-ExifTool-9.27/html/TagNames/SonyIDC.html +267 -0
  129. data/vendor/Image-ExifTool-9.27/html/TagNames/Stim.html +200 -0
  130. data/vendor/Image-ExifTool-9.27/html/TagNames/Theora.html +102 -0
  131. data/vendor/Image-ExifTool-9.27/html/TagNames/Unknown.html +31 -0
  132. data/vendor/Image-ExifTool-9.27/html/TagNames/Vorbis.html +228 -0
  133. data/vendor/Image-ExifTool-9.27/html/TagNames/XMP.html +7188 -0
  134. data/vendor/Image-ExifTool-9.27/html/TagNames/ZIP.html +204 -0
  135. data/vendor/Image-ExifTool-9.27/html/TagNames/iWork.html +49 -0
  136. data/vendor/Image-ExifTool-9.27/html/TagNames/index.html +192 -0
  137. data/vendor/Image-ExifTool-9.27/html/TagNames/style.css +31 -0
  138. data/vendor/Image-ExifTool-9.27/html/ancient_history.html +6564 -0
  139. data/vendor/Image-ExifTool-9.27/html/canon_raw.html +366 -0
  140. data/vendor/Image-ExifTool-9.27/html/commentary.html +319 -0
  141. data/vendor/Image-ExifTool-9.27/html/config.html +312 -0
  142. data/vendor/Image-ExifTool-9.27/html/data_members.html +264 -0
  143. data/vendor/Image-ExifTool-9.27/html/exiftool_pod.html +2325 -0
  144. data/vendor/Image-ExifTool-9.27/html/faq.html +1427 -0
  145. data/vendor/Image-ExifTool-9.27/html/filename.html +281 -0
  146. data/vendor/Image-ExifTool-9.27/html/geotag.html +642 -0
  147. data/vendor/Image-ExifTool-9.27/html/history.html +433 -0
  148. data/vendor/Image-ExifTool-9.27/html/htmldump.html +732 -0
  149. data/vendor/Image-ExifTool-9.27/html/idiosyncracies.html +251 -0
  150. data/vendor/Image-ExifTool-9.27/html/index.html +1266 -0
  151. data/vendor/Image-ExifTool-9.27/html/install.html +239 -0
  152. data/vendor/Image-ExifTool-9.27/html/metafiles.html +266 -0
  153. data/vendor/Image-ExifTool-9.27/html/overview.png +0 -0
  154. data/vendor/Image-ExifTool-9.27/html/standards.html +277 -0
  155. data/vendor/Image-ExifTool-9.27/html/struct.html +342 -0
  156. data/vendor/Image-ExifTool-9.27/html/style.css +31 -0
  157. data/vendor/Image-ExifTool-9.27/html/under.html +120 -0
  158. data/vendor/Image-ExifTool-9.27/html/verbose.html +195 -0
  159. data/vendor/Image-ExifTool-9.27/html/writing.html +239 -0
  160. data/vendor/Image-ExifTool-9.27/lib/File/RandomAccess.pm +378 -0
  161. data/vendor/Image-ExifTool-9.27/lib/File/RandomAccess.pod +231 -0
  162. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool.pm +6811 -0
  163. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool.pod +2353 -0
  164. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/AES.pm +501 -0
  165. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/AFCP.pm +280 -0
  166. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/AIFF.pm +271 -0
  167. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/APE.pm +262 -0
  168. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/APP12.pm +322 -0
  169. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/ASF.pm +871 -0
  170. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/BMP.pm +179 -0
  171. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/BZZ.pm +472 -0
  172. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/BigTIFF.pm +282 -0
  173. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/BuildTagLookup.pm +2391 -0
  174. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Canon.pm +7736 -0
  175. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/CanonCustom.pm +2523 -0
  176. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/CanonRaw.pm +931 -0
  177. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/CanonVRD.pm +1481 -0
  178. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/CaptureOne.pm +235 -0
  179. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Casio.pm +2013 -0
  180. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Charset.pm +396 -0
  181. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/Arabic.pm +0 -0
  182. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/Baltic.pm +0 -0
  183. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/Cyrillic.pm +0 -0
  184. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/Greek.pm +0 -0
  185. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/Hebrew.pm +0 -0
  186. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/JIS.pm +0 -0
  187. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/Latin.pm +0 -0
  188. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/Latin2.pm +0 -0
  189. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacArabic.pm +0 -0
  190. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacChineseCN.pm +0 -0
  191. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacChineseTW.pm +0 -0
  192. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacCroatian.pm +0 -0
  193. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacCyrillic.pm +0 -0
  194. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacGreek.pm +0 -0
  195. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacHebrew.pm +0 -0
  196. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacIceland.pm +0 -0
  197. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacJapanese.pm +0 -0
  198. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacKorean.pm +0 -0
  199. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacLatin2.pm +0 -0
  200. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacRSymbol.pm +0 -0
  201. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacRoman.pm +0 -0
  202. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacRomanian.pm +0 -0
  203. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacThai.pm +0 -0
  204. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacTurkish.pm +0 -0
  205. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/PDFDoc.pm +0 -0
  206. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/ShiftJIS.pm +0 -0
  207. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/Symbol.pm +0 -0
  208. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/Thai.pm +0 -0
  209. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/Turkish.pm +0 -0
  210. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/Vietnam.pm +0 -0
  211. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/DICOM.pm +3835 -0
  212. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/DNG.pm +835 -0
  213. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/DV.pm +319 -0
  214. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/DarwinCore.pm +317 -0
  215. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/DjVu.pm +373 -0
  216. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/EXE.pm +1228 -0
  217. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Exif.pm +4526 -0
  218. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/FLAC.pm +296 -0
  219. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/FLIR.pm +672 -0
  220. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Fixup.pm +354 -0
  221. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Flash.pm +755 -0
  222. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/FlashPix.pm +1882 -0
  223. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Font.pm +643 -0
  224. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/FotoStation.pm +258 -0
  225. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/FujiFilm.pm +1019 -0
  226. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/GE.pm +80 -0
  227. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/GIF.pm +542 -0
  228. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/GIMP.pm +258 -0
  229. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/GPS.pm +511 -0
  230. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/GeoTiff.pm +2187 -0
  231. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Geotag.pm +1173 -0
  232. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/H264.pm +1097 -0
  233. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/HP.pm +262 -0
  234. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/HTML.pm +576 -0
  235. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/HtmlDump.pm +895 -0
  236. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/ICC_Profile.pm +999 -0
  237. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/ID3.pm +1486 -0
  238. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/IPTC.pm +1244 -0
  239. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/ITC.pm +215 -0
  240. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Import.pm +308 -0
  241. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/InDesign.pm +277 -0
  242. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/JPEG.pm +588 -0
  243. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/JPEGDigest.pm +2511 -0
  244. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/JVC.pm +130 -0
  245. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Jpeg2000.pm +881 -0
  246. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Kodak.pm +2014 -0
  247. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/KyoceraRaw.pm +173 -0
  248. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/LNK.pm +723 -0
  249. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/cs.pm +1586 -0
  250. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/de.pm +7356 -0
  251. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/en_ca.pm +557 -0
  252. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/en_gb.pm +572 -0
  253. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/es.pm +4016 -0
  254. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/fi.pm +2856 -0
  255. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/fr.pm +4720 -0
  256. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/it.pm +7917 -0
  257. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/ja.pm +5815 -0
  258. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/ko.pm +2332 -0
  259. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/nl.pm +3220 -0
  260. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/pl.pm +1140 -0
  261. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/ru.pm +769 -0
  262. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/sv.pm +639 -0
  263. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/tr.pm +544 -0
  264. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/zh_cn.pm +1329 -0
  265. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/zh_tw.pm +802 -0
  266. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Leaf.pm +515 -0
  267. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/M2TS.pm +729 -0
  268. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/MIE.pm +2561 -0
  269. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/MIEUnits.pod +377 -0
  270. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/MIFF.pm +279 -0
  271. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/MNG.pm +684 -0
  272. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/MPC.pm +156 -0
  273. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/MPEG.pm +736 -0
  274. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/MPF.pm +289 -0
  275. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/MWG.pm +736 -0
  276. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/MXF.pm +3032 -0
  277. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/MakerNotes.pm +1569 -0
  278. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Matroska.pm +891 -0
  279. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Microsoft.pm +879 -0
  280. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Minolta.pm +2823 -0
  281. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/MinoltaRaw.pm +534 -0
  282. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Nikon.pm +6105 -0
  283. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/NikonCapture.pm +911 -0
  284. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/NikonCustom.pm +4405 -0
  285. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/OOXML.pm +409 -0
  286. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Ogg.pm +237 -0
  287. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Olympus.pm +3540 -0
  288. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/OpenEXR.pm +324 -0
  289. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/PDF.pm +2327 -0
  290. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/PGF.pm +143 -0
  291. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/PICT.pm +1260 -0
  292. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/PLIST.pm +449 -0
  293. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/PNG.pm +1100 -0
  294. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/PPM.pm +169 -0
  295. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/PSP.pm +305 -0
  296. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Panasonic.pm +1921 -0
  297. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/PanasonicRaw.pm +535 -0
  298. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Pentax.pm +5486 -0
  299. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/PhaseOne.pm +557 -0
  300. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/PhotoCD.pm +507 -0
  301. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/PhotoMechanic.pm +256 -0
  302. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Photoshop.pm +597 -0
  303. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/PostScript.pm +693 -0
  304. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/PrintIM.pm +125 -0
  305. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Qualcomm.pm +1344 -0
  306. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/QuickTime.pm +3316 -0
  307. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/README +943 -0
  308. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/RIFF.pm +1322 -0
  309. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/RSRC.pm +241 -0
  310. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/RTF.pm +383 -0
  311. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Radiance.pm +144 -0
  312. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Rawzor.pm +190 -0
  313. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Real.pm +736 -0
  314. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Reconyx.pm +190 -0
  315. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Ricoh.pm +740 -0
  316. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Samsung.pm +769 -0
  317. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Sanyo.pm +439 -0
  318. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Shift.pl +594 -0
  319. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Shortcuts.pm +291 -0
  320. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Sigma.pm +574 -0
  321. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/SigmaRaw.pm +649 -0
  322. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Sony.pm +5388 -0
  323. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/SonyIDC.pm +330 -0
  324. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Stim.pm +196 -0
  325. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/TagInfoXML.pm +792 -0
  326. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/TagLookup.pm +7911 -0
  327. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/TagNames.pod +25645 -0
  328. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Theora.pm +145 -0
  329. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Unknown.pm +66 -0
  330. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Vorbis.pm +237 -0
  331. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/WriteCanonRaw.pl +637 -0
  332. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/WriteExif.pl +3674 -0
  333. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/WriteIPTC.pl +702 -0
  334. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/WritePDF.pl +759 -0
  335. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/WritePNG.pl +330 -0
  336. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/WritePhotoshop.pl +266 -0
  337. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/WritePostScript.pl +777 -0
  338. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/WriteXMP.pl +1318 -0
  339. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Writer.pl +5755 -0
  340. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/XMP.pm +3535 -0
  341. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/XMP2.pl +1298 -0
  342. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/XMPStruct.pl +813 -0
  343. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/ZIP.pm +623 -0
  344. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/iWork.pm +223 -0
  345. data/vendor/Image-ExifTool-9.27/perl-Image-ExifTool.spec +104 -0
  346. data/vendor/Image-ExifTool-9.27/t/AFCP.t +44 -0
  347. data/vendor/Image-ExifTool-9.27/t/AFCP_2.out +37 -0
  348. data/vendor/Image-ExifTool-9.27/t/AFCP_3.out +20 -0
  349. data/vendor/Image-ExifTool-9.27/t/AIFF.t +28 -0
  350. data/vendor/Image-ExifTool-9.27/t/AIFF_2.out +31 -0
  351. data/vendor/Image-ExifTool-9.27/t/APE.t +38 -0
  352. data/vendor/Image-ExifTool-9.27/t/APE_2.out +28 -0
  353. data/vendor/Image-ExifTool-9.27/t/APE_3.out +57 -0
  354. data/vendor/Image-ExifTool-9.27/t/ASF.t +28 -0
  355. data/vendor/Image-ExifTool-9.27/t/ASF_2.out +48 -0
  356. data/vendor/Image-ExifTool-9.27/t/BMP.t +28 -0
  357. data/vendor/Image-ExifTool-9.27/t/BMP_2.out +21 -0
  358. data/vendor/Image-ExifTool-9.27/t/BigTIFF.t +28 -0
  359. data/vendor/Image-ExifTool-9.27/t/BigTIFF_2.out +19 -0
  360. data/vendor/Image-ExifTool-9.27/t/Canon.t +41 -0
  361. data/vendor/Image-ExifTool-9.27/t/CanonRaw.t +126 -0
  362. data/vendor/Image-ExifTool-9.27/t/CanonRaw_2.out +165 -0
  363. data/vendor/Image-ExifTool-9.27/t/CanonRaw_4.out +214 -0
  364. data/vendor/Image-ExifTool-9.27/t/CanonRaw_5.out +207 -0
  365. data/vendor/Image-ExifTool-9.27/t/CanonRaw_6.out +231 -0
  366. data/vendor/Image-ExifTool-9.27/t/CanonRaw_7.out +246 -0
  367. data/vendor/Image-ExifTool-9.27/t/CanonVRD.t +129 -0
  368. data/vendor/Image-ExifTool-9.27/t/CanonVRD_11.out +118 -0
  369. data/vendor/Image-ExifTool-9.27/t/CanonVRD_12.out +12 -0
  370. data/vendor/Image-ExifTool-9.27/t/CanonVRD_2.out +116 -0
  371. data/vendor/Image-ExifTool-9.27/t/CanonVRD_3.out +116 -0
  372. data/vendor/Image-ExifTool-9.27/t/CanonVRD_4.out +2 -0
  373. data/vendor/Image-ExifTool-9.27/t/CanonVRD_5.out +3 -0
  374. data/vendor/Image-ExifTool-9.27/t/CanonVRD_6.out +3 -0
  375. data/vendor/Image-ExifTool-9.27/t/CanonVRD_7.out +2 -0
  376. data/vendor/Image-ExifTool-9.27/t/CanonVRD_8.out +2 -0
  377. data/vendor/Image-ExifTool-9.27/t/CanonVRD_9.out +1 -0
  378. data/vendor/Image-ExifTool-9.27/t/Canon_2.out +350 -0
  379. data/vendor/Image-ExifTool-9.27/t/Canon_3.out +3 -0
  380. data/vendor/Image-ExifTool-9.27/t/Casio.t +54 -0
  381. data/vendor/Image-ExifTool-9.27/t/Casio_2.out +70 -0
  382. data/vendor/Image-ExifTool-9.27/t/Casio_3.out +100 -0
  383. data/vendor/Image-ExifTool-9.27/t/Casio_4.out +26 -0
  384. data/vendor/Image-ExifTool-9.27/t/Casio_5.out +78 -0
  385. data/vendor/Image-ExifTool-9.27/t/Casio_6.out +115 -0
  386. data/vendor/Image-ExifTool-9.27/t/DICOM.t +28 -0
  387. data/vendor/Image-ExifTool-9.27/t/DICOM_2.out +108 -0
  388. data/vendor/Image-ExifTool-9.27/t/DNG.t +39 -0
  389. data/vendor/Image-ExifTool-9.27/t/DNG_2.out +326 -0
  390. data/vendor/Image-ExifTool-9.27/t/DNG_3.out +4 -0
  391. data/vendor/Image-ExifTool-9.27/t/DV.t +27 -0
  392. data/vendor/Image-ExifTool-9.27/t/DV_2.out +24 -0
  393. data/vendor/Image-ExifTool-9.27/t/DjVu.t +28 -0
  394. data/vendor/Image-ExifTool-9.27/t/DjVu_2.out +44 -0
  395. data/vendor/Image-ExifTool-9.27/t/EXE.t +31 -0
  396. data/vendor/Image-ExifTool-9.27/t/EXE_2.out +40 -0
  397. data/vendor/Image-ExifTool-9.27/t/EXE_3.out +15 -0
  398. data/vendor/Image-ExifTool-9.27/t/EXE_4.out +14 -0
  399. data/vendor/Image-ExifTool-9.27/t/ExifTool.t +284 -0
  400. data/vendor/Image-ExifTool-9.27/t/ExifTool_16.out +180 -0
  401. data/vendor/Image-ExifTool-9.27/t/ExifTool_17.out +594 -0
  402. data/vendor/Image-ExifTool-9.27/t/ExifTool_2.out +399 -0
  403. data/vendor/Image-ExifTool-9.27/t/ExifTool_20.out +1 -0
  404. data/vendor/Image-ExifTool-9.27/t/ExifTool_21.out +1 -0
  405. data/vendor/Image-ExifTool-9.27/t/ExifTool_22.out +1 -0
  406. data/vendor/Image-ExifTool-9.27/t/ExifTool_23.out +6 -0
  407. data/vendor/Image-ExifTool-9.27/t/ExifTool_24.out +3 -0
  408. data/vendor/Image-ExifTool-9.27/t/ExifTool_25.out +13 -0
  409. data/vendor/Image-ExifTool-9.27/t/ExifTool_26.out +12 -0
  410. data/vendor/Image-ExifTool-9.27/t/ExifTool_3.out +87 -0
  411. data/vendor/Image-ExifTool-9.27/t/ExifTool_4.out +41 -0
  412. data/vendor/Image-ExifTool-9.27/t/ExifTool_5.out +6 -0
  413. data/vendor/Image-ExifTool-9.27/t/ExifTool_6.out +68 -0
  414. data/vendor/Image-ExifTool-9.27/t/ExifTool_7.out +125 -0
  415. data/vendor/Image-ExifTool-9.27/t/ExifTool_8.out +125 -0
  416. data/vendor/Image-ExifTool-9.27/t/ExifTool_9.out +33 -0
  417. data/vendor/Image-ExifTool-9.27/t/FLAC.t +37 -0
  418. data/vendor/Image-ExifTool-9.27/t/FLAC_2.out +25 -0
  419. data/vendor/Image-ExifTool-9.27/t/FLAC_3.out +19 -0
  420. data/vendor/Image-ExifTool-9.27/t/FLIR.t +30 -0
  421. data/vendor/Image-ExifTool-9.27/t/FLIR_2.out +93 -0
  422. data/vendor/Image-ExifTool-9.27/t/FLIR_3.out +47 -0
  423. data/vendor/Image-ExifTool-9.27/t/Flash.t +37 -0
  424. data/vendor/Image-ExifTool-9.27/t/FlashPix.t +30 -0
  425. data/vendor/Image-ExifTool-9.27/t/FlashPix_2.out +48 -0
  426. data/vendor/Image-ExifTool-9.27/t/Flash_2.out +20 -0
  427. data/vendor/Image-ExifTool-9.27/t/Flash_3.out +53 -0
  428. data/vendor/Image-ExifTool-9.27/t/Font.t +30 -0
  429. data/vendor/Image-ExifTool-9.27/t/Font_2.out +23 -0
  430. data/vendor/Image-ExifTool-9.27/t/Font_3.out +35 -0
  431. data/vendor/Image-ExifTool-9.27/t/Font_4.out +26 -0
  432. data/vendor/Image-ExifTool-9.27/t/Font_5.out +26 -0
  433. data/vendor/Image-ExifTool-9.27/t/Font_6.out +36 -0
  434. data/vendor/Image-ExifTool-9.27/t/Font_7.out +36 -0
  435. data/vendor/Image-ExifTool-9.27/t/FotoStation.t +38 -0
  436. data/vendor/Image-ExifTool-9.27/t/FotoStation_2.out +39 -0
  437. data/vendor/Image-ExifTool-9.27/t/FotoStation_3.out +3 -0
  438. data/vendor/Image-ExifTool-9.27/t/FujiFilm.t +78 -0
  439. data/vendor/Image-ExifTool-9.27/t/FujiFilm_2.out +87 -0
  440. data/vendor/Image-ExifTool-9.27/t/FujiFilm_3.out +88 -0
  441. data/vendor/Image-ExifTool-9.27/t/FujiFilm_4.out +117 -0
  442. data/vendor/Image-ExifTool-9.27/t/FujiFilm_5.out +1 -0
  443. data/vendor/Image-ExifTool-9.27/t/GE.t +46 -0
  444. data/vendor/Image-ExifTool-9.27/t/GE_2.out +84 -0
  445. data/vendor/Image-ExifTool-9.27/t/GE_3.out +84 -0
  446. data/vendor/Image-ExifTool-9.27/t/GIF.t +83 -0
  447. data/vendor/Image-ExifTool-9.27/t/GIF_2.out +40 -0
  448. data/vendor/Image-ExifTool-9.27/t/GIF_3.out +41 -0
  449. data/vendor/Image-ExifTool-9.27/t/GIF_4.out +16 -0
  450. data/vendor/Image-ExifTool-9.27/t/GIMP.t +27 -0
  451. data/vendor/Image-ExifTool-9.27/t/GIMP_2.out +63 -0
  452. data/vendor/Image-ExifTool-9.27/t/GPS.t +42 -0
  453. data/vendor/Image-ExifTool-9.27/t/GPS_2.out +94 -0
  454. data/vendor/Image-ExifTool-9.27/t/GPS_3.out +96 -0
  455. data/vendor/Image-ExifTool-9.27/t/GeoTiff.t +36 -0
  456. data/vendor/Image-ExifTool-9.27/t/GeoTiff_2.out +36 -0
  457. data/vendor/Image-ExifTool-9.27/t/GeoTiff_3.out +36 -0
  458. data/vendor/Image-ExifTool-9.27/t/Geotag.t +164 -0
  459. data/vendor/Image-ExifTool-9.27/t/Geotag_2.out +9 -0
  460. data/vendor/Image-ExifTool-9.27/t/Geotag_3.out +6 -0
  461. data/vendor/Image-ExifTool-9.27/t/Geotag_5.out +1 -0
  462. data/vendor/Image-ExifTool-9.27/t/Geotag_6.out +9 -0
  463. data/vendor/Image-ExifTool-9.27/t/Geotag_7.out +53 -0
  464. data/vendor/Image-ExifTool-9.27/t/Geotag_8.out +15 -0
  465. data/vendor/Image-ExifTool-9.27/t/HTML.t +28 -0
  466. data/vendor/Image-ExifTool-9.27/t/HTML_2.out +68 -0
  467. data/vendor/Image-ExifTool-9.27/t/IPTC.t +157 -0
  468. data/vendor/Image-ExifTool-9.27/t/IPTC_2.out +58 -0
  469. data/vendor/Image-ExifTool-9.27/t/IPTC_4.out +56 -0
  470. data/vendor/Image-ExifTool-9.27/t/IPTC_5.out +1 -0
  471. data/vendor/Image-ExifTool-9.27/t/IPTC_6.out +2 -0
  472. data/vendor/Image-ExifTool-9.27/t/IPTC_7.out +1 -0
  473. data/vendor/Image-ExifTool-9.27/t/IPTC_8.out +20 -0
  474. data/vendor/Image-ExifTool-9.27/t/ITC.t +28 -0
  475. data/vendor/Image-ExifTool-9.27/t/ITC_2.out +19 -0
  476. data/vendor/Image-ExifTool-9.27/t/InDesign.t +61 -0
  477. data/vendor/Image-ExifTool-9.27/t/InDesign_2.out +19 -0
  478. data/vendor/Image-ExifTool-9.27/t/InDesign_3.out +21 -0
  479. data/vendor/Image-ExifTool-9.27/t/InDesign_4.out +11 -0
  480. data/vendor/Image-ExifTool-9.27/t/JVC.t +36 -0
  481. data/vendor/Image-ExifTool-9.27/t/JVC_2.out +3 -0
  482. data/vendor/Image-ExifTool-9.27/t/JVC_3.out +3 -0
  483. data/vendor/Image-ExifTool-9.27/t/Jpeg2000.t +49 -0
  484. data/vendor/Image-ExifTool-9.27/t/Jpeg2000_2.out +63 -0
  485. data/vendor/Image-ExifTool-9.27/t/Jpeg2000_3.out +51 -0
  486. data/vendor/Image-ExifTool-9.27/t/Jpeg2000_4.out +15 -0
  487. data/vendor/Image-ExifTool-9.27/t/Kodak.t +40 -0
  488. data/vendor/Image-ExifTool-9.27/t/Kodak_2.out +109 -0
  489. data/vendor/Image-ExifTool-9.27/t/Kodak_3.out +119 -0
  490. data/vendor/Image-ExifTool-9.27/t/KyoceraRaw.t +28 -0
  491. data/vendor/Image-ExifTool-9.27/t/KyoceraRaw_2.out +27 -0
  492. data/vendor/Image-ExifTool-9.27/t/LNK.t +28 -0
  493. data/vendor/Image-ExifTool-9.27/t/LNK_2.out +45 -0
  494. data/vendor/Image-ExifTool-9.27/t/Lang.t +40 -0
  495. data/vendor/Image-ExifTool-9.27/t/Lang_1.out +1 -0
  496. data/vendor/Image-ExifTool-9.27/t/Lang_10.out +46 -0
  497. data/vendor/Image-ExifTool-9.27/t/Lang_11.out +46 -0
  498. data/vendor/Image-ExifTool-9.27/t/Lang_12.out +46 -0
  499. data/vendor/Image-ExifTool-9.27/t/Lang_13.out +46 -0
  500. data/vendor/Image-ExifTool-9.27/t/Lang_14.out +46 -0
  501. data/vendor/Image-ExifTool-9.27/t/Lang_15.out +46 -0
  502. data/vendor/Image-ExifTool-9.27/t/Lang_16.out +46 -0
  503. data/vendor/Image-ExifTool-9.27/t/Lang_17.out +46 -0
  504. data/vendor/Image-ExifTool-9.27/t/Lang_18.out +46 -0
  505. data/vendor/Image-ExifTool-9.27/t/Lang_2.out +46 -0
  506. data/vendor/Image-ExifTool-9.27/t/Lang_3.out +46 -0
  507. data/vendor/Image-ExifTool-9.27/t/Lang_4.out +46 -0
  508. data/vendor/Image-ExifTool-9.27/t/Lang_5.out +46 -0
  509. data/vendor/Image-ExifTool-9.27/t/Lang_6.out +46 -0
  510. data/vendor/Image-ExifTool-9.27/t/Lang_7.out +46 -0
  511. data/vendor/Image-ExifTool-9.27/t/Lang_8.out +46 -0
  512. data/vendor/Image-ExifTool-9.27/t/Lang_9.out +46 -0
  513. data/vendor/Image-ExifTool-9.27/t/M2TS.t +29 -0
  514. data/vendor/Image-ExifTool-9.27/t/M2TS_2.out +27 -0
  515. data/vendor/Image-ExifTool-9.27/t/MIE.t +82 -0
  516. data/vendor/Image-ExifTool-9.27/t/MIE_2.out +67 -0
  517. data/vendor/Image-ExifTool-9.27/t/MIE_3.out +134 -0
  518. data/vendor/Image-ExifTool-9.27/t/MIE_5.out +1 -0
  519. data/vendor/Image-ExifTool-9.27/t/MIE_6.out +1 -0
  520. data/vendor/Image-ExifTool-9.27/t/MIFF.t +28 -0
  521. data/vendor/Image-ExifTool-9.27/t/MIFF_2.out +108 -0
  522. data/vendor/Image-ExifTool-9.27/t/MP3.t +29 -0
  523. data/vendor/Image-ExifTool-9.27/t/MP3_2.out +45 -0
  524. data/vendor/Image-ExifTool-9.27/t/MWG.t +72 -0
  525. data/vendor/Image-ExifTool-9.27/t/MWG_2.out +13 -0
  526. data/vendor/Image-ExifTool-9.27/t/MWG_3.out +8 -0
  527. data/vendor/Image-ExifTool-9.27/t/MWG_4.out +5 -0
  528. data/vendor/Image-ExifTool-9.27/t/MWG_5.out +22 -0
  529. data/vendor/Image-ExifTool-9.27/t/MXF.t +27 -0
  530. data/vendor/Image-ExifTool-9.27/t/MXF_2.out +78 -0
  531. data/vendor/Image-ExifTool-9.27/t/Matroska.t +29 -0
  532. data/vendor/Image-ExifTool-9.27/t/Matroska_2.out +64 -0
  533. data/vendor/Image-ExifTool-9.27/t/Minolta.t +50 -0
  534. data/vendor/Image-ExifTool-9.27/t/Minolta_2.out +133 -0
  535. data/vendor/Image-ExifTool-9.27/t/Minolta_3.out +146 -0
  536. data/vendor/Image-ExifTool-9.27/t/Minolta_4.out +148 -0
  537. data/vendor/Image-ExifTool-9.27/t/Nikon.t +114 -0
  538. data/vendor/Image-ExifTool-9.27/t/Nikon_2.out +82 -0
  539. data/vendor/Image-ExifTool-9.27/t/Nikon_3.out +98 -0
  540. data/vendor/Image-ExifTool-9.27/t/Nikon_4.out +173 -0
  541. data/vendor/Image-ExifTool-9.27/t/Nikon_5.out +167 -0
  542. data/vendor/Image-ExifTool-9.27/t/Nikon_7.out +260 -0
  543. data/vendor/Image-ExifTool-9.27/t/Nikon_8.out +4 -0
  544. data/vendor/Image-ExifTool-9.27/t/Olympus.t +85 -0
  545. data/vendor/Image-ExifTool-9.27/t/Olympus_2.out +79 -0
  546. data/vendor/Image-ExifTool-9.27/t/Olympus_3.out +81 -0
  547. data/vendor/Image-ExifTool-9.27/t/Olympus_4.out +192 -0
  548. data/vendor/Image-ExifTool-9.27/t/Olympus_5.out +264 -0
  549. data/vendor/Image-ExifTool-9.27/t/Olympus_6.out +151 -0
  550. data/vendor/Image-ExifTool-9.27/t/Olympus_7.out +482 -0
  551. data/vendor/Image-ExifTool-9.27/t/OpenEXR.t +28 -0
  552. data/vendor/Image-ExifTool-9.27/t/OpenEXR_2.out +23 -0
  553. data/vendor/Image-ExifTool-9.27/t/PDF.t +295 -0
  554. data/vendor/Image-ExifTool-9.27/t/PDF_10.out +10 -0
  555. data/vendor/Image-ExifTool-9.27/t/PDF_11.out +10 -0
  556. data/vendor/Image-ExifTool-9.27/t/PDF_12.out +9 -0
  557. data/vendor/Image-ExifTool-9.27/t/PDF_14.out +5 -0
  558. data/vendor/Image-ExifTool-9.27/t/PDF_15.out +6 -0
  559. data/vendor/Image-ExifTool-9.27/t/PDF_16.out +4 -0
  560. data/vendor/Image-ExifTool-9.27/t/PDF_17.out +4 -0
  561. data/vendor/Image-ExifTool-9.27/t/PDF_18.out +5 -0
  562. data/vendor/Image-ExifTool-9.27/t/PDF_19.out +6 -0
  563. data/vendor/Image-ExifTool-9.27/t/PDF_2.out +117 -0
  564. data/vendor/Image-ExifTool-9.27/t/PDF_20.out +4 -0
  565. data/vendor/Image-ExifTool-9.27/t/PDF_22.out +3 -0
  566. data/vendor/Image-ExifTool-9.27/t/PDF_4.out +12 -0
  567. data/vendor/Image-ExifTool-9.27/t/PDF_5.out +8 -0
  568. data/vendor/Image-ExifTool-9.27/t/PDF_6.out +9 -0
  569. data/vendor/Image-ExifTool-9.27/t/PDF_7.out +11 -0
  570. data/vendor/Image-ExifTool-9.27/t/PDF_8.out +9 -0
  571. data/vendor/Image-ExifTool-9.27/t/PDF_9.out +9 -0
  572. data/vendor/Image-ExifTool-9.27/t/PGF.t +28 -0
  573. data/vendor/Image-ExifTool-9.27/t/PGF_2.out +32 -0
  574. data/vendor/Image-ExifTool-9.27/t/PICT.t +28 -0
  575. data/vendor/Image-ExifTool-9.27/t/PICT_2.out +15 -0
  576. data/vendor/Image-ExifTool-9.27/t/PLIST.t +31 -0
  577. data/vendor/Image-ExifTool-9.27/t/PLIST_2.out +20 -0
  578. data/vendor/Image-ExifTool-9.27/t/PLIST_3.out +20 -0
  579. data/vendor/Image-ExifTool-9.27/t/PNG.t +75 -0
  580. data/vendor/Image-ExifTool-9.27/t/PNG_2.out +22 -0
  581. data/vendor/Image-ExifTool-9.27/t/PNG_3.out +118 -0
  582. data/vendor/Image-ExifTool-9.27/t/PNG_4.out +12 -0
  583. data/vendor/Image-ExifTool-9.27/t/PPM.t +40 -0
  584. data/vendor/Image-ExifTool-9.27/t/PPM_2.out +15 -0
  585. data/vendor/Image-ExifTool-9.27/t/PPM_3.out +9 -0
  586. data/vendor/Image-ExifTool-9.27/t/PSP.t +28 -0
  587. data/vendor/Image-ExifTool-9.27/t/PSP_2.out +32 -0
  588. data/vendor/Image-ExifTool-9.27/t/Panasonic.t +60 -0
  589. data/vendor/Image-ExifTool-9.27/t/Panasonic_2.out +99 -0
  590. data/vendor/Image-ExifTool-9.27/t/Panasonic_3.out +119 -0
  591. data/vendor/Image-ExifTool-9.27/t/Panasonic_4.out +177 -0
  592. data/vendor/Image-ExifTool-9.27/t/Panasonic_5.out +228 -0
  593. data/vendor/Image-ExifTool-9.27/t/Pentax.t +50 -0
  594. data/vendor/Image-ExifTool-9.27/t/Pentax_2.out +219 -0
  595. data/vendor/Image-ExifTool-9.27/t/Pentax_3.out +262 -0
  596. data/vendor/Image-ExifTool-9.27/t/Pentax_4.out +123 -0
  597. data/vendor/Image-ExifTool-9.27/t/PhotoCD.t +28 -0
  598. data/vendor/Image-ExifTool-9.27/t/PhotoCD_2.out +35 -0
  599. data/vendor/Image-ExifTool-9.27/t/PhotoMechanic.t +38 -0
  600. data/vendor/Image-ExifTool-9.27/t/PhotoMechanic_2.out +81 -0
  601. data/vendor/Image-ExifTool-9.27/t/PhotoMechanic_3.out +2 -0
  602. data/vendor/Image-ExifTool-9.27/t/Photoshop.t +42 -0
  603. data/vendor/Image-ExifTool-9.27/t/Photoshop_2.out +96 -0
  604. data/vendor/Image-ExifTool-9.27/t/Photoshop_3.out +108 -0
  605. data/vendor/Image-ExifTool-9.27/t/PostScript.t +49 -0
  606. data/vendor/Image-ExifTool-9.27/t/PostScript_2.out +64 -0
  607. data/vendor/Image-ExifTool-9.27/t/PostScript_3.out +132 -0
  608. data/vendor/Image-ExifTool-9.27/t/QuickTime.t +31 -0
  609. data/vendor/Image-ExifTool-9.27/t/QuickTime_2.out +128 -0
  610. data/vendor/Image-ExifTool-9.27/t/QuickTime_3.out +69 -0
  611. data/vendor/Image-ExifTool-9.27/t/RIFF.t +31 -0
  612. data/vendor/Image-ExifTool-9.27/t/RIFF_2.out +24 -0
  613. data/vendor/Image-ExifTool-9.27/t/RIFF_3.out +52 -0
  614. data/vendor/Image-ExifTool-9.27/t/RIFF_4.out +16 -0
  615. data/vendor/Image-ExifTool-9.27/t/RTF.t +27 -0
  616. data/vendor/Image-ExifTool-9.27/t/RTF_2.out +20 -0
  617. data/vendor/Image-ExifTool-9.27/t/Radiance.t +28 -0
  618. data/vendor/Image-ExifTool-9.27/t/Radiance_2.out +22 -0
  619. data/vendor/Image-ExifTool-9.27/t/Real.t +46 -0
  620. data/vendor/Image-ExifTool-9.27/t/Real_2.out +68 -0
  621. data/vendor/Image-ExifTool-9.27/t/Real_3.out +18 -0
  622. data/vendor/Image-ExifTool-9.27/t/Real_4.out +11 -0
  623. data/vendor/Image-ExifTool-9.27/t/Ricoh.t +47 -0
  624. data/vendor/Image-ExifTool-9.27/t/Ricoh_2.out +70 -0
  625. data/vendor/Image-ExifTool-9.27/t/Ricoh_3.out +98 -0
  626. data/vendor/Image-ExifTool-9.27/t/Ricoh_4.out +112 -0
  627. data/vendor/Image-ExifTool-9.27/t/Sanyo.t +39 -0
  628. data/vendor/Image-ExifTool-9.27/t/Sanyo_2.out +101 -0
  629. data/vendor/Image-ExifTool-9.27/t/Sanyo_3.out +111 -0
  630. data/vendor/Image-ExifTool-9.27/t/Sigma.t +60 -0
  631. data/vendor/Image-ExifTool-9.27/t/Sigma_2.out +91 -0
  632. data/vendor/Image-ExifTool-9.27/t/Sigma_3.out +94 -0
  633. data/vendor/Image-ExifTool-9.27/t/Sigma_4.out +63 -0
  634. data/vendor/Image-ExifTool-9.27/t/Sigma_5.out +192 -0
  635. data/vendor/Image-ExifTool-9.27/t/Sony.t +62 -0
  636. data/vendor/Image-ExifTool-9.27/t/Sony_2.out +84 -0
  637. data/vendor/Image-ExifTool-9.27/t/Sony_3.out +85 -0
  638. data/vendor/Image-ExifTool-9.27/t/Sony_5.out +32 -0
  639. data/vendor/Image-ExifTool-9.27/t/TestLib.pm +417 -0
  640. data/vendor/Image-ExifTool-9.27/t/Unknown.t +36 -0
  641. data/vendor/Image-ExifTool-9.27/t/Unknown_2.out +90 -0
  642. data/vendor/Image-ExifTool-9.27/t/Unknown_3.out +90 -0
  643. data/vendor/Image-ExifTool-9.27/t/Vorbis.t +28 -0
  644. data/vendor/Image-ExifTool-9.27/t/Vorbis_2.out +28 -0
  645. data/vendor/Image-ExifTool-9.27/t/Writer.t +896 -0
  646. data/vendor/Image-ExifTool-9.27/t/Writer_10.out +239 -0
  647. data/vendor/Image-ExifTool-9.27/t/Writer_11.out +37 -0
  648. data/vendor/Image-ExifTool-9.27/t/Writer_13.out +160 -0
  649. data/vendor/Image-ExifTool-9.27/t/Writer_14.out +67 -0
  650. data/vendor/Image-ExifTool-9.27/t/Writer_15.out +171 -0
  651. data/vendor/Image-ExifTool-9.27/t/Writer_16.out +1 -0
  652. data/vendor/Image-ExifTool-9.27/t/Writer_17.out +1 -0
  653. data/vendor/Image-ExifTool-9.27/t/Writer_18.out +3 -0
  654. data/vendor/Image-ExifTool-9.27/t/Writer_19.out +34 -0
  655. data/vendor/Image-ExifTool-9.27/t/Writer_2.out +168 -0
  656. data/vendor/Image-ExifTool-9.27/t/Writer_22.out +4 -0
  657. data/vendor/Image-ExifTool-9.27/t/Writer_24.out +1 -0
  658. data/vendor/Image-ExifTool-9.27/t/Writer_25.out +38 -0
  659. data/vendor/Image-ExifTool-9.27/t/Writer_26.out +32 -0
  660. data/vendor/Image-ExifTool-9.27/t/Writer_27.out +14 -0
  661. data/vendor/Image-ExifTool-9.27/t/Writer_28.out +1 -0
  662. data/vendor/Image-ExifTool-9.27/t/Writer_29.out +2 -0
  663. data/vendor/Image-ExifTool-9.27/t/Writer_30.out +2 -0
  664. data/vendor/Image-ExifTool-9.27/t/Writer_31.out +97 -0
  665. data/vendor/Image-ExifTool-9.27/t/Writer_32.out +3 -0
  666. data/vendor/Image-ExifTool-9.27/t/Writer_33.out +3 -0
  667. data/vendor/Image-ExifTool-9.27/t/Writer_34.out +3 -0
  668. data/vendor/Image-ExifTool-9.27/t/Writer_35.out +187 -0
  669. data/vendor/Image-ExifTool-9.27/t/Writer_36.out +2 -0
  670. data/vendor/Image-ExifTool-9.27/t/Writer_37.out +2 -0
  671. data/vendor/Image-ExifTool-9.27/t/Writer_38.out +62 -0
  672. data/vendor/Image-ExifTool-9.27/t/Writer_39.out +4 -0
  673. data/vendor/Image-ExifTool-9.27/t/Writer_4.out +85 -0
  674. data/vendor/Image-ExifTool-9.27/t/Writer_40.out +4 -0
  675. data/vendor/Image-ExifTool-9.27/t/Writer_41.out +3 -0
  676. data/vendor/Image-ExifTool-9.27/t/Writer_42.out +5 -0
  677. data/vendor/Image-ExifTool-9.27/t/Writer_43.out +5 -0
  678. data/vendor/Image-ExifTool-9.27/t/Writer_44.out +2 -0
  679. data/vendor/Image-ExifTool-9.27/t/Writer_45.out +1 -0
  680. data/vendor/Image-ExifTool-9.27/t/Writer_46.out +77 -0
  681. data/vendor/Image-ExifTool-9.27/t/Writer_47.out +56 -0
  682. data/vendor/Image-ExifTool-9.27/t/Writer_48.out +29 -0
  683. data/vendor/Image-ExifTool-9.27/t/Writer_50.out +3 -0
  684. data/vendor/Image-ExifTool-9.27/t/Writer_6.out +182 -0
  685. data/vendor/Image-ExifTool-9.27/t/Writer_7.out +149 -0
  686. data/vendor/Image-ExifTool-9.27/t/Writer_9.out +236 -0
  687. data/vendor/Image-ExifTool-9.27/t/XMP.t +521 -0
  688. data/vendor/Image-ExifTool-9.27/t/XMP_10.out +33 -0
  689. data/vendor/Image-ExifTool-9.27/t/XMP_11.out +59 -0
  690. data/vendor/Image-ExifTool-9.27/t/XMP_12.out +4 -0
  691. data/vendor/Image-ExifTool-9.27/t/XMP_13.out +5 -0
  692. data/vendor/Image-ExifTool-9.27/t/XMP_14.out +3 -0
  693. data/vendor/Image-ExifTool-9.27/t/XMP_15.out +3 -0
  694. data/vendor/Image-ExifTool-9.27/t/XMP_16.out +5 -0
  695. data/vendor/Image-ExifTool-9.27/t/XMP_17.out +6 -0
  696. data/vendor/Image-ExifTool-9.27/t/XMP_18.out +10 -0
  697. data/vendor/Image-ExifTool-9.27/t/XMP_19.out +35 -0
  698. data/vendor/Image-ExifTool-9.27/t/XMP_2.out +138 -0
  699. data/vendor/Image-ExifTool-9.27/t/XMP_20.out +35 -0
  700. data/vendor/Image-ExifTool-9.27/t/XMP_21.out +37 -0
  701. data/vendor/Image-ExifTool-9.27/t/XMP_22.out +37 -0
  702. data/vendor/Image-ExifTool-9.27/t/XMP_23.out +9 -0
  703. data/vendor/Image-ExifTool-9.27/t/XMP_24.out +31 -0
  704. data/vendor/Image-ExifTool-9.27/t/XMP_25.out +28 -0
  705. data/vendor/Image-ExifTool-9.27/t/XMP_26.out +52 -0
  706. data/vendor/Image-ExifTool-9.27/t/XMP_27.out +93 -0
  707. data/vendor/Image-ExifTool-9.27/t/XMP_28.out +44 -0
  708. data/vendor/Image-ExifTool-9.27/t/XMP_29.out +24 -0
  709. data/vendor/Image-ExifTool-9.27/t/XMP_3.out +136 -0
  710. data/vendor/Image-ExifTool-9.27/t/XMP_30.out +90 -0
  711. data/vendor/Image-ExifTool-9.27/t/XMP_31.out +19 -0
  712. data/vendor/Image-ExifTool-9.27/t/XMP_32.out +2 -0
  713. data/vendor/Image-ExifTool-9.27/t/XMP_34.out +2 -0
  714. data/vendor/Image-ExifTool-9.27/t/XMP_36.out +18 -0
  715. data/vendor/Image-ExifTool-9.27/t/XMP_37.out +35 -0
  716. data/vendor/Image-ExifTool-9.27/t/XMP_39.out +44 -0
  717. data/vendor/Image-ExifTool-9.27/t/XMP_40.out +3 -0
  718. data/vendor/Image-ExifTool-9.27/t/XMP_41.out +175 -0
  719. data/vendor/Image-ExifTool-9.27/t/XMP_5.out +29 -0
  720. data/vendor/Image-ExifTool-9.27/t/XMP_6.out +87 -0
  721. data/vendor/Image-ExifTool-9.27/t/XMP_7.out +118 -0
  722. data/vendor/Image-ExifTool-9.27/t/XMP_8.out +17 -0
  723. data/vendor/Image-ExifTool-9.27/t/XMP_9.out +36 -0
  724. data/vendor/Image-ExifTool-9.27/t/ZIP.t +69 -0
  725. data/vendor/Image-ExifTool-9.27/t/ZIP_2.out +18 -0
  726. data/vendor/Image-ExifTool-9.27/t/ZIP_3.out +17 -0
  727. data/vendor/Image-ExifTool-9.27/t/ZIP_4.out +213 -0
  728. data/vendor/Image-ExifTool-9.27/t/ZIP_5.out +134 -0
  729. data/vendor/Image-ExifTool-9.27/t/ZIP_6.out +49 -0
  730. data/vendor/Image-ExifTool-9.27/t/ZIP_7.out +28 -0
  731. data/vendor/Image-ExifTool-9.27/t/images/AFCP.jpg +0 -0
  732. data/vendor/Image-ExifTool-9.27/t/images/AIFF.aif +0 -0
  733. data/vendor/Image-ExifTool-9.27/t/images/APE.ape +0 -0
  734. data/vendor/Image-ExifTool-9.27/t/images/APE.mpc +0 -0
  735. data/vendor/Image-ExifTool-9.27/t/images/ASF.wmv +0 -0
  736. data/vendor/Image-ExifTool-9.27/t/images/BMP.bmp +0 -0
  737. data/vendor/Image-ExifTool-9.27/t/images/BigTIFF.btf +0 -0
  738. data/vendor/Image-ExifTool-9.27/t/images/Canon.jpg +0 -0
  739. data/vendor/Image-ExifTool-9.27/t/images/Canon1DmkIII.jpg +0 -0
  740. data/vendor/Image-ExifTool-9.27/t/images/CanonRaw.cr2 +0 -0
  741. data/vendor/Image-ExifTool-9.27/t/images/CanonRaw.crw +0 -0
  742. data/vendor/Image-ExifTool-9.27/t/images/CanonVRD.vrd +0 -0
  743. data/vendor/Image-ExifTool-9.27/t/images/CaptureOne.eip +0 -0
  744. data/vendor/Image-ExifTool-9.27/t/images/Casio.jpg +0 -0
  745. data/vendor/Image-ExifTool-9.27/t/images/Casio2.jpg +0 -0
  746. data/vendor/Image-ExifTool-9.27/t/images/CasioQVCI.jpg +0 -0
  747. data/vendor/Image-ExifTool-9.27/t/images/DICOM.dcm +0 -0
  748. data/vendor/Image-ExifTool-9.27/t/images/DNG.dng +0 -0
  749. data/vendor/Image-ExifTool-9.27/t/images/DV.dv +0 -0
  750. data/vendor/Image-ExifTool-9.27/t/images/DjVu.djvu +0 -0
  751. data/vendor/Image-ExifTool-9.27/t/images/EXE.elf +0 -0
  752. data/vendor/Image-ExifTool-9.27/t/images/EXE.exe +0 -0
  753. data/vendor/Image-ExifTool-9.27/t/images/EXE.macho +0 -0
  754. data/vendor/Image-ExifTool-9.27/t/images/ExifTool.jpg +0 -0
  755. data/vendor/Image-ExifTool-9.27/t/images/ExifTool.tif +0 -0
  756. data/vendor/Image-ExifTool-9.27/t/images/ExtendedXMP.jpg +0 -0
  757. data/vendor/Image-ExifTool-9.27/t/images/FLAC.flac +0 -0
  758. data/vendor/Image-ExifTool-9.27/t/images/FLAC.ogg +0 -0
  759. data/vendor/Image-ExifTool-9.27/t/images/FLIR.fpf +0 -0
  760. data/vendor/Image-ExifTool-9.27/t/images/FLIR.jpg +0 -0
  761. data/vendor/Image-ExifTool-9.27/t/images/Flash.flv +0 -0
  762. data/vendor/Image-ExifTool-9.27/t/images/Flash.swf +0 -0
  763. data/vendor/Image-ExifTool-9.27/t/images/FlashPix.ppt +0 -0
  764. data/vendor/Image-ExifTool-9.27/t/images/Font.afm +28 -0
  765. data/vendor/Image-ExifTool-9.27/t/images/Font.dfont +0 -0
  766. data/vendor/Image-ExifTool-9.27/t/images/Font.pfa +38 -0
  767. data/vendor/Image-ExifTool-9.27/t/images/Font.pfb +0 -0
  768. data/vendor/Image-ExifTool-9.27/t/images/Font.pfm +0 -0
  769. data/vendor/Image-ExifTool-9.27/t/images/Font.ttf +0 -0
  770. data/vendor/Image-ExifTool-9.27/t/images/FotoStation.jpg +0 -0
  771. data/vendor/Image-ExifTool-9.27/t/images/FujiFilm.jpg +0 -0
  772. data/vendor/Image-ExifTool-9.27/t/images/FujiFilm.raf +0 -0
  773. data/vendor/Image-ExifTool-9.27/t/images/GE.jpg +0 -0
  774. data/vendor/Image-ExifTool-9.27/t/images/GIF.gif +0 -0
  775. data/vendor/Image-ExifTool-9.27/t/images/GIMP.xcf +0 -0
  776. data/vendor/Image-ExifTool-9.27/t/images/GPS.jpg +0 -0
  777. data/vendor/Image-ExifTool-9.27/t/images/GeoTiff.tif +0 -0
  778. data/vendor/Image-ExifTool-9.27/t/images/Geotag.gpx +23 -0
  779. data/vendor/Image-ExifTool-9.27/t/images/Geotag.igc +24 -0
  780. data/vendor/Image-ExifTool-9.27/t/images/Geotag.log +13 -0
  781. data/vendor/Image-ExifTool-9.27/t/images/Geotag.xml +23 -0
  782. data/vendor/Image-ExifTool-9.27/t/images/Geotag2.log +7 -0
  783. data/vendor/Image-ExifTool-9.27/t/images/HTML.html +77 -0
  784. data/vendor/Image-ExifTool-9.27/t/images/IPTC.jpg +0 -0
  785. data/vendor/Image-ExifTool-9.27/t/images/ITC.itc +0 -0
  786. data/vendor/Image-ExifTool-9.27/t/images/InDesign.indd +0 -0
  787. data/vendor/Image-ExifTool-9.27/t/images/JVC.jpg +0 -0
  788. data/vendor/Image-ExifTool-9.27/t/images/JVC2.jpg +0 -0
  789. data/vendor/Image-ExifTool-9.27/t/images/Jpeg2000.j2c +0 -0
  790. data/vendor/Image-ExifTool-9.27/t/images/Jpeg2000.jp2 +0 -0
  791. data/vendor/Image-ExifTool-9.27/t/images/Kodak.jpg +0 -0
  792. data/vendor/Image-ExifTool-9.27/t/images/KyoceraRaw.raw +0 -0
  793. data/vendor/Image-ExifTool-9.27/t/images/LNK.lnk +0 -0
  794. data/vendor/Image-ExifTool-9.27/t/images/M2TS.mts +0 -0
  795. data/vendor/Image-ExifTool-9.27/t/images/MIE.mie +0 -0
  796. data/vendor/Image-ExifTool-9.27/t/images/MIFF.miff +0 -0
  797. data/vendor/Image-ExifTool-9.27/t/images/MP3.mp3 +0 -0
  798. data/vendor/Image-ExifTool-9.27/t/images/MWG.jpg +0 -0
  799. data/vendor/Image-ExifTool-9.27/t/images/MXF.mxf +0 -0
  800. data/vendor/Image-ExifTool-9.27/t/images/Matroska.mkv +0 -0
  801. data/vendor/Image-ExifTool-9.27/t/images/Minolta.jpg +0 -0
  802. data/vendor/Image-ExifTool-9.27/t/images/Minolta.mrw +0 -0
  803. data/vendor/Image-ExifTool-9.27/t/images/Nikon.jpg +0 -0
  804. data/vendor/Image-ExifTool-9.27/t/images/Nikon.nef +0 -0
  805. data/vendor/Image-ExifTool-9.27/t/images/NikonD2Hs.jpg +0 -0
  806. data/vendor/Image-ExifTool-9.27/t/images/NikonD70.jpg +0 -0
  807. data/vendor/Image-ExifTool-9.27/t/images/OOXML.docx +0 -0
  808. data/vendor/Image-ExifTool-9.27/t/images/Olympus.jpg +0 -0
  809. data/vendor/Image-ExifTool-9.27/t/images/Olympus2.jpg +0 -0
  810. data/vendor/Image-ExifTool-9.27/t/images/OlympusE1.jpg +0 -0
  811. data/vendor/Image-ExifTool-9.27/t/images/OpenDoc.ods +0 -0
  812. data/vendor/Image-ExifTool-9.27/t/images/OpenEXR.exr +0 -0
  813. data/vendor/Image-ExifTool-9.27/t/images/PDF.pdf +0 -0
  814. data/vendor/Image-ExifTool-9.27/t/images/PDF2.pdf +0 -0
  815. data/vendor/Image-ExifTool-9.27/t/images/PGF.pgf +0 -0
  816. data/vendor/Image-ExifTool-9.27/t/images/PICT.pict +0 -0
  817. data/vendor/Image-ExifTool-9.27/t/images/PLIST-bin.plist +0 -0
  818. data/vendor/Image-ExifTool-9.27/t/images/PLIST-xml.plist +35 -0
  819. data/vendor/Image-ExifTool-9.27/t/images/PNG.png +0 -0
  820. data/vendor/Image-ExifTool-9.27/t/images/PPM.ppm +5 -0
  821. data/vendor/Image-ExifTool-9.27/t/images/PSP.psp +0 -0
  822. data/vendor/Image-ExifTool-9.27/t/images/Panasonic.jpg +0 -0
  823. data/vendor/Image-ExifTool-9.27/t/images/Panasonic.rw2 +0 -0
  824. data/vendor/Image-ExifTool-9.27/t/images/Pentax.avi +0 -0
  825. data/vendor/Image-ExifTool-9.27/t/images/Pentax.jpg +0 -0
  826. data/vendor/Image-ExifTool-9.27/t/images/PhotoCD.pcd +0 -0
  827. data/vendor/Image-ExifTool-9.27/t/images/PhotoMechanic.jpg +0 -0
  828. data/vendor/Image-ExifTool-9.27/t/images/Photoshop.psd +0 -0
  829. data/vendor/Image-ExifTool-9.27/t/images/PostScript.eps +108 -0
  830. data/vendor/Image-ExifTool-9.27/t/images/QuickTime.m4a +0 -0
  831. data/vendor/Image-ExifTool-9.27/t/images/QuickTime.mov +0 -0
  832. data/vendor/Image-ExifTool-9.27/t/images/RIFF.avi +0 -0
  833. data/vendor/Image-ExifTool-9.27/t/images/RIFF.wav +0 -0
  834. data/vendor/Image-ExifTool-9.27/t/images/RIFF.webp +0 -0
  835. data/vendor/Image-ExifTool-9.27/t/images/RTF.rtf +25 -0
  836. data/vendor/Image-ExifTool-9.27/t/images/Radiance.hdr +0 -0
  837. data/vendor/Image-ExifTool-9.27/t/images/Real.ra +0 -0
  838. data/vendor/Image-ExifTool-9.27/t/images/Real.ram +1 -0
  839. data/vendor/Image-ExifTool-9.27/t/images/Real.rm +0 -0
  840. data/vendor/Image-ExifTool-9.27/t/images/Ricoh.jpg +0 -0
  841. data/vendor/Image-ExifTool-9.27/t/images/Ricoh2.jpg +0 -0
  842. data/vendor/Image-ExifTool-9.27/t/images/Sanyo.jpg +0 -0
  843. data/vendor/Image-ExifTool-9.27/t/images/Sigma.jpg +0 -0
  844. data/vendor/Image-ExifTool-9.27/t/images/Sigma.x3f +0 -0
  845. data/vendor/Image-ExifTool-9.27/t/images/SigmaDP2.x3f +0 -0
  846. data/vendor/Image-ExifTool-9.27/t/images/Sony.jpg +0 -0
  847. data/vendor/Image-ExifTool-9.27/t/images/Sony.pmp +0 -0
  848. data/vendor/Image-ExifTool-9.27/t/images/Unknown.jpg +0 -0
  849. data/vendor/Image-ExifTool-9.27/t/images/Vorbis.ogg +0 -0
  850. data/vendor/Image-ExifTool-9.27/t/images/Writer.jpg +0 -0
  851. data/vendor/Image-ExifTool-9.27/t/images/XMP.inx +108 -0
  852. data/vendor/Image-ExifTool-9.27/t/images/XMP.jpg +0 -0
  853. data/vendor/Image-ExifTool-9.27/t/images/XMP.svg +33 -0
  854. data/vendor/Image-ExifTool-9.27/t/images/XMP.xml +98 -0
  855. data/vendor/Image-ExifTool-9.27/t/images/XMP.xmp +99 -0
  856. data/vendor/Image-ExifTool-9.27/t/images/XMP2.xmp +25 -0
  857. data/vendor/Image-ExifTool-9.27/t/images/XMP3.xmp +43 -0
  858. data/vendor/Image-ExifTool-9.27/t/images/XMP4.xmp +93 -0
  859. data/vendor/Image-ExifTool-9.27/t/images/XMP5.xmp +158 -0
  860. data/vendor/Image-ExifTool-9.27/t/images/ZIP.gz +0 -0
  861. data/vendor/Image-ExifTool-9.27/t/images/ZIP.zip +0 -0
  862. data/vendor/Image-ExifTool-9.27/t/images/iWork.numbers +0 -0
  863. metadata +868 -218
  864. data/vendor/Image-ExifTool-8.97/.DS_Store +0 -0
  865. data/vendor/Image-ExifTool-8.97/Changes +0 -5753
  866. data/vendor/Image-ExifTool-8.97/ExifTool_config +0 -299
  867. data/vendor/Image-ExifTool-8.97/MANIFEST +0 -831
  868. data/vendor/Image-ExifTool-8.97/META.yml +0 -26
  869. data/vendor/Image-ExifTool-8.97/README +0 -221
  870. data/vendor/Image-ExifTool-8.97/exiftool +0 -5207
  871. data/vendor/Image-ExifTool-8.97/kml.fmt +0 -63
  872. data/vendor/Image-ExifTool-8.97/lib/File/RandomAccess.pm +0 -378
  873. data/vendor/Image-ExifTool-8.97/lib/File/RandomAccess.pod +0 -231
  874. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool.pm +0 -6623
  875. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool.pod +0 -2276
  876. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/AES.pm +0 -501
  877. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/AFCP.pm +0 -280
  878. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/AIFF.pm +0 -271
  879. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/APE.pm +0 -254
  880. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/APP12.pm +0 -322
  881. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/ASF.pm +0 -871
  882. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/BMP.pm +0 -179
  883. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/BZZ.pm +0 -472
  884. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/BigTIFF.pm +0 -286
  885. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/BuildTagLookup.pm +0 -2311
  886. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Canon.pm +0 -7435
  887. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/CanonCustom.pm +0 -2484
  888. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/CanonRaw.pm +0 -927
  889. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/CanonVRD.pm +0 -1481
  890. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/CaptureOne.pm +0 -235
  891. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Casio.pm +0 -2013
  892. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Charset.pm +0 -396
  893. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/DICOM.pm +0 -3832
  894. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/DNG.pm +0 -835
  895. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/DV.pm +0 -319
  896. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/DjVu.pm +0 -373
  897. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/EXE.pm +0 -1228
  898. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Exif.pm +0 -4344
  899. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/FLAC.pm +0 -296
  900. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Fixup.pm +0 -333
  901. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Flash.pm +0 -755
  902. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/FlashPix.pm +0 -1882
  903. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Font.pm +0 -643
  904. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/FotoStation.pm +0 -258
  905. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/FujiFilm.pm +0 -968
  906. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/GE.pm +0 -80
  907. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/GIF.pm +0 -525
  908. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/GIMP.pm +0 -258
  909. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/GPS.pm +0 -511
  910. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/GeoTiff.pm +0 -2187
  911. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Geotag.pm +0 -1171
  912. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/H264.pm +0 -1093
  913. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/HP.pm +0 -262
  914. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/HTML.pm +0 -576
  915. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/HtmlDump.pm +0 -886
  916. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/ICC_Profile.pm +0 -997
  917. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/ID3.pm +0 -1276
  918. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/IPTC.pm +0 -1233
  919. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/ITC.pm +0 -215
  920. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Import.pm +0 -307
  921. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/InDesign.pm +0 -277
  922. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/JPEG.pm +0 -584
  923. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/JPEGDigest.pm +0 -2511
  924. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/JVC.pm +0 -130
  925. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Jpeg2000.pm +0 -823
  926. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Kodak.pm +0 -2012
  927. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/KyoceraRaw.pm +0 -173
  928. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/LNK.pm +0 -723
  929. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/cs.pm +0 -1581
  930. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/de.pm +0 -5503
  931. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/en_ca.pm +0 -557
  932. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/en_gb.pm +0 -572
  933. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/es.pm +0 -1718
  934. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/fi.pm +0 -2831
  935. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/fr.pm +0 -4716
  936. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/it.pm +0 -2201
  937. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/ja.pm +0 -5793
  938. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/ko.pm +0 -2324
  939. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/nl.pm +0 -3212
  940. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/pl.pm +0 -1134
  941. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/ru.pm +0 -761
  942. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/sv.pm +0 -632
  943. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/tr.pm +0 -539
  944. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/zh_cn.pm +0 -1320
  945. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/zh_tw.pm +0 -794
  946. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Leaf.pm +0 -515
  947. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/M2TS.pm +0 -729
  948. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/MIE.pm +0 -2552
  949. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/MIEUnits.pod +0 -377
  950. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/MIFF.pm +0 -279
  951. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/MNG.pm +0 -684
  952. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/MPC.pm +0 -156
  953. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/MPEG.pm +0 -736
  954. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/MPF.pm +0 -286
  955. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/MWG.pm +0 -586
  956. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/MXF.pm +0 -3032
  957. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/MakerNotes.pm +0 -1551
  958. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Matroska.pm +0 -891
  959. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Microsoft.pm +0 -861
  960. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Minolta.pm +0 -2786
  961. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/MinoltaRaw.pm +0 -534
  962. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Nikon.pm +0 -5568
  963. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/NikonCapture.pm +0 -911
  964. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/NikonCustom.pm +0 -3724
  965. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/OOXML.pm +0 -409
  966. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Ogg.pm +0 -237
  967. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Olympus.pm +0 -4027
  968. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/OpenEXR.pm +0 -324
  969. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/PDF.pm +0 -1986
  970. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/PGF.pm +0 -143
  971. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/PICT.pm +0 -1260
  972. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/PNG.pm +0 -1100
  973. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/PPM.pm +0 -169
  974. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/PSP.pm +0 -305
  975. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Panasonic.pm +0 -1852
  976. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/PanasonicRaw.pm +0 -383
  977. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Pentax.pm +0 -5044
  978. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/PhotoCD.pm +0 -507
  979. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/PhotoMechanic.pm +0 -250
  980. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Photoshop.pm +0 -594
  981. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/PostScript.pm +0 -691
  982. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/PrintIM.pm +0 -125
  983. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Qualcomm.pm +0 -1344
  984. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/QuickTime.pm +0 -2920
  985. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/README +0 -922
  986. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/RIFF.pm +0 -1278
  987. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/RSRC.pm +0 -240
  988. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/RTF.pm +0 -383
  989. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Radiance.pm +0 -144
  990. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Rawzor.pm +0 -190
  991. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Real.pm +0 -736
  992. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Reconyx.pm +0 -190
  993. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Ricoh.pm +0 -714
  994. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Samsung.pm +0 -764
  995. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Sanyo.pm +0 -439
  996. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Shift.pl +0 -594
  997. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Shortcuts.pm +0 -289
  998. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Sigma.pm +0 -488
  999. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/SigmaRaw.pm +0 -676
  1000. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Sony.pm +0 -3844
  1001. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/SonyIDC.pm +0 -330
  1002. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Stim.pm +0 -196
  1003. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/TagInfoXML.pm +0 -763
  1004. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/TagLookup.pm +0 -7305
  1005. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/TagNames.pod +0 -24147
  1006. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Theora.pm +0 -145
  1007. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Unknown.pm +0 -66
  1008. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Vorbis.pm +0 -221
  1009. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/WriteCanonRaw.pl +0 -637
  1010. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/WriteExif.pl +0 -3513
  1011. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/WriteIPTC.pl +0 -700
  1012. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/WritePDF.pl +0 -757
  1013. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/WritePNG.pl +0 -329
  1014. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/WritePhotoshop.pl +0 -266
  1015. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/WritePostScript.pl +0 -776
  1016. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/WriteXMP.pl +0 -1296
  1017. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Writer.pl +0 -5577
  1018. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/XMP.pm +0 -3589
  1019. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/XMP2.pl +0 -1315
  1020. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/XMPStruct.pl +0 -814
  1021. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/ZIP.pm +0 -623
  1022. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/iWork.pm +0 -223
  1023. data/vendor/Image-ExifTool-8.97/perl-Image-ExifTool.spec +0 -103
@@ -1,1852 +0,0 @@
1
- #------------------------------------------------------------------------------
2
- # File: Panasonic.pm
3
- #
4
- # Description: Panasonic/Leica maker notes tags
5
- #
6
- # Revisions: 11/10/2004 - P. Harvey Created
7
- #
8
- # References: 1) http://www.compton.nu/panasonic.html (based on FZ10)
9
- # 2) Derived from DMC-FZ3 samples from dpreview.com
10
- # 3) http://johnst.org/sw/exiftags/
11
- # 4) Tels (http://bloodgate.com/) private communication (tests with FZ5)
12
- # 7) http://homepage3.nifty.com/kamisaka/makernote/makernote_pana.htm (2007/10/02)
13
- # 8) Marcel Coenen private communication (DMC-FZ50)
14
- # 9) http://forums.dpreview.com/forums/read.asp?forum=1033&message=22756430
15
- # 10) http://bretteville.com/pdfs/M8Metadata_v2.pdf
16
- # 11) http://www.digital-leica.com/lens_codes/index.html
17
- # 12) Joerg - http://www.cpanforum.com/threads/11602 (LX3 firmware 2.0)
18
- # 13) Michael Byczkowski private communication (Leica M9)
19
- # 14) Carl Bretteville private communication (M9)
20
- # 15) Zdenek Mihula private communication (TZ8)
21
- # 16) Olaf Ulrich private communication
22
- # JD) Jens Duttke private communication (TZ3,FZ30,FZ50)
23
- #------------------------------------------------------------------------------
24
-
25
- package Image::ExifTool::Panasonic;
26
-
27
- use strict;
28
- use vars qw($VERSION %leicaLensTypes);
29
- use Image::ExifTool qw(:DataAccess :Utils);
30
- use Image::ExifTool::Exif;
31
-
32
- $VERSION = '1.66';
33
-
34
- sub ProcessPanasonicType2($$$);
35
- sub WhiteBalanceConv($;$$);
36
-
37
- # Leica lens types (ref 10)
38
- %leicaLensTypes = (
39
- OTHER => sub {
40
- my ($val, $inv, $conv) = @_;
41
- return undef if $inv or not $val =~ s/ .*//;
42
- return $$conv{$val};
43
- },
44
- Notes => q{
45
- the LensType value is obtained by splitting the stored value into 2
46
- integers: The stored value divided by 4, and its lower 2 bits. The second
47
- number is used only if necessary to identify certain manually coded lenses
48
- on the M9, or the focal length of some multi-focal lenses.
49
- },
50
- # All M9 codes (two numbers: first the LensID then the lower 2 bits)
51
- # are ref PH with samples from ref 13. From ref 10, the lower 2 bits of
52
- # the LensType value give the frame selector position for most lenses,
53
- # although for the 28-35-50mm (at least) it gives the focal length selection.
54
- # The M9 also gives the focal length selection but for other lenses the
55
- # lower 3 bits don't change with frame selector position except for the lens
56
- # shows as uncoded for certain lenses and some incorrect positions of the
57
- # frame selector. The bits are zero for uncoded lenses when manually coding
58
- # from the menu on the M9. - PH
59
- # Frame selector bits (from ref 10, M8):
60
- # 1 => '28/90mm frame lines engaged',
61
- # 2 => '24/35mm frame lines engaged',
62
- # 3 => '50/75mm frame lines engaged',
63
- '0 0' => 'Uncoded lens',
64
- #
65
- # NOTE: MUST ADD ENTRY TO %frameSelectorBits below when a new lens is added!!!!
66
- #
67
- # model number(s):
68
- 1 => 'Elmarit-M 21mm f/2.8', # 11134
69
- 3 => 'Elmarit-M 28mm f/2.8 (III)', # 11804
70
- 4 => 'Tele-Elmarit-M 90mm f/2.8 (II)', # 11800
71
- 5 => 'Summilux-M 50mm f/1.4 (II)', # 11868/11856/11114
72
- 6 => 'Summicron-M 35mm f/2 (IV)', # 11310/11311
73
- '6 0' => 'Summilux-M 35mm f/1.4', # 11869/11870/11860
74
- 7 => 'Summicron-M 90mm f/2 (II)', # 11136/11137
75
- 9 => 'Elmarit-M 135mm f/2.8 (I/II)', # 11829
76
- '9 0' => 'Apo-Telyt-M 135mm f/3.4', # 11889
77
- 16 => 'Tri-Elmar-M 16-18-21mm f/4 ASPH.',# 11626
78
- '16 1' => 'Tri-Elmar-M 16-18-21mm f/4 ASPH. (at 16mm)',
79
- '16 2' => 'Tri-Elmar-M 16-18-21mm f/4 ASPH. (at 18mm)',
80
- '16 3' => 'Tri-Elmar-M 16-18-21mm f/4 ASPH. (at 21mm)',
81
- 23 => 'Summicron-M 50mm f/2 (III)', # 11817, version (I) in camera menu
82
- 24 => 'Elmarit-M 21mm f/2.8 ASPH.', # 11135/11897
83
- 25 => 'Elmarit-M 24mm f/2.8 ASPH.', # 11878/11898
84
- 26 => 'Summicron-M 28mm f/2 ASPH.', # 11604
85
- 27 => 'Elmarit-M 28mm f/2.8 (IV)', # 11809
86
- 28 => 'Elmarit-M 28mm f/2.8 ASPH.', # 11606
87
- 29 => 'Summilux-M 35mm f/1.4 ASPH.', # 11874/11883
88
- '29 0' => 'Summilux-M 35mm f/1.4 ASPHERICAL', # 11873 (different from "ASPH." model!)
89
- 30 => 'Summicron-M 35mm f/2 ASPH.', # 11879/11882
90
- 31 => 'Noctilux-M 50mm f/1', # 11821/11822
91
- '31 0' => 'Noctilux-M 50mm f/1.2', # 11820
92
- 32 => 'Summilux-M 50mm f/1.4 ASPH.', # 11891/11892
93
- 33 => 'Summicron-M 50mm f/2 (IV, V)', # 11819/11825/11826/11816, version (II,III) in camera menu
94
- 34 => 'Elmar-M 50mm f/2.8', # 11831/11823/11825
95
- 35 => 'Summilux-M 75mm f/1.4', # 11814/11815/11810
96
- 36 => 'Apo-Summicron-M 75mm f/2 ASPH.', # 11637
97
- 37 => 'Apo-Summicron-M 90mm f/2 ASPH.', # 11884/11885
98
- 38 => 'Elmarit-M 90mm f/2.8', # 11807/11808, version (II) in camera menu
99
- 39 => 'Macro-Elmar-M 90mm f/4', # 11633/11634
100
- '39 0' => 'Tele-Elmar-M 135mm f/4 (II)',# 11861
101
- 40 => 'Macro-Adapter M', # 14409
102
- 42 => 'Tri-Elmar-M 28-35-50mm f/4 ASPH.',# 11625
103
- '42 1' => 'Tri-Elmar-M 28-35-50mm f/4 ASPH. (at 28mm)',
104
- '42 2' => 'Tri-Elmar-M 28-35-50mm f/4 ASPH. (at 35mm)',
105
- '42 3' => 'Tri-Elmar-M 28-35-50mm f/4 ASPH. (at 50mm)',
106
- 43 => 'Summarit-M 35mm f/2.5', # ? (ref PH)
107
- 44 => 'Summarit-M 50mm f/2.5', # ? (ref PH)
108
- 45 => 'Summarit-M 75mm f/2.5', # ? (ref PH)
109
- 46 => 'Summarit-M 90mm f/2.5', # ?
110
- 47 => 'Summilux-M 21mm f/1.4 ASPH.', # ? (ref 11)
111
- 48 => 'Summilux-M 24mm f/1.4 ASPH.', # ? (ref 11)
112
- 49 => 'Noctilux-M 50mm f/0.95 ASPH.', # ? (ref 11)
113
- 50 => 'Elmar-M 24mm f/3.8 ASPH.', # ? (ref 11)
114
- 51 => 'Super-Elmar-M 21mm f/3.4 Asph', # ? (ref 16, frameSelectorBits=1)
115
- '51 2' => 'Super-Elmar-M 14mm f/3.8 Asph', # ? (ref 16)
116
- 52 => 'Super-Elmar-M 18mm f/3.8 ASPH.', # ? (ref PH/11)
117
- 53 => 'Apo-Telyt-M 135mm f/3.4', # ? (ref 16)
118
-
119
- );
120
-
121
- # M9 frame selector bits for each lens
122
- # 1 = towards lens = 28/90mm or 21mm or Adapter (or Elmarit-M 135mm f/2.8)
123
- # 2 = away from lens = 24/35mm (or 35/135mm on the M9)
124
- # 3 = middle position = 50/75mm or 18mm
125
- my %frameSelectorBits = (
126
- 1 => 1,
127
- 3 => 1,
128
- 4 => 1,
129
- 5 => 3,
130
- 6 => 2,
131
- 7 => 1,
132
- 9 => 1, # (because lens has special magnifier for the rangefinder)
133
- 16 => 1, # or 2 or 3
134
- 23 => 3,
135
- 24 => 1,
136
- 25 => 2,
137
- 26 => 1,
138
- 27 => 1,
139
- 28 => 1,
140
- 29 => 2,
141
- 30 => 2,
142
- 31 => 3,
143
- 32 => 3,
144
- 33 => 3,
145
- 34 => 3,
146
- 35 => 3,
147
- 36 => 3,
148
- 37 => 1,
149
- 38 => 1,
150
- 39 => 1,
151
- 40 => 1,
152
- 42 => 1, # or 2 or 3
153
- 43 => 2, # (NC)
154
- 44 => 3, # (NC)
155
- 45 => 3,
156
- 46 => 1, # (NC)
157
- 47 => 1, # (NC)
158
- 48 => 2, # (NC)
159
- 49 => 3, # (NC)
160
- 50 => 2, # (NC)
161
- 51 => 1, # or 2 (ref 16)
162
- 52 => 3,
163
- 53 => 2, #16
164
- );
165
-
166
- # conversions for ShootingMode and SceneMode
167
- my %shootingMode = (
168
- 1 => 'Normal',
169
- 2 => 'Portrait',
170
- 3 => 'Scenery',
171
- 4 => 'Sports',
172
- 5 => 'Night Portrait',
173
- 6 => 'Program',
174
- 7 => 'Aperture Priority',
175
- 8 => 'Shutter Priority',
176
- 9 => 'Macro',
177
- 10 => 'Spot', #7
178
- 11 => 'Manual',
179
- 12 => 'Movie Preview', #PH (LZ6)
180
- 13 => 'Panning',
181
- 14 => 'Simple', #PH (LZ6)
182
- 15 => 'Color Effects', #7
183
- 16 => 'Self Portrait', #PH (TZ5)
184
- 17 => 'Economy', #7
185
- 18 => 'Fireworks',
186
- 19 => 'Party',
187
- 20 => 'Snow',
188
- 21 => 'Night Scenery',
189
- 22 => 'Food', #7
190
- 23 => 'Baby', #JD
191
- 24 => 'Soft Skin', #PH (LZ6)
192
- 25 => 'Candlelight', #PH (LZ6)
193
- 26 => 'Starry Night', #PH (LZ6)
194
- 27 => 'High Sensitivity', #7 (LZ6)
195
- 28 => 'Panorama Assist', #7
196
- 29 => 'Underwater', #7
197
- 30 => 'Beach', #PH (LZ6)
198
- 31 => 'Aerial Photo', #PH (LZ6)
199
- 32 => 'Sunset', #PH (LZ6)
200
- 33 => 'Pet', #JD
201
- 34 => 'Intelligent ISO', #PH (LZ6)
202
- 35 => 'Clipboard', #7
203
- 36 => 'High Speed Continuous Shooting', #7
204
- 37 => 'Intelligent Auto', #7
205
- 39 => 'Multi-aspect', #PH (TZ5)
206
- 41 => 'Transform', #PH (FS7)
207
- 42 => 'Flash Burst', #PH (FZ28)
208
- 43 => 'Pin Hole', #PH (FZ28)
209
- 44 => 'Film Grain', #PH (FZ28)
210
- 45 => 'My Color', #PH (GF1)
211
- 46 => 'Photo Frame', #PH (FS7)
212
- # 49 - seen for FS4 (snow?)
213
- 51 => 'HDR', #12
214
- 55 => 'Handheld Night Shot', #PH (FZ47)
215
- 57 => '3D', #PH (3D1)
216
- 59 => 'Creative Control', #PH (FZ47)
217
- 66 => 'Digital Filter', #PH (GF5 "Impressive Art", "Cross Process", "Color Select", "Star")
218
- );
219
-
220
- %Image::ExifTool::Panasonic::Main = (
221
- WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
222
- CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
223
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
224
- WRITABLE => 1,
225
- 0x01 => {
226
- Name => 'ImageQuality',
227
- Writable => 'int16u',
228
- PrintConv => {
229
- 2 => 'High',
230
- 3 => 'Normal',
231
- 6 => 'Very High', #3 (Leica)
232
- 7 => 'Raw', #3 (Leica)
233
- 9 => 'Motion Picture', #PH (LZ6)
234
- },
235
- },
236
- 0x02 => {
237
- Name => 'FirmwareVersion',
238
- Writable => 'undef',
239
- Notes => q{
240
- for some camera models such as the FZ30 this may be an internal production
241
- reference number and not the actual firmware version
242
- }, # (ref http://www.stevesforums.com/forums/view_topic.php?id=87764&forum_id=23&)
243
- # (can be either binary or ascii -- add decimal points if binary)
244
- ValueConv => '$val=~/[\0-\x2f]/ ? join(" ",unpack("C*",$val)) : $val',
245
- ValueConvInv => q{
246
- $val =~ /(\d+ ){3}\d+/ and $val = pack('C*',split(' ', $val));
247
- length($val) == 4 or warn "Version must be 4 numbers\n";
248
- return $val;
249
- },
250
- PrintConv => '$val=~tr/ /./; $val',
251
- PrintConvInv => '$val=~tr/./ /; $val',
252
- },
253
- 0x03 => {
254
- Name => 'WhiteBalance',
255
- Writable => 'int16u',
256
- PrintConv => {
257
- 1 => 'Auto',
258
- 2 => 'Daylight',
259
- 3 => 'Cloudy',
260
- 4 => 'Incandescent', #PH
261
- 5 => 'Manual',
262
- 8 => 'Flash',
263
- 10 => 'Black & White', #3 (Leica)
264
- 11 => 'Manual', #PH (FZ8)
265
- 12 => 'Shade', #PH (FS7)
266
- 13 => 'Kelvin', #PeterK (NC)
267
- },
268
- },
269
- 0x07 => {
270
- Name => 'FocusMode',
271
- Writable => 'int16u',
272
- PrintConv => {
273
- 1 => 'Auto',
274
- 2 => 'Manual',
275
- 4 => 'Auto, Focus button', #4
276
- 5 => 'Auto, Continuous', #4
277
- # have seens 6 for GF1 - PH
278
- },
279
- },
280
- 0x0f => [
281
- {
282
- Name => 'AFAreaMode',
283
- Condition => '$$self{Model} =~ /DMC-FZ10\b/', #JD
284
- Writable => 'int8u',
285
- Count => 2,
286
- Notes => 'DMC-FZ10',
287
- PrintConv => {
288
- '0 1' => 'Spot Mode On',
289
- '0 16' => 'Spot Mode Off',
290
- },
291
- },{
292
- Name => 'AFAreaMode',
293
- Writable => 'int8u',
294
- Count => 2,
295
- Notes => 'other models',
296
- PrintConv => { #PH
297
- '0 1' => '9-area', # (FS7)
298
- '0 16' => '3-area (high speed)', # (FZ8)
299
- '0 23' => '23-area', #PH (FZ47,NC)
300
- '1 0' => 'Spot Focusing', # (FZ8)
301
- '1 1' => '5-area', # (FZ8)
302
- '16' => 'Normal?', # (only mode for DMC-LC20)
303
- '16 0' => '1-area', # (FZ8)
304
- '16 16' => '1-area (high speed)', # (FZ8)
305
- '32 0' => 'Auto or Face Detect', # (Face Detect for FS7, Auto is DMC-L1 guess)
306
- '32 1' => '3-area (left)?', # (DMC-L1 guess)
307
- '32 2' => '3-area (center)?', # (DMC-L1 guess)
308
- '32 3' => '3-area (right)?', # (DMC-L1 guess)
309
- '64 0' => 'Face Detect',
310
- },
311
- },
312
- ],
313
- 0x1a => {
314
- Name => 'ImageStabilization',
315
- Writable => 'int16u',
316
- PrintConv => {
317
- 2 => 'On, Mode 1',
318
- 3 => 'Off',
319
- 4 => 'On, Mode 2',
320
- # GF1 also has a mode 3
321
- },
322
- },
323
- 0x1c => {
324
- Name => 'MacroMode',
325
- Writable => 'int16u',
326
- PrintConv => {
327
- 1 => 'On',
328
- 2 => 'Off',
329
- 0x101 => 'Tele-Macro', #7
330
- 0x201 => 'Macro Zoom', #PH (FS7)
331
- },
332
- },
333
- 0x1f => {
334
- Name => 'ShootingMode',
335
- Writable => 'int16u',
336
- PrintConvColumns => 2,
337
- PrintConv => \%shootingMode,
338
- },
339
- 0x20 => {
340
- Name => 'Audio',
341
- Writable => 'int16u',
342
- PrintConv => {
343
- 1 => 'Yes',
344
- 2 => 'No',
345
- 3 => 'Stereo', #PH (NC)
346
- },
347
- },
348
- 0x21 => { #2
349
- Name => 'DataDump',
350
- Writable => 0,
351
- Binary => 1,
352
- },
353
- # 0x22 - normally 0, but 2 for 'Simple' ShootingMode in LZ6 sample - PH
354
- 0x23 => {
355
- Name => 'WhiteBalanceBias',
356
- Format => 'int16s',
357
- Writable => 'int16s',
358
- ValueConv => '$val / 3',
359
- ValueConvInv => '$val * 3',
360
- PrintConv => 'Image::ExifTool::Exif::PrintFraction($val)',
361
- PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
362
- },
363
- 0x24 => {
364
- Name => 'FlashBias',
365
- Format => 'int16s',
366
- Writable => 'int16s',
367
- },
368
- 0x25 => { #PH
369
- Name => 'InternalSerialNumber',
370
- Writable => 'undef',
371
- Count => 16,
372
- Notes => q{
373
- this number is unique, and contains the date of manufacture, but is not the
374
- same as the number printed on the camera body
375
- },
376
- PrintConv => q{
377
- return $val unless $val=~/^([A-Z]\d{2})(\d{2})(\d{2})(\d{2})(\d{4})/;
378
- my $yr = $2 + ($2 < 70 ? 2000 : 1900);
379
- return "($1) $yr:$3:$4 no. $5";
380
- },
381
- PrintConvInv => '$_=$val; tr/A-Z0-9//dc; s/(.{3})(19|20)/$1/; $_',
382
- },
383
- 0x26 => { #PH
384
- Name => 'PanasonicExifVersion',
385
- Writable => 'undef',
386
- },
387
- # 0x27 - values: 0 (LZ6,FX10K)
388
- 0x28 => {
389
- Name => 'ColorEffect',
390
- Writable => 'int16u',
391
- # FX30 manual: (ColorMode) natural, vivid, cool, warm, b/w, sepia
392
- PrintConv => {
393
- 1 => 'Off',
394
- 2 => 'Warm',
395
- 3 => 'Cool',
396
- 4 => 'Black & White',
397
- 5 => 'Sepia',
398
- 6 => 'Happy', #PH (FX70) (yes, really. you wouldn't want sad colors now would you?)
399
- },
400
- },
401
- 0x29 => { #JD
402
- Name => 'TimeSincePowerOn',
403
- Writable => 'int32u',
404
- Notes => q{
405
- time in 1/100 s from when the camera was powered on to when the image is
406
- written to memory card
407
- },
408
- ValueConv => '$val / 100',
409
- ValueConvInv => '$val * 100',
410
- PrintConv => sub { # convert to format "[DD days ]HH:MM:SS.ss"
411
- my $val = shift;
412
- my $str = '';
413
- if ($val >= 24 * 3600) {
414
- my $d = int($val / (24 * 3600));
415
- $str .= "$d days ";
416
- $val -= $d * 24 * 3600;
417
- }
418
- my $h = int($val / 3600);
419
- $val -= $h * 3600;
420
- my $m = int($val / 60);
421
- $val -= $m * 60;
422
- my $s = int($val);
423
- my $f = 100 * ($val - int($val));
424
- return sprintf("%s%.2d:%.2d:%.2d.%.2d",$str,$h,$m,$s,$f);
425
- },
426
- PrintConvInv => sub {
427
- my $val = shift;
428
- my @vals = ($val =~ /\d+(?:\.\d*)?/g);
429
- my $sec = 0;
430
- $sec += 24 * 3600 * shift(@vals) if @vals > 3;
431
- $sec += 3600 * shift(@vals) if @vals > 2;
432
- $sec += 60 * shift(@vals) if @vals > 1;
433
- $sec += shift(@vals) if @vals;
434
- return $sec;
435
- },
436
- },
437
- 0x2a => { #4
438
- Name => 'BurstMode',
439
- Writable => 'int16u',
440
- Notes => 'decoding may be different for some models',
441
- PrintConv => {
442
- 0 => 'Off',
443
- 1 => 'On', #PH (TZ5) [was "Low/High Quality" from ref 4]
444
- 2 => 'Infinite',
445
- 4 => 'Unlimited', #PH (TZ5)
446
- },
447
- },
448
- 0x2b => { #4
449
- Name => 'SequenceNumber',
450
- Writable => 'int32u',
451
- },
452
- 0x2c => [
453
- {
454
- Name => 'ContrastMode',
455
- Condition => '$$self{Model} !~ /^DMC-(FX10|G1|L1|L10|LC80|GF\d+|G2|TZ10|ZS7)$/',
456
- Flags => 'PrintHex',
457
- Writable => 'int16u',
458
- Notes => q{
459
- this decoding seems to work for some models such as the LC1, LX2, FZ7, FZ8,
460
- FZ18 and FZ50, but may not be correct for other models such as the FX10, G1, L1,
461
- L10 and LC80
462
- },
463
- PrintConv => {
464
- 0 => 'Normal',
465
- 1 => 'Low',
466
- 2 => 'High',
467
- # 3 - observed with LZ6 and TZ5 in Fireworks mode - PH
468
- # 5 - observed with FX01, FX40 and FP8 (EXIF contrast "Normal") - PH
469
- 6 => 'Medium Low', #PH (FZ18)
470
- 7 => 'Medium High', #PH (FZ18)
471
- 13 => 'High Dynamic', #PH (FZ47 in ?)
472
- # DMC-LC1 values:
473
- 0x100 => 'Low',
474
- 0x110 => 'Normal',
475
- 0x120 => 'High',
476
- }
477
- },{
478
- Name => 'ContrastMode',
479
- Condition => '$$self{Model} =~ /^DMC-(GF\d+|G2)$/',
480
- Notes => 'these values are used by the G2, GF1, GF2, GF3 and GF5',
481
- Writable => 'int16u',
482
- PrintConv => { # (decoded for GF1 unless otherwise noted)
483
- 0 => '-2',
484
- 1 => '-1',
485
- 2 => 'Normal',
486
- 3 => '+1',
487
- 4 => '+2',
488
- # Note: Other Contrast tags will be "Normal" in any of these modes:
489
- # 5 - seen for Portrait (FX80)
490
- 7 => 'Nature (Color Film)', # (GF1,G2; GF3 "Miniature")
491
- 9 => 'Expressive', #(GF3)
492
- 12 => 'Smooth (Color Film) or Pure (My Color)', #(GF1,G2 "Smooth Color")
493
- 17 => 'Dynamic (B&W Film)', #(GF1,G2)
494
- 22 => 'Smooth (B&W Film)', #(GF1,G2)
495
- 25 => 'High Dynamic', #(GF5)
496
- 26 => 'Retro', #(GF5)
497
- 27 => 'Dynamic (Color Film)', #(GF1,G2) (GF3 "High Key")
498
- 28 => 'Low Key', #(GF5)
499
- 29 => 'Toy Effect', #(GF5)
500
- 32 => 'Vibrant (Color Film) or Expressive (My Color)', # (GF1; G2 "Vibrant"; GF2,GF5 "Expressive")
501
- 33 => 'Elegant (My Color)',
502
- 37 => 'Nostalgic (Color Film)', # (GF1,G2; GF5 "Sepia")
503
- 41 => 'Dynamic Art (My Color)', # (GF5 "High Key")
504
- 42 => 'Retro (My Color)',
505
- 45 => 'Cinema', #(GF2)
506
- 47 => 'Dynamic Mono', #(GF5)
507
- 50 => 'Impressive Art', #(GF5)
508
- 51 => 'Cross Process', #(GF5)
509
- },
510
- },{
511
- Name => 'ContrastMode',
512
- Condition => '$$self{Model} =~ /^DMC-(TZ10|ZS7)$/',
513
- Notes => 'these values are used by the TZ10 and ZS7',
514
- Writable => 'int16u',
515
- PrintConv => {
516
- 0 => 'Normal',
517
- 1 => '-2',
518
- 2 => '+2',
519
- 5 => '-1',
520
- 6 => '+1',
521
- },
522
- },{
523
- Name => 'ContrastMode',
524
- Writable => 'int16u',
525
- },
526
- ],
527
- 0x2d => {
528
- Name => 'NoiseReduction',
529
- Writable => 'int16u',
530
- PrintConv => {
531
- 0 => 'Standard',
532
- 1 => 'Low (-1)',
533
- 2 => 'High (+1)',
534
- 3 => 'Lowest (-2)', #JD
535
- 4 => 'Highest (+2)', #JD
536
- },
537
- },
538
- 0x2e => { #4
539
- Name => 'SelfTimer',
540
- Writable => 'int16u',
541
- PrintConv => {
542
- 1 => 'Off',
543
- 2 => '10 s',
544
- 3 => '2 s',
545
- },
546
- },
547
- # 0x2f - values: 1 (LZ6,FX10K)
548
- 0x30 => { #7
549
- Name => 'Rotation',
550
- Writable => 'int16u',
551
- PrintConv => {
552
- 1 => 'Horizontal (normal)',
553
- 3 => 'Rotate 180', #PH
554
- 6 => 'Rotate 90 CW', #PH (ref 7 gives 270 CW)
555
- 8 => 'Rotate 270 CW', #PH (ref 7 gives 90 CW)
556
- },
557
- },
558
- 0x31 => { #PH (FS7)
559
- Name => 'AFAssistLamp',
560
- Writable => 'int16u',
561
- PrintConv => {
562
- 1 => 'Fired',
563
- 2 => 'Enabled but Not Used',
564
- 3 => 'Disabled but Required',
565
- 4 => 'Disabled and Not Required',
566
- # have seen a value of 5 - PH
567
- # values possibly related to FOC-L? - JD
568
- },
569
- },
570
- 0x32 => { #7
571
- Name => 'ColorMode',
572
- Writable => 'int16u',
573
- PrintConv => {
574
- 0 => 'Normal',
575
- 1 => 'Natural',
576
- 2 => 'Vivid',
577
- # have seen 3 for GF2 - PH
578
- },
579
- },
580
- 0x33 => { #JD
581
- Name => 'BabyAge',
582
- Writable => 'string',
583
- Notes => 'or pet age', #PH
584
- PrintConv => '$val eq "9999:99:99 00:00:00" ? "(not set)" : $val',
585
- PrintConvInv => '$val =~ /^\d/ ? $val : "9999:99:99 00:00:00"',
586
- },
587
- 0x34 => { #7/PH
588
- Name => 'OpticalZoomMode',
589
- Writable => 'int16u',
590
- PrintConv => {
591
- 1 => 'Standard',
592
- 2 => 'Extended',
593
- },
594
- },
595
- 0x35 => { #9
596
- Name => 'ConversionLens',
597
- Writable => 'int16u',
598
- PrintConv => { #PH (unconfirmed)
599
- 1 => 'Off',
600
- 2 => 'Wide',
601
- 3 => 'Telephoto',
602
- 4 => 'Macro',
603
- },
604
- },
605
- 0x36 => { #8
606
- Name => 'TravelDay',
607
- Writable => 'int16u',
608
- PrintConv => '$val == 65535 ? "n/a" : $val',
609
- PrintConvInv => '$val =~ /(\d+)/ ? $1 : $val',
610
- },
611
- # 0x37 - values: 0,1,2 (LZ6, 0 for movie preview); 257 (FX10K); 0,256 (TZ5, 0 for movie preview)
612
- # 0x38 - values: 0,1,2 (LZ6, same as 0x37); 1,2 (FX10K); 0,256 (TZ5, 0 for movie preview)
613
- 0x39 => { #7 (L1/L10)
614
- Name => 'Contrast',
615
- Format => 'int16s',
616
- Writable => 'int16u',
617
- %Image::ExifTool::Exif::printParameter,
618
- },
619
- 0x3a => {
620
- Name => 'WorldTimeLocation',
621
- Writable => 'int16u',
622
- PrintConv => {
623
- 1 => 'Home',
624
- 2 => 'Destination',
625
- },
626
- },
627
- 0x3b => { #PH (TZ5/FS7)
628
- # (tags 0x3b, 0x3e, 0x8008 and 0x8009 have the same values in all my samples - PH)
629
- Name => 'TextStamp',
630
- Writable => 'int16u',
631
- PrintConv => { 1 => 'Off', 2 => 'On' },
632
- },
633
- 0x3c => { #PH
634
- Name => 'ProgramISO', # (maybe should rename this ISOSetting?)
635
- Writable => 'int16u',
636
- PrintConv => {
637
- OTHER => sub { shift },
638
- 65534 => 'Intelligent ISO', #PH (FS7)
639
- 65535 => 'n/a',
640
- },
641
- },
642
- 0x3d => { #PH
643
- Name => 'AdvancedSceneType',
644
- Writable => 'int16u',
645
- Notes => 'used together with SceneMode to derive Composite AdvancedSceneMode',
646
- },
647
- 0x3e => { #PH (TZ5/FS7)
648
- # (tags 0x3b, 0x3e, 0x8008 and 0x8009 have the same values in all my samples - PH)
649
- Name => 'TextStamp',
650
- Writable => 'int16u',
651
- PrintConv => { 1 => 'Off', 2 => 'On' },
652
- },
653
- 0x3f => { #PH (TZ7)
654
- Name => 'FacesDetected',
655
- Writable => 'int16u',
656
- },
657
- 0x40 => { #7 (L1/L10)
658
- Name => 'Saturation',
659
- Format => 'int16s',
660
- Writable => 'int16u',
661
- %Image::ExifTool::Exif::printParameter,
662
- },
663
- 0x41 => { #7 (L1/L10)
664
- Name => 'Sharpness',
665
- Format => 'int16s',
666
- Writable => 'int16u',
667
- %Image::ExifTool::Exif::printParameter,
668
- },
669
- 0x42 => { #7 (DMC-L1)
670
- Name => 'FilmMode',
671
- Writable => 'int16u',
672
- PrintConv => {
673
- 0 => 'n/a', #PH (ie. FZ100 "Photo Frame" ShootingMode)
674
- 1 => 'Standard (color)',
675
- 2 => 'Dynamic (color)',
676
- 3 => 'Nature (color)',
677
- 4 => 'Smooth (color)',
678
- 5 => 'Standard (B&W)',
679
- 6 => 'Dynamic (B&W)',
680
- 7 => 'Smooth (B&W)',
681
- # 8 => 'My Film 1'? (from owner manual)
682
- # 9 => 'My Film 2'?
683
- 10 => 'Nostalgic', #(GH1)
684
- 11 => 'Vibrant', #(GH1)
685
- # 12 => 'Multi Film'? (in the GH1 specs)
686
- },
687
- },
688
- # 0x43 - int16u: 2,3
689
- 0x44 => {
690
- Name => 'ColorTempKelvin',
691
- Format => 'int16u',
692
- },
693
- # 0x45 - int16u: 0
694
- 0x46 => { #PH/JD
695
- Name => 'WBAdjustAB',
696
- Format => 'int16s',
697
- Writable => 'int16u',
698
- Notes => 'positive is a shift toward blue',
699
- },
700
- 0x47 => { #PH/JD
701
- Name => 'WBAdjustGM',
702
- Format => 'int16s',
703
- Writable => 'int16u',
704
- Notes => 'positive is a shift toward green',
705
- },
706
- # 0x48 - int16u: 0
707
- # 0x49 - int16u: 2
708
- # 0x4a - int16u: 0
709
- 0x4b => { #PH
710
- Name => 'PanasonicImageWidth',
711
- Writable => 'int32u',
712
- },
713
- 0x4c => { #PH
714
- Name => 'PanasonicImageHeight',
715
- Writable => 'int32u',
716
- },
717
- 0x4d => { #PH (FS7)
718
- Name => 'AFPointPosition',
719
- Writable => 'rational64u',
720
- Count => 2,
721
- Notes => 'X Y coordinates of primary AF area center, in the range 0.0 to 1.0',
722
- PrintConv => q{
723
- return 'none' if $val eq '16777216 16777216';
724
- my @a = split ' ', $val;
725
- sprintf("%.2g %.2g",@a);
726
- },
727
- PrintConvInv => '$val eq "none" ? "16777216 16777216" : $val',
728
- },
729
- 0x4e => { #PH
730
- Name => 'FaceDetInfo',
731
- PrintConv => 'length $val',
732
- SubDirectory => {
733
- TagTable => 'Image::ExifTool::Panasonic::FaceDetInfo',
734
- },
735
- },
736
- # 0x4f,0x50 - int16u: 0
737
- 0x51 => {
738
- Name => 'LensType',
739
- Writable => 'string',
740
- },
741
- 0x52 => { #7 (DMC-L1)
742
- Name => 'LensSerialNumber',
743
- Writable => 'string',
744
- },
745
- 0x53 => { #7 (DMC-L1)
746
- Name => 'AccessoryType',
747
- Writable => 'string',
748
- },
749
- # 0x54 - string[14]: "0000000"
750
- # 0x55 - int16u: 1
751
- # 0x57 - int16u: 0
752
- 0x59 => { #PH (FS7)
753
- Name => 'Transform',
754
- Writable => 'undef',
755
- Notes => 'decoded as two 16-bit signed integers',
756
- Format => 'int16s',
757
- Count => 2,
758
- PrintConv => {
759
- '-3 2' => 'Slim High',
760
- '-1 1' => 'Slim Low',
761
- '0 0' => 'Off',
762
- '1 1' => 'Stretch Low',
763
- '3 2' => 'Stretch High',
764
- },
765
- },
766
- # 0x5a - int16u: 0,2
767
- # 0x5b - int16u: 0
768
- # 0x5c - int16u: 0,2
769
- 0x5d => { #PH (GF1, FZ35)
770
- Name => 'IntelligentExposure',
771
- Notes => 'not valid for some models', # (doesn't change in ZS7 and GH1 images)
772
- Writable => 'int16u',
773
- PrintConv => {
774
- 0 => 'Off',
775
- 1 => 'Low',
776
- 2 => 'Standard',
777
- 3 => 'High',
778
- },
779
- },
780
- # 0x5e,0x5f,0x60 - undef[4]
781
- 0x61 => { #PH
782
- Name => 'FaceRecInfo',
783
- SubDirectory => {
784
- TagTable => 'Image::ExifTool::Panasonic::FaceRecInfo',
785
- },
786
- },
787
- 0x62 => { #PH (FS7)
788
- Name => 'FlashWarning',
789
- Writable => 'int16u',
790
- PrintConv => { 0 => 'No', 1 => 'Yes (flash required but disabled)' },
791
- },
792
- 0x63 => { #PH
793
- # not sure exactly what this means, but in my samples this is
794
- # FacesRecognized bytes of 0x01, padded with 0x00 to a length of 4 - PH
795
- Name => 'RecognizedFaceFlags',
796
- Format => 'int8u',
797
- Count => 4,
798
- Writable => 'undef',
799
- Unknown => 1,
800
- },
801
- 0x65 => { #15
802
- Name => 'Title',
803
- Format => 'string',
804
- Writable => 'undef', # (Count 64)
805
- },
806
- 0x66 => { #15
807
- Name => 'BabyName',
808
- Notes => 'or pet name',
809
- Format => 'string',
810
- Writable => 'undef', # (Count 64)
811
- },
812
- 0x67 => { #15
813
- Name => 'Location',
814
- Groups => { 2 => 'Location' },
815
- Format => 'string',
816
- Writable => 'undef', # (Count 64)
817
- },
818
- # 0x68 - int8u: 1
819
- 0x69 => { #PH (ZS7)
820
- Name => 'Country', # (Country/Region)
821
- Groups => { 2 => 'Location' },
822
- Format => 'string',
823
- Writable => 'undef', # (Count 72)
824
- },
825
- # 0x6a - int8u: 1
826
- 0x6b => { #PH (ZS7)
827
- Name => 'State', # (State/Province/Count -- what is Count?)
828
- Groups => { 2 => 'Location' },
829
- Format => 'string',
830
- Writable => 'undef', # (Count 72)
831
- },
832
- # 0x6c - int8u: 1
833
- 0x6d => { #PH (ZS7)
834
- Name => 'City', # (City/Town)
835
- Groups => { 2 => 'Location' },
836
- Format => 'string',
837
- Writable => 'undef', # (Count 72)
838
- },
839
- # 0x6e - int8u: 1
840
- 0x6f => { #PH (ZS7)
841
- Name => 'Landmark', # (Landmark)
842
- Groups => { 2 => 'Location' },
843
- Format => 'string',
844
- Writable => 'undef', # (Count 128)
845
- },
846
- 0x70 => { #PH (ZS7)
847
- Name => 'IntelligentResolution',
848
- Writable => 'int8u',
849
- PrintConv => {
850
- 0 => 'Off',
851
- # Note: I think these values make sense for the GH2, but meanings
852
- # may be different for other models
853
- 1 => 'Low',
854
- 2 => 'Standard',
855
- 3 => 'High',
856
- 4 => 'Extended',
857
- },
858
- },
859
- # 0x71 - undef[128] (maybe text stamp text?)
860
- # 0x72,0x73,0x74,0x75,0x76,0x77,0x78: 0
861
- 0x79 => { #PH (GH2)
862
- Name => 'IntelligentD-Range',
863
- Writable => 'int16u',
864
- PrintConv => {
865
- 0 => 'Off',
866
- 1 => 'Low',
867
- 2 => 'Standard',
868
- 3 => 'High',
869
- },
870
- },
871
- # 0x7a,0x7b: 0
872
- 0x86 => { #http://dev.exiv2.org/issues/825
873
- Name => 'ManometerPressure',
874
- Writable => 'int16u',
875
- RawConv => '$val==65535 ? undef : $val',
876
- ValueConv => '$val / 10',
877
- ValueConvInv => '$val * 10',
878
- PrintConv => 'sprintf("%.1f kPa",$val)',
879
- PrintConvInv => '$val=~s/ ?kPa//i; $val',
880
- },
881
- 0x0e00 => {
882
- Name => 'PrintIM',
883
- Description => 'Print Image Matching',
884
- Writable => 0,
885
- SubDirectory => {
886
- TagTable => 'Image::ExifTool::PrintIM::Main',
887
- },
888
- },
889
- 0x8000 => { #PH
890
- Name => 'MakerNoteVersion',
891
- Format => 'undef',
892
- },
893
- 0x8001 => { #7/PH/JD
894
- Name => 'SceneMode',
895
- Writable => 'int16u',
896
- PrintConvColumns => 2,
897
- PrintConv => {
898
- 0 => 'Off',
899
- %shootingMode,
900
- },
901
- },
902
- # 0x8002 - values: 1,2 related to focus? (PH/JD)
903
- # 1 for HDR modes, 2 for Portrait (ref 12)
904
- # 0x8003 - values: 1,2 related to focus? (PH/JD)
905
- 0x8004 => { #PH/JD
906
- Name => 'WBRedLevel',
907
- Writable => 'int16u',
908
- },
909
- 0x8005 => { #PH/JD
910
- Name => 'WBGreenLevel',
911
- Writable => 'int16u',
912
- },
913
- 0x8006 => { #PH/JD
914
- Name => 'WBBlueLevel',
915
- Writable => 'int16u',
916
- },
917
- 0x8007 => { #PH
918
- Name => 'FlashFired',
919
- Writable => 'int16u',
920
- PrintConv => { 1 => 'No', 2 => 'Yes' },
921
- },
922
- 0x8008 => { #PH (TZ5/FS7)
923
- # (tags 0x3b, 0x3e, 0x8008 and 0x8009 have the same values in all my samples - PH)
924
- Name => 'TextStamp',
925
- Writable => 'int16u',
926
- PrintConv => { 1 => 'Off', 2 => 'On' },
927
- },
928
- 0x8009 => { #PH (TZ5/FS7)
929
- # (tags 0x3b, 0x3e, 0x8008 and 0x8009 have the same values in all my samples - PH)
930
- Name => 'TextStamp',
931
- Writable => 'int16u',
932
- PrintConv => { 1 => 'Off', 2 => 'On' },
933
- },
934
- 0x8010 => { #PH
935
- Name => 'BabyAge',
936
- Writable => 'string',
937
- Notes => 'or pet age',
938
- PrintConv => '$val eq "9999:99:99 00:00:00" ? "(not set)" : $val',
939
- PrintConvInv => '$val =~ /^\d/ ? $val : "9999:99:99 00:00:00"',
940
- },
941
- 0x8012 => { #PH (FS7)
942
- Name => 'Transform',
943
- Writable => 'undef',
944
- Notes => 'decoded as two 16-bit signed integers',
945
- Format => 'int16s',
946
- Count => 2,
947
- PrintConv => {
948
- '-3 2' => 'Slim High',
949
- '-1 1' => 'Slim Low',
950
- '0 0' => 'Off',
951
- '1 1' => 'Stretch Low',
952
- '3 2' => 'Stretch High',
953
- },
954
- },
955
- );
956
-
957
- # Leica type2 maker notes (ref 10)
958
- %Image::ExifTool::Panasonic::Leica2 = (
959
- WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
960
- CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
961
- GROUPS => { 0 => 'MakerNotes', 1 => 'Leica', 2 => 'Camera' },
962
- WRITABLE => 1,
963
- NOTES => 'These tags are used by the Leica M8.',
964
- 0x300 => {
965
- Name => 'Quality',
966
- Writable => 'int16u',
967
- PrintConv => {
968
- 1 => 'Fine',
969
- 2 => 'Basic',
970
- },
971
- },
972
- 0x302 => {
973
- Name => 'UserProfile',
974
- Writable => 'int32u',
975
- PrintConv => {
976
- 1 => 'User Profile 1',
977
- 2 => 'User Profile 2',
978
- 3 => 'User Profile 3',
979
- 4 => 'User Profile 0 (Dynamic)',
980
- },
981
- },
982
- 0x303 => {
983
- Name => 'SerialNumber',
984
- Writable => 'int32u',
985
- PrintConv => 'sprintf("%.7d", $val)',
986
- PrintConvInv => '$val',
987
- },
988
- 0x304 => {
989
- Name => 'WhiteBalance',
990
- Writable => 'int16u',
991
- Notes => 'values above 0x8000 are converted to Kelvin color temperatures',
992
- PrintConv => {
993
- 0 => 'Auto or Manual',
994
- 1 => 'Daylight',
995
- 2 => 'Fluorescent',
996
- 3 => 'Tungsten',
997
- 4 => 'Flash',
998
- 10 => 'Cloudy',
999
- 11 => 'Shade',
1000
- OTHER => \&WhiteBalanceConv,
1001
- },
1002
- },
1003
- 0x310 => {
1004
- Name => 'LensType',
1005
- Writable => 'int32u',
1006
- SeparateTable => 1,
1007
- ValueConv => '($val >> 2) . " " . ($val & 0x3)',
1008
- ValueConvInv => \&LensTypeConvInv,
1009
- PrintConv => \%leicaLensTypes,
1010
- },
1011
- 0x311 => {
1012
- Name => 'ExternalSensorBrightnessValue',
1013
- Format => 'rational64s', # (incorrectly unsigned in JPEG images)
1014
- Writable => 'rational64s',
1015
- Notes => '"blue dot" measurement',
1016
- PrintConv => 'sprintf("%.2f", $val)',
1017
- PrintConvInv => '$val',
1018
- },
1019
- 0x312 => {
1020
- Name => 'MeasuredLV',
1021
- Format => 'rational64s', # (incorrectly unsigned in JPEG images)
1022
- Writable => 'rational64s',
1023
- Notes => 'imaging sensor or TTL exposure meter measurement',
1024
- PrintConv => 'sprintf("%.2f", $val)',
1025
- PrintConvInv => '$val',
1026
- },
1027
- 0x313 => {
1028
- Name => 'ApproximateFNumber',
1029
- Writable => 'rational64u',
1030
- PrintConv => 'sprintf("%.1f", $val)',
1031
- PrintConvInv => '$val',
1032
- },
1033
- 0x320 => {
1034
- Name => 'CameraTemperature',
1035
- Writable => 'int32s',
1036
- PrintConv => '"$val C"',
1037
- PrintConvInv => '$val=~s/ ?C//; $val',
1038
- },
1039
- 0x321 => { Name => 'ColorTemperature', Writable => 'int32u' },
1040
- 0x322 => { Name => 'WBRedLevel', Writable => 'rational64u' },
1041
- 0x323 => { Name => 'WBGreenLevel', Writable => 'rational64u' },
1042
- 0x324 => { Name => 'WBBlueLevel', Writable => 'rational64u' },
1043
- 0x325 => {
1044
- Name => 'UV-IRFilterCorrection',
1045
- Description => 'UV/IR Filter Correction',
1046
- Writable => 'int32u',
1047
- PrintConv => {
1048
- 0 => 'Not Active',
1049
- 1 => 'Active',
1050
- },
1051
- },
1052
- 0x330 => { Name => 'CCDVersion', Writable => 'int32u' },
1053
- 0x331 => { Name => 'CCDBoardVersion', Writable => 'int32u' },
1054
- 0x332 => { Name => 'ControllerBoardVersion', Writable => 'int32u' },
1055
- 0x333 => { Name => 'M16CVersion', Writable => 'int32u' },
1056
- 0x340 => { Name => 'ImageIDNumber', Writable => 'int32u' },
1057
- );
1058
-
1059
- # Leica type3 maker notes (ref PH)
1060
- %Image::ExifTool::Panasonic::Leica3 = (
1061
- WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
1062
- CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
1063
- GROUPS => { 0 => 'MakerNotes', 1 => 'Leica', 2 => 'Camera' },
1064
- WRITABLE => 1,
1065
- NOTES => 'These tags are used by the Leica R8 and R9 digital backs.',
1066
- 0x0d => {
1067
- Name => 'WB_RGBLevels',
1068
- Writable => 'int16u',
1069
- Count => 3,
1070
- },
1071
- );
1072
-
1073
- # Leica type4 maker notes (ref PH) (M9)
1074
- %Image::ExifTool::Panasonic::Leica4 = (
1075
- WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
1076
- CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
1077
- GROUPS => { 0 => 'MakerNotes', 1 => 'Leica', 2 => 'Camera' },
1078
- WRITABLE => 1,
1079
- NOTES => 'This information is written by the M9.',
1080
- 0x3000 => {
1081
- Name => 'Subdir3000',
1082
- SubDirectory => {
1083
- TagTable => 'Image::ExifTool::Panasonic::Subdir',
1084
- ByteOrder => 'Unknown',
1085
- },
1086
- },
1087
- 0x3100 => {
1088
- Name => 'Subdir3100',
1089
- SubDirectory => {
1090
- TagTable => 'Image::ExifTool::Panasonic::Subdir',
1091
- ByteOrder => 'Unknown',
1092
- },
1093
- },
1094
- 0x3400 => {
1095
- Name => 'Subdir3400',
1096
- SubDirectory => {
1097
- TagTable => 'Image::ExifTool::Panasonic::Subdir',
1098
- ByteOrder => 'Unknown',
1099
- },
1100
- },
1101
- 0x3900 => {
1102
- Name => 'Subdir3900',
1103
- SubDirectory => {
1104
- TagTable => 'Image::ExifTool::Panasonic::Subdir',
1105
- ByteOrder => 'Unknown',
1106
- },
1107
- },
1108
- );
1109
-
1110
- # Leica M9 SubDirectory tags (ref PH)
1111
- %Image::ExifTool::Panasonic::Subdir = (
1112
- WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
1113
- CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
1114
- GROUPS => { 0 => 'MakerNotes', 1 => 'Leica', 2 => 'Camera' },
1115
- TAG_PREFIX => 'Leica_Subdir',
1116
- WRITABLE => 1,
1117
- # 0x3001 - normally 0 but value of 2 when manual coding is used
1118
- # with a coded lens (but only tested with Elmar-M 50mm f/2.8) - PH
1119
- 0x300a => {
1120
- Name => 'Contrast',
1121
- Writable => 'int32u',
1122
- PrintConv => {
1123
- 0 => 'Low',
1124
- 1 => 'Medium Low',
1125
- 2 => 'Normal',
1126
- 3 => 'Medium High',
1127
- 4 => 'High',
1128
- },
1129
- },
1130
- 0x300b => {
1131
- Name => 'Sharpening',
1132
- Writable => 'int32u',
1133
- PrintConv => {
1134
- 0 => 'Off',
1135
- 1 => 'Low',
1136
- 2 => 'Normal',
1137
- 3 => 'Medium High',
1138
- 4 => 'High',
1139
- },
1140
- },
1141
- 0x300d => {
1142
- Name => 'Saturation',
1143
- Writable => 'int32u',
1144
- PrintConv => {
1145
- 0 => 'Low',
1146
- 1 => 'Medium Low',
1147
- 2 => 'Normal',
1148
- 3 => 'Medium High',
1149
- 4 => 'High',
1150
- 5 => 'Black & White',
1151
- 6 => 'Vintage B&W',
1152
- },
1153
- },
1154
- # 0x3032 - some sort of RGB coefficients? (zeros unless Kelvin WB, but same for all Color Temps)
1155
- 0x3033 => {
1156
- Name => 'WhiteBalance',
1157
- Writable => 'int32u',
1158
- PrintConv => { #13
1159
- 0 => 'Auto',
1160
- 1 => 'Tungsten',
1161
- 2 => 'Fluorescent',
1162
- 3 => 'Daylight Fluorescent',
1163
- 4 => 'Daylight',
1164
- 5 => 'Flash',
1165
- 6 => 'Cloudy',
1166
- 7 => 'Shade',
1167
- 8 => 'Manual',
1168
- 9 => 'Kelvin',
1169
- },
1170
- },
1171
- 0x3034 => {
1172
- Name => 'JPEGQuality',
1173
- Writable => 'int32u',
1174
- PrintConv => {
1175
- 94 => 'Basic',
1176
- 97 => 'Fine',
1177
- },
1178
- },
1179
- # 0x3035 (int32u): -1 unless Manual WB (2 in my Manual sample)
1180
- 0x3036 => {
1181
- Name => 'WB_RGBLevels',
1182
- Writable => 'rational64u',
1183
- Count => 3,
1184
- },
1185
- 0x3038 => {
1186
- Name => 'UserProfile', # (CameraProfile according to ref 14)
1187
- Writable => 'string',
1188
- },
1189
- 0x303a => {
1190
- Name => 'JPEGSize',
1191
- Writable => 'int32u',
1192
- PrintConv => {
1193
- 0 => '5216x3472',
1194
- 1 => '3840x2592',
1195
- 2 => '2592x1728',
1196
- 3 => '1728x1152',
1197
- 4 => '1280x864',
1198
- },
1199
- },
1200
- 0x3103 => { #13 (valid for FW 1.116 and later)
1201
- Name => 'SerialNumber',
1202
- Writable => 'string',
1203
- },
1204
- # 0x3104 body-dependent string ("00012905000000") (not serial number)
1205
- # 0x3105 body-dependent string ("00012905000000")
1206
- # 0x3107 - body-dependent string ("4H205800116800") (not serial number)
1207
- 0x3109 => {
1208
- Name => 'FirmwareVersion',
1209
- Writable => 'string',
1210
- },
1211
- 0x312a => { #14 (NC)
1212
- Name => 'BaseISO',
1213
- Writable => 'int32u',
1214
- },
1215
- 0x312b => {
1216
- Name => 'SensorWidth',
1217
- Writable => 'int32u',
1218
- },
1219
- 0x312c => {
1220
- Name => 'SensorHeight',
1221
- Writable => 'int32u',
1222
- },
1223
- 0x312d => { #14 (NC)
1224
- Name => 'SensorBitDepth',
1225
- Writable => 'int32u',
1226
- },
1227
- 0x3402 => { #PH/13
1228
- Name => 'CameraTemperature',
1229
- Writable => 'int32s',
1230
- PrintConv => '"$val C"',
1231
- PrintConvInv => '$val=~s/ ?C//; $val',
1232
- },
1233
- 0x3405 => {
1234
- Name => 'LensType',
1235
- Writable => 'int32u',
1236
- SeparateTable => 1,
1237
- ValueConv => '($val >> 2) . " " . ($val & 0x3)',
1238
- ValueConvInv => \&LensTypeConvInv,
1239
- PrintConv => \%leicaLensTypes,
1240
- },
1241
- 0x3406 => { #PH/13
1242
- Name => 'ApproximateFNumber',
1243
- Writable => 'rational64u',
1244
- PrintConv => 'sprintf("%.1f", $val)',
1245
- PrintConvInv => '$val',
1246
- },
1247
- 0x3407 => { #14
1248
- Name => 'MeasuredLV',
1249
- Writable => 'int32s',
1250
- Notes => 'imaging sensor or TTL exposure meter measurement',
1251
- ValueConv => '$val / 1e5', #PH (NC)
1252
- ValueConvInv => '$val * 1e5', #PH (NC)
1253
- PrintConv => 'sprintf("%.2f", $val)',
1254
- PrintConvInv => '$val',
1255
- },
1256
- 0x3408 => { #14
1257
- Name => 'ExternalSensorBrightnessValue',
1258
- Writable => 'int32s',
1259
- Notes => '"blue dot" measurement',
1260
- ValueConv => '$val / 1e5', #PH (NC)
1261
- ValueConvInv => '$val * 1e5', #PH (NC)
1262
- PrintConv => 'sprintf("%.2f", $val)',
1263
- PrintConvInv => '$val',
1264
- },
1265
- 0x3901 => {
1266
- Name => 'Data1',
1267
- SubDirectory => { TagTable => 'Image::ExifTool::Panasonic::Data1' },
1268
- },
1269
- 0x3902 => {
1270
- Name => 'Data2',
1271
- SubDirectory => { TagTable => 'Image::ExifTool::Panasonic::Data2' },
1272
- },
1273
- # 0x3903 - larger binary data block
1274
- );
1275
-
1276
- %Image::ExifTool::Panasonic::Data1 = (
1277
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
1278
- WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
1279
- CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
1280
- GROUPS => { 0 => 'MakerNotes', 1 => 'Leica', 2 => 'Camera' },
1281
- WRITABLE => 1,
1282
- TAG_PREFIX => 'Leica_Data1',
1283
- FIRST_ENTRY => 0,
1284
- 0x0016 => {
1285
- Name => 'LensType',
1286
- Writable => 'int32u',
1287
- Priority => 0,
1288
- SeparateTable => 1,
1289
- ValueConv => '($val >> 2) . " " . ($val & 0x3)',
1290
- ValueConvInv => \&LensTypeConvInv,
1291
- PrintConv => \%leicaLensTypes,
1292
- },
1293
- );
1294
-
1295
- %Image::ExifTool::Panasonic::Data2 = (
1296
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
1297
- GROUPS => { 0 => 'MakerNotes', 1 => 'Leica', 2 => 'Camera' },
1298
- TAG_PREFIX => 'Leica_Data2',
1299
- FIRST_ENTRY => 0,
1300
- );
1301
-
1302
- # Leica type5 maker notes (ref PH) (X1)
1303
- %Image::ExifTool::Panasonic::Leica5 = (
1304
- WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
1305
- CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
1306
- GROUPS => { 0 => 'MakerNotes', 1 => 'Leica', 2 => 'Camera' },
1307
- WRITABLE => 1,
1308
- NOTES => 'This information is written by the X1.',
1309
- # 0x0406 - saturation or sharpness
1310
- 0x0407 => { Name => 'OriginalFileName', Writable => 'string' },
1311
- 0x0408 => { Name => 'OriginalDirectory',Writable => 'string' },
1312
- # 0x040b - related to white balance
1313
- 0x040d => {
1314
- Name => 'ExposureMode',
1315
- Format => 'int8u',
1316
- Count => 4,
1317
- PrintConv => {
1318
- '0 0 0 0' => 'Program AE',
1319
- '1 0 0 0' => 'Aperture-priority AE',
1320
- '2 0 0 0' => 'Shutter speed priority AE', #(guess)
1321
- '3 0 0 0' => 'Manual',
1322
- },
1323
- },
1324
- # 0x0411 - saturation or sharpness
1325
- 0x0412 => { Name => 'FilmMode', Writable => 'string' },
1326
- 0x0413 => { Name => 'WB_RGBLevels', Writable => 'rational64u', Count => 3 },
1327
- );
1328
-
1329
- # Leica type6 maker notes (ref PH) (S2)
1330
- %Image::ExifTool::Panasonic::Leica6 = (
1331
- WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
1332
- CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
1333
- GROUPS => { 0 => 'MakerNotes', 1 => 'Leica', 2 => 'Camera' },
1334
- NOTES => 'This information is written by the S2 (as a trailer in JPEG images).',
1335
- 0x300 => {
1336
- Name => 'PreviewImage',
1337
- Writable => 'undef',
1338
- Notes => 'S2',
1339
- DataTag => 'PreviewImage',
1340
- RawConv => q{
1341
- return \$val if $val =~ /^Binary/;
1342
- return \$val if $val =~ /^\xff\xd8\xff/;
1343
- $$self{PreviewError} = 1 unless $val eq 'none';
1344
- return undef;
1345
- },
1346
- ValueConvInv => '$val || "none"',
1347
- WriteCheck => 'return $val=~/^(none|\xff\xd8\xff)/s ? undef : "Not a valid image"',
1348
- ChangeBase => '$dirStart + $dataPos - 8',
1349
- },
1350
- 0x301 => {
1351
- Name => 'UnknownBlock',
1352
- Notes => 'unknown 320kB block, not copied to JPEG images',
1353
- Flags => [ 'Unknown', 'Binary', 'Drop' ],
1354
- },
1355
- # 0x302 - same value as 4 unknown bytes at the end of JPEG or after the DNG TIFF header
1356
- 0x303 => {
1357
- Name => 'LensType',
1358
- Writable => 'string',
1359
- },
1360
- # 0x340 - same as 0x302
1361
- );
1362
-
1363
- # Type 2 tags (ref PH)
1364
- %Image::ExifTool::Panasonic::Type2 = (
1365
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
1366
- GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
1367
- FIRST_ENTRY => 0,
1368
- FORMAT => 'int16u',
1369
- NOTES => q{
1370
- This type of maker notes is used by models such as the NV-DS65, PV-D2002,
1371
- PV-DC3000, PV-DV203, PV-DV401, PV-DV702, PV-L2001, PV-SD4090, PV-SD5000 and
1372
- iPalm.
1373
- },
1374
- 0 => {
1375
- Name => 'MakerNoteType',
1376
- Format => 'string[4]',
1377
- },
1378
- # seems to vary inversely with amount of light, so I'll call it 'Gain' - PH
1379
- # (minimum is 16, maximum is 136. Value is 0 for pictures captured from video)
1380
- 3 => 'Gain',
1381
- );
1382
-
1383
- # Face detection position information (ref PH)
1384
- %Image::ExifTool::Panasonic::FaceDetInfo = (
1385
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
1386
- WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
1387
- CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
1388
- GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
1389
- WRITABLE => 1,
1390
- FORMAT => 'int16u',
1391
- FIRST_ENTRY => 0,
1392
- DATAMEMBER => [ 0 ],
1393
- NOTES => 'Face detection position information.',
1394
- 0 => {
1395
- Name => 'NumFacePositions',
1396
- Format => 'int16u',
1397
- DataMember => 'NumFacePositions',
1398
- RawConv => '$$self{NumFacePositions} = $val',
1399
- Notes => q{
1400
- number of detected face positions stored in this record. May be less than
1401
- FacesDetected
1402
- },
1403
- },
1404
- 1 => {
1405
- Name => 'Face1Position',
1406
- Format => 'int16u[4]',
1407
- RawConv => '$$self{NumFacePositions} < 1 ? undef : $val',
1408
- Notes => q{
1409
- 4 numbers: X/Y coordinates of the face center and width/height of face.
1410
- Coordinates are relative to an image twice the size of the thumbnail, or 320
1411
- pixels wide
1412
- },
1413
- },
1414
- 5 => {
1415
- Name => 'Face2Position',
1416
- Format => 'int16u[4]',
1417
- RawConv => '$$self{NumFacePositions} < 2 ? undef : $val',
1418
- },
1419
- 9 => {
1420
- Name => 'Face3Position',
1421
- Format => 'int16u[4]',
1422
- RawConv => '$$self{NumFacePositions} < 3 ? undef : $val',
1423
- },
1424
- 13 => {
1425
- Name => 'Face4Position',
1426
- Format => 'int16u[4]',
1427
- RawConv => '$$self{NumFacePositions} < 4 ? undef : $val',
1428
- },
1429
- 17 => {
1430
- Name => 'Face5Position',
1431
- Format => 'int16u[4]',
1432
- RawConv => '$$self{NumFacePositions} < 5 ? undef : $val',
1433
- },
1434
- );
1435
-
1436
- # Face recognition information from DMC-TZ7 (ref PH)
1437
- %Image::ExifTool::Panasonic::FaceRecInfo = (
1438
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
1439
- WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
1440
- CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
1441
- GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
1442
- WRITABLE => 1,
1443
- FIRST_ENTRY => 0,
1444
- DATAMEMBER => [ 0 ],
1445
- NOTES => q{
1446
- Tags written by cameras with facial recognition. These cameras not only
1447
- detect faces in an image, but also recognize specific people based a
1448
- user-supplied set of known faces.
1449
- },
1450
- 0 => {
1451
- Name => 'FacesRecognized',
1452
- Format => 'int16u',
1453
- DataMember => 'FacesRecognized',
1454
- RawConv => '$$self{FacesRecognized} = $val',
1455
- },
1456
- 4 => {
1457
- Name => 'RecognizedFace1Name',
1458
- Format => 'string[20]',
1459
- RawConv => '$$self{FacesRecognized} < 1 ? undef : $val',
1460
- },
1461
- 24 => {
1462
- Name => 'RecognizedFace1Position',
1463
- Format => 'int16u[4]',
1464
- RawConv => '$$self{FacesRecognized} < 1 ? undef : $val',
1465
- Notes => 'coordinates in same format as face detection tags above',
1466
- },
1467
- 32 => {
1468
- Name => 'RecognizedFace1Age',
1469
- Format => 'string[20]',
1470
- RawConv => '$$self{FacesRecognized} < 1 ? undef : $val',
1471
- },
1472
- 52 => {
1473
- Name => 'RecognizedFace2Name',
1474
- Format => 'string[20]',
1475
- RawConv => '$$self{FacesRecognized} < 2 ? undef : $val',
1476
- },
1477
- 72 => {
1478
- Name => 'RecognizedFace2Position',
1479
- Format => 'int16u[4]',
1480
- RawConv => '$$self{FacesRecognized} < 2 ? undef : $val',
1481
- },
1482
- 80 => {
1483
- Name => 'RecognizedFace2Age',
1484
- Format => 'string[20]',
1485
- RawConv => '$$self{FacesRecognized} < 2 ? undef : $val',
1486
- },
1487
- 100 => {
1488
- Name => 'RecognizedFace3Name',
1489
- Format => 'string[20]',
1490
- RawConv => '$$self{FacesRecognized} < 3 ? undef : $val',
1491
- },
1492
- 120 => {
1493
- Name => 'RecognizedFace3Position',
1494
- Format => 'int16u[4]',
1495
- RawConv => '$$self{FacesRecognized} < 3 ? undef : $val',
1496
- },
1497
- 128 => {
1498
- Name => 'RecognizedFace3Age',
1499
- Format => 'string[20]',
1500
- RawConv => '$$self{FacesRecognized} < 3 ? undef : $val',
1501
- },
1502
- );
1503
-
1504
- %Image::ExifTool::Panasonic::PANA = (
1505
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
1506
- GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
1507
- NOTES => q{
1508
- Tags extracted from the PANA user data found in MP4 videos from models such
1509
- as the DMC-FT20.
1510
- },
1511
- 4 => {
1512
- Name => 'Model',
1513
- Description => 'Camera Model Name',
1514
- Format => 'string[16]',
1515
- },
1516
- 0x58 => {
1517
- Name => 'ThumbnailWidth',
1518
- Format => 'int16u',
1519
- },
1520
- 0x5a => {
1521
- Name => 'ThumbnailHeight',
1522
- Format => 'int16u',
1523
- },
1524
- 0x5c => {
1525
- Name => 'ThumbnailImage',
1526
- Format => 'undef[16384]',
1527
- RawConv => '$val=~/^\xff\xd8\xff/ ? $val : undef',
1528
- ValueConv => '$val=~s/\0*$//; \$val', # remove trailing zeros
1529
- },
1530
- 0x4068 => {
1531
- Name => 'ExifData',
1532
- Condition => '$$valPt =~ /^\xff\xd8\xff\xe1..Exif\0\0/',
1533
- SubDirectory => {
1534
- TagTable => 'Image::ExifTool::Exif::Main',
1535
- ProcessProc => \&Image::ExifTool::ProcessTIFF,
1536
- Start => 12,
1537
- },
1538
- },
1539
- );
1540
-
1541
- # Panasonic Composite tags
1542
- %Image::ExifTool::Panasonic::Composite = (
1543
- GROUPS => { 2 => 'Camera' },
1544
- AdvancedSceneMode => {
1545
- SeparateTable => 'Panasonic AdvancedSceneMode', # print values in a separate table
1546
- Require => {
1547
- 0 => 'SceneMode',
1548
- 1 => 'AdvancedSceneType',
1549
- },
1550
- ValueConv => '"$val[0] $val[1]"',
1551
- PrintConv => { #PH
1552
- OTHER => sub {
1553
- my $val = shift;
1554
- my @v = split ' ', $val;
1555
- my $prt = $shootingMode{$v[0]};
1556
- return $v[1] == 1 ? $prt : "$prt ($v[1])" if $prt;
1557
- return "Unknown ($val)";
1558
- },
1559
- Notes => 'A Composite tag derived from SceneMode and AdvancedSceneType.',
1560
- '0 1' => 'Off',
1561
- '2 2' => 'Outdoor Portrait', #(FZ28)
1562
- '2 3' => 'Indoor Portrait', #(FZ28)
1563
- '2 4' => 'Creative Portrait', #(FZ28)
1564
- '3 2' => 'Nature', #(FZ28)
1565
- '3 3' => 'Architecture', #(FZ28)
1566
- '3 4' => 'Creative Scenery', #(FZ28)
1567
- #'3 5' - ? (FT1)
1568
- '4 2' => 'Outdoor Sports', #(FZ28)
1569
- '4 3' => 'Indoor Sports', #(FZ28)
1570
- '4 4' => 'Creative Sports', #(FZ28)
1571
- '9 2' => 'Flower', #(FZ28)
1572
- '9 3' => 'Objects', #(FZ28)
1573
- '9 4' => 'Creative Macro', #(FZ28)
1574
- #'9 5' - ? (GF3)
1575
- '21 2' => 'Illuminations', #(FZ28)
1576
- '21 4' => 'Creative Night Scenery', #(FZ28)
1577
- #'21 5' - ? (LX3)
1578
- #'37 5' - ? (various)
1579
- '45 2' => 'Cinema', #(GF2)
1580
- '45 7' => 'Expressive', #(GF1,GF2)
1581
- '45 8' => 'Retro', #(GF1,GF2)
1582
- '45 9' => 'Pure', #(GF1,GF2)
1583
- '45 10' => 'Elegant', #(GF1,GF2)
1584
- '45 12' => 'Monochrome', #(GF1,GF2)
1585
- '45 13' => 'Dynamic Art', #(GF1,GF2)
1586
- '45 14' => 'Silhouette', #(GF1,GF2)
1587
- '51 2' => 'HDR Art', #12
1588
- '51 3' => 'HDR B&W', #12
1589
- '59 1' => 'Expressive', #(GF5)
1590
- '59 2' => 'Retro', #(GF5)
1591
- '59 3' => 'High Key', #(GF5)
1592
- '59 4' => 'Sepia', #(GF3,GF5)
1593
- '59 5' => 'High Dynamic', #(GF3,GF5)
1594
- '59 6' => 'Minature', #(GF3)
1595
- '59 9' => 'Low Key', #(GF5)
1596
- '59 10' => 'Toy Effect', #(GF5)
1597
- '59 11' => 'Dynamic Monochrome', #(GF5)
1598
- '59 12' => 'Soft', #(GF5)
1599
- '66 2' => 'Cross Process', #(GF5)
1600
- '66 3' => 'Color Select', #(GF5)
1601
- '66 4' => 'Star', #(GF5)
1602
- },
1603
- },
1604
- );
1605
-
1606
- # add our composite tags
1607
- Image::ExifTool::AddCompositeTags('Image::ExifTool::Panasonic');
1608
-
1609
- #------------------------------------------------------------------------------
1610
- # Inverse conversion for Leica M9 lens codes
1611
- # Inputs: 0) value
1612
- # Returns: Converted value, or undef on error
1613
- sub LensTypeConvInv($)
1614
- {
1615
- my $val = shift;
1616
- if ($val =~ /^(\d+) (\d+)$/) {
1617
- return ($1 << 2) + ($2 & 0x03);
1618
- } elsif ($val =~ /^\d+$/) {
1619
- my $bits = $frameSelectorBits{$val};
1620
- return undef unless defined $bits;
1621
- return ($val << 2) | $bits;
1622
- } else {
1623
- return undef;
1624
- }
1625
- }
1626
-
1627
- #------------------------------------------------------------------------------
1628
- # Convert Leica Kelvin white balance
1629
- # Inputs: 0) value, 1) flag to perform inverse conversion
1630
- # Returns: Converted value, or undef on error
1631
- sub WhiteBalanceConv($;$$)
1632
- {
1633
- my ($val, $inv) = @_;
1634
- if ($inv) {
1635
- return $1 + 0x8000 if $val =~ /(\d+)/;
1636
- } else {
1637
- return ($val - 0x8000) . ' Kelvin' if $val > 0x8000;
1638
- }
1639
- return undef;
1640
- }
1641
-
1642
- #------------------------------------------------------------------------------
1643
- # Process MakerNote trailer written by Leica S2
1644
- # Inputs: 0) ExifTool object ref, 1) new absolute position of Leica trailer when writing
1645
- # Returns: On success: 1 when reading, directory data when writing; othewise undef
1646
- # Notes:
1647
- # - may be called twice for a file if the first call doesn't succeed
1648
- # - must leave RAF position unchanged
1649
- # - uses information from LeicaTrailer member:
1650
- # TagInfo = tag info ref for MakerNote SubDirectory
1651
- # Offset/Size = value offset/size from MakerNote IFD
1652
- # TrailStart/TrailLen = actual JPEG trailer position/size (2nd call only)
1653
- # - deletes LeicaTrailer member and sets LeicaTrailerPos when successful
1654
- sub ProcessLeicaTrailer($;$)
1655
- {
1656
- my ($exifTool, $newPos) = @_;
1657
- my $trail = $$exifTool{LeicaTrailer};
1658
- my $raf = $$exifTool{RAF};
1659
- my $trailPos = $$trail{TrailPos};
1660
- my $pos = $trailPos || $$trail{Offset};
1661
- my $len = $$trail{TrailLen} || $$trail{Size};
1662
- my ($buff, $result, %tagPtr);
1663
-
1664
- delete $$exifTool{LeicaTrailer} if $trailPos; # done after this
1665
- unless ($len > 0) {
1666
- $exifTool->Warn('Missing Leica MakerNote trailer', 1) if $trailPos;
1667
- undef $$exifTool{LeicaTrailer};
1668
- return undef;
1669
- }
1670
- my $oldPos = $raf->Tell();
1671
- my $ok = ($raf->Seek($pos, 0) and $raf->Read($buff, $len) == $len);
1672
- $raf->Seek($oldPos, 0);
1673
- unless ($ok) {
1674
- $exifTool->Warn('Error reading Leica MakerNote trailer', 1) if $trailPos;
1675
- return undef;
1676
- }
1677
- # look for Leica MakerNote header (should be at start of
1678
- # trailer, but allow up to 256 bytes of garbage just in case)
1679
- if ($buff !~ /^(.{0,256})LEICA\0..../sg) {
1680
- my $what = $trailPos ? 'trailer' : 'offset';
1681
- $exifTool->Warn("Invalid Leica MakerNote $what", 1);
1682
- return undef;
1683
- }
1684
- my $junk = $1;
1685
- my $start = pos($buff) - 10;
1686
- if ($start and not $trailPos) {
1687
- $exifTool->Warn('Invalid Leica MakerNote offset', 1);
1688
- return undef;
1689
- }
1690
- #
1691
- # all checks passed -- go ahead and process the trailer now
1692
- #
1693
- my $hdrLen = 8;
1694
- my $dirStart = $start + $hdrLen;
1695
- my $tagInfo = $$trail{TagInfo};
1696
- if ($$exifTool{HTML_DUMP}) {
1697
- my $name = $$tagInfo{Name};
1698
- $exifTool->HDump($pos+$start, $len-$start, "$name value", 'Leica MakerNote trailer', 4);
1699
- $exifTool->HDump($pos+$start, $hdrLen, "MakerNotes header", $name);
1700
- } elsif ($exifTool->Options('Verbose')) {
1701
- my $where = sprintf('at offset 0x%x', $pos);
1702
- $exifTool->VPrint(0, "Leica MakerNote trailer ($len bytes $where):\n");
1703
- }
1704
- # delete LeicaTrailer member so we don't try to process it again
1705
- delete $$exifTool{LeicaTrailer};
1706
- $$exifTool{LeicaTrailerPos} = $pos + $start; # return actual start position of Leica trailer
1707
-
1708
- my $oldOrder = GetByteOrder();
1709
- my $num = Get16u(\$buff, $dirStart); # get entry count
1710
- ToggleByteOrder() if ($num>>8) > ($num&0xff); # set byte order
1711
-
1712
- # use specialized algorithm to automatically fix offsets
1713
- my $valStart = $dirStart + 2 + 12 * $num + 4;
1714
- my $fix = 0;
1715
- if ($valStart < $len) {
1716
- my $valBlock = Image::ExifTool::MakerNotes::GetValueBlocks(\$buff, $dirStart, \%tagPtr);
1717
- # find the minimum offset (excluding the PreviewImage tag 0x300)
1718
- my $minPtr;
1719
- foreach (keys %tagPtr) {
1720
- my $ptr = $tagPtr{$_};
1721
- next if $_ == 0x300 or not $ptr;
1722
- $minPtr = $ptr if not defined $minPtr or $minPtr > $ptr;
1723
- }
1724
- if ($minPtr) {
1725
- my $diff = $minPtr - ($valStart + $pos);
1726
- # scan value data for the first non-zero byte
1727
- pos($buff) = $valStart;
1728
- if ($buff =~ /[^\0]/g) {
1729
- my $n = pos($buff) - 1 - $valStart; # number of zero bytes
1730
- # S2 writes 282 bytes of zeros, exiftool writes none
1731
- my $expect = $n >= 282 ? 282 : 0;
1732
- my $fixBase = $exifTool->Options('FixBase');
1733
- if ($diff != $expect or defined $fixBase) {
1734
- $fix = $expect - $diff;
1735
- if (defined $fixBase) {
1736
- $fix = $fixBase if $fixBase ne '';
1737
- $exifTool->Warn("Adjusted MakerNotes base by $fix",1);
1738
- } else {
1739
- $exifTool->Warn("Possibly incorrect maker notes offsets (fixed by $fix)",1);
1740
- }
1741
- }
1742
- }
1743
- }
1744
- }
1745
- # generate dirInfo for Leica MakerNote directory
1746
- my %dirInfo = (
1747
- Name => $$tagInfo{Name},
1748
- Base => $fix,
1749
- DataPt => \$buff,
1750
- DataPos => $pos - $fix,
1751
- DataLen => $len,
1752
- DirStart => $dirStart,
1753
- DirLen => $len - $dirStart,
1754
- DirName => 'MakerNotes',
1755
- Parent => 'ExifIFD',
1756
- TagInfo => $tagInfo,
1757
- );
1758
- my $tagTablePtr = GetTagTable($$tagInfo{SubDirectory}{TagTable});
1759
- if ($newPos) { # are we writing?
1760
- # set position of new MakerNote IFD (+ 8 for Leica MakerNote header)
1761
- $dirInfo{NewDataPos} = $newPos + $start + 8;
1762
- $result = $exifTool->WriteDirectory(\%dirInfo, $tagTablePtr);
1763
- # write preview image last if necessary and fix up the preview offsets
1764
- my $previewInfo = $$exifTool{PREVIEW_INFO};
1765
- delete $$exifTool{PREVIEW_INFO};
1766
- if ($result) {
1767
- if ($previewInfo) {
1768
- my $fixup = $previewInfo->{Fixup};
1769
- # set preview offset (relative to start of makernotes, + 8 for makernote header)
1770
- $fixup->SetMarkerPointers(\$result, 'PreviewImage', length($result) + 8);
1771
- $result .= $$previewInfo{Data};
1772
- }
1773
- return $junk . substr($buff, $start, $hdrLen) . $result;
1774
- }
1775
- } else {
1776
- # extract information
1777
- $result = $exifTool->ProcessDirectory(\%dirInfo, $tagTablePtr);
1778
- # also extract as a block if necessary
1779
- if ($exifTool->Options('MakerNotes') or
1780
- $exifTool->{REQ_TAG_LOOKUP}{lc($$tagInfo{Name})})
1781
- {
1782
- # makernote header must be included in RebuildMakerNotes call
1783
- $dirInfo{DirStart} -= 8;
1784
- $dirInfo{DirLen} += 8;
1785
- $exifTool->{MAKER_NOTE_BYTE_ORDER} = GetByteOrder();
1786
- # rebuild maker notes (creates $exifTool->{MAKER_NOTE_FIXUP})
1787
- my $val = Image::ExifTool::Exif::RebuildMakerNotes($exifTool, $tagTablePtr, \%dirInfo);
1788
- unless (defined $val) {
1789
- $exifTool->Warn('Error rebuilding maker notes (may be corrupt)') if $len > 4;
1790
- $val = $buff,
1791
- }
1792
- my $key = $exifTool->FoundTag($tagInfo, $val);
1793
- $exifTool->SetGroup($key, 'ExifIFD');
1794
- }
1795
- }
1796
- SetByteOrder($oldOrder);
1797
- return $result;
1798
- }
1799
-
1800
- 1; # end
1801
-
1802
- __END__
1803
-
1804
- =head1 NAME
1805
-
1806
- Image::ExifTool::Panasonic - Panasonic/Leica maker notes tags
1807
-
1808
- =head1 SYNOPSIS
1809
-
1810
- This module is loaded automatically by Image::ExifTool when required.
1811
-
1812
- =head1 DESCRIPTION
1813
-
1814
- This module contains definitions required by Image::ExifTool to interpret
1815
- Panasonic and Leica maker notes in EXIF information.
1816
-
1817
- =head1 AUTHOR
1818
-
1819
- Copyright 2003-2012, Phil Harvey (phil at owl.phy.queensu.ca)
1820
-
1821
- This library is free software; you can redistribute it and/or modify it
1822
- under the same terms as Perl itself.
1823
-
1824
- =head1 REFERENCES
1825
-
1826
- =over 4
1827
-
1828
- =item L<http://www.compton.nu/panasonic.html>
1829
-
1830
- =item L<http://johnst.org/sw/exiftags/>
1831
-
1832
- =item L<http://homepage3.nifty.com/kamisaka/makernote/makernote_pana.htm>
1833
-
1834
- =item L<http://bretteville.com/pdfs/M8Metadata_v2.pdf>
1835
-
1836
- =item L<http://www.digital-leica.com/lens_codes/index.html>
1837
-
1838
- =item (...plus lots of testing with store demos and my wife's DMC-FS7!)
1839
-
1840
- =back
1841
-
1842
- =head1 ACKNOWLEDGEMENTS
1843
-
1844
- Thanks to Tels, Marcel Coenen, Jens Duttke, Joerg, Michael Byczkowski, Carl
1845
- Bretteville, Zdenek Mihula and Olaf Ulrich for their contributions.
1846
-
1847
- =head1 SEE ALSO
1848
-
1849
- L<Image::ExifTool::TagNames/Panasonic Tags>,
1850
- L<Image::ExifTool(3pm)|Image::ExifTool>
1851
-
1852
- =cut