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,4027 +0,0 @@
1
- #------------------------------------------------------------------------------
2
- # File: Olympus.pm
3
- #
4
- # Description: Olympus/Epson EXIF maker notes tags
5
- #
6
- # Revisions: 12/09/2003 - P. Harvey Created
7
- # 11/11/2004 - P. Harvey Added Epson support
8
- #
9
- # References: 1) http://park2.wakwak.com/~tsuruzoh/Computer/Digicams/exif-e.html
10
- # 2) http://www.cybercom.net/~dcoffin/dcraw/
11
- # 3) http://www.ozhiker.com/electronics/pjmt/jpeg_info/olympus_mn.html
12
- # 4) Markku H�nninen private communication (tests with E-1)
13
- # 5) R�mi Guyomarch from http://forums.dpreview.com/forums/read.asp?forum=1022&message=12790396
14
- # 6) Frank Ledwon private communication (tests with E/C-series cameras)
15
- # 7) Michael Meissner private communication
16
- # 8) Shingo Noguchi, PhotoXP (http://www.daifukuya.com/photoxp/)
17
- # 9) Mark Dapoz private communication
18
- # 10) Lilo Huang private communication (E-330)
19
- # 11) http://olypedia.de/Olympus_Makernotes (Nov. 21, 2011)
20
- # 12) Ioannis Panagiotopoulos private communication (E-510)
21
- # 13) Chris Shaw private communication (E-3)
22
- # 14) Viktor Lushnikov private communication (E-400)
23
- # 15) Yrjo Rauste private communication (E-30)
24
- # 16) Godfrey DiGiorgi private communcation (E-P1) + http://forums.dpreview.com/forums/read.asp?message=33187567
25
- # 17) Martin Hibers private communication
26
- # 18) Tomasz Kawecki private communication
27
- # 19) Brad Grier private communication
28
- # 20) Niels Kristian Bech Jensen private communication
29
- #------------------------------------------------------------------------------
30
-
31
- package Image::ExifTool::Olympus;
32
-
33
- use strict;
34
- use vars qw($VERSION);
35
- use Image::ExifTool::Exif;
36
- use Image::ExifTool::APP12;
37
-
38
- $VERSION = '1.92';
39
-
40
- sub PrintLensInfo($$$);
41
-
42
- my %offOn = ( 0 => 'Off', 1 => 'On' );
43
-
44
- # lookup for Olympus LensType values
45
- my %olympusLensTypes = (
46
- '0 0 0' => 'None',
47
- # Olympus lenses
48
- '0 1 0' => 'Olympus Zuiko Digital ED 50mm F2.0 Macro',
49
- '0 1 1' => 'Olympus Zuiko Digital 40-150mm F3.5-4.5', #8
50
- '0 1 16' => 'Olympus M.Zuiko Digital ED 14-42mm F3.5-5.6', #PH (E-P1 pre-production)
51
- '0 2 0' => 'Olympus Zuiko Digital ED 150mm F2.0',
52
- '0 2 16' => 'Olympus M.Zuiko Digital 17mm F2.8 Pancake', #PH (E-P1 pre-production)
53
- '0 3 0' => 'Olympus Zuiko Digital ED 300mm F2.8',
54
- '0 3 16' => 'Olympus M.Zuiko Digital ED 14-150mm F4.0-5.6', #11
55
- '0 4 16' => 'Olympus M.Zuiko Digital ED 9-18mm F4.0-5.6', #11
56
- '0 5 0' => 'Olympus Zuiko Digital 14-54mm F2.8-3.5',
57
- '0 5 1' => 'Olympus Zuiko Digital Pro ED 90-250mm F2.8', #9
58
- '0 5 16' => 'Olympus M.Zuiko Digital ED 14-42mm F3.5-5.6 L', #11 (E-PL1)
59
- '0 6 0' => 'Olympus Zuiko Digital ED 50-200mm F2.8-3.5',
60
- '0 6 1' => 'Olympus Zuiko Digital ED 8mm F3.5 Fisheye', #9
61
- '0 6 16' => 'Olympus M.Zuiko Digital ED 40-150mm F4.0-5.6', #PH
62
- '0 7 0' => 'Olympus Zuiko Digital 11-22mm F2.8-3.5',
63
- '0 7 1' => 'Olympus Zuiko Digital 18-180mm F3.5-6.3', #6
64
- '0 7 16' => 'Olympus M.Zuiko Digital ED 12mm F2.0', #PH
65
- '0 8 1' => 'Olympus Zuiko Digital 70-300mm F4.0-5.6', #7 (seen as release 1 - PH)
66
- '0 8 16' => 'Olympus M.Zuiko Digital ED 75-300mm F4.8-6.7', #PH
67
- '0 9 16' => 'Olympus M.Zuiko Digital 14-42mm F3.5-5.6 II', #PH (E-PL2)
68
- '0 16 16'=> 'Olympus M.Zuiko Digital ED 12-50mm F3.5-6.3 EZ', #PH
69
- '0 17 16'=> 'Olympus M.Zuiko Digital 45mm F1.8', #17
70
- '0 19 16'=> 'Olympus M.Zuiko Digital ED 14-42mm F3.5-5.6 II R', #PH
71
- '0 20 16'=> 'Olympus M.Zuiko Digital ED 15-150mm II or 40-150mm R',
72
- '0 20 16.1' => 'Olympus M.Zuiko Digital ED 14-150mm F4.0-5.6 II', #11
73
- '0 20 16.2' => 'Olympus M.Zuiko Digital ED 40-150mm F4.0-5.6 R', #19
74
- '0 21 0' => 'Olympus Zuiko Digital ED 7-14mm F4.0',
75
- '0 21 16'=> 'Olympus M.Zuiko Digital ED 75mm F1.8', #PH
76
- '0 23 0' => 'Olympus Zuiko Digital Pro ED 35-100mm F2.0', #7
77
- '0 24 0' => 'Olympus Zuiko Digital 14-45mm F3.5-5.6',
78
- '0 32 0' => 'Olympus Zuiko Digital 35mm F3.5 Macro', #9
79
- '0 34 0' => 'Olympus Zuiko Digital 17.5-45mm F3.5-5.6', #9
80
- '0 35 0' => 'Olympus Zuiko Digital ED 14-42mm F3.5-5.6', #PH
81
- '0 36 0' => 'Olympus Zuiko Digital ED 40-150mm F4.0-5.6', #PH
82
- '0 48 0' => 'Olympus Zuiko Digital ED 50-200mm F2.8-3.5 SWD', #7
83
- '0 49 0' => 'Olympus Zuiko Digital ED 12-60mm F2.8-4.0 SWD', #7
84
- '0 50 0' => 'Olympus Zuiko Digital ED 14-35mm F2.0 SWD', #PH
85
- '0 51 0' => 'Olympus Zuiko Digital 25mm F2.8', #PH
86
- '0 52 0' => 'Olympus Zuiko Digital ED 9-18mm F4.0-5.6', #7
87
- '0 53 0' => 'Olympus Zuiko Digital 14-54mm F2.8-3.5 II', #PH
88
- # Sigma lenses
89
- '1 1 0' => 'Sigma 18-50mm F3.5-5.6', #8
90
- '1 1 16' => 'Sigma 30mm F2.8 EX DN', #20
91
- '1 2 0' => 'Sigma 55-200mm F4.0-5.6 DC',
92
- '1 3 0' => 'Sigma 18-125mm F3.5-5.6 DC',
93
- '1 4 0' => 'Sigma 18-125mm F3.5-5.6', #7
94
- '1 5 0' => 'Sigma 30mm F1.4', #10
95
- '1 6 0' => 'Sigma 50-500mm F4.0-6.3 EX DG APO HSM RF', #6
96
- '1 7 0' => 'Sigma 105mm F2.8 DG', #PH
97
- '1 8 0' => 'Sigma 150mm F2.8 DG HSM', #PH
98
- '1 16 0' => 'Sigma 24mm F1.8 EX DG Aspherical Macro', #PH
99
- '1 17 0' => 'Sigma 135-400mm F4.5-5.6 DG ASP APO RF', #11
100
- '1 18 0' => 'Sigma 300-800mm F5.6 EX DG APO', #11
101
- '1 19 0' => 'Sigma 30mm F1.4 EX DC HSM', #11
102
- '1 20 0' => 'Sigma 50-500mm F4.0-6.3 EX DG APO HSM RF', #11
103
- '1 21 0' => 'Sigma 10-20mm F4.0-5.6 EX DC HSM', #11
104
- '1 22 0' => 'Sigma 70-200mm F2.8 EX DG Macro HSM II', #11
105
- '1 23 0' => 'Sigma 50mm F1.4 EX DG HSM', #11
106
- # Leica lenses (ref 11)
107
- '2 1 0' => 'Leica D Vario Elmarit 14-50mm F2.8-3.5 Asph.',
108
- '2 1 16' => 'Lumix G Vario 14-45mm F3.5-5.6 Asph. Mega OIS', #16
109
- '2 2 0' => 'Leica D Summilux 25mm F1.4 Asph.',
110
- '2 2 16' => 'Lumix G Vario 45-200mm F4-5.6 Mega OIS', #16
111
- '2 3 0' => 'Leica D Vario Elmar 14-50mm F3.8-5.6 Asph. Mega OIS', #11
112
- '2 3 1' => 'Leica D Vario Elmar 14-50mm F3.8-5.6 Asph.', #14 (L10 kit)
113
- '2 3 16' => 'Lumix G Vario HD 14-140mm F4-5.8 Asph. Mega OIS', #16
114
- '2 4 0' => 'Leica D Vario Elmar 14-150mm F3.5-5.6', #13
115
- '2 4 16' => 'Lumix G Vario 7-14mm F4 Asph.', #PH (E-P1 pre-production)
116
- '2 5 16' => 'Lumix G 20mm F1.7 Asph.', #16
117
- '2 6 16' => 'Leica DG Macro-Elmarit 45mm F2.8', #PH
118
- '2 8 16' => 'Lumix G Fisheye 8mm F3.5', #PH
119
- '2 9 16' => 'Lumix G Vario 100-300mm F4.0-5.6 OIS', #11
120
- '2 16 16'=> 'Lumix G 14mm F2.5 Asph.', #17
121
- '2 21 16'=> 'Lumix G X Vario 12-35mm F2.8 ASPH Power OIS', #PH
122
- '3 1 0' => 'Leica D Vario Elmarit 14-50mm F2.8-3.5 Asph.',
123
- '3 2 0' => 'Leica D Summilux 25mm F1.4 Asph.',
124
- );
125
-
126
- # lookup for Olympus camera types (ref PH)
127
- my %olympusCameraTypes = (
128
- Notes => q{
129
- These values are currently decoded only for Olympus models. Models with
130
- Olympus-style maker notes from other brands such as Acer, BenQ, Hitachi, HP,
131
- Premier, Konica-Minolta, Maginon, Ricoh, Rollei, SeaLife, Sony, Supra,
132
- Vivitar are not listed.
133
- },
134
- D4028 => 'X-2,C-50Z',
135
- D4029 => 'E-20,E-20N,E-20P',
136
- D4034 => 'C720UZ',
137
- D4040 => 'E-1',
138
- D4041 => 'E-300',
139
- D4083 => 'C2Z,D520Z,C220Z',
140
- D4106 => 'u20D,S400D,u400D',
141
- D4120 => 'X-1',
142
- D4122 => 'u10D,S300D,u300D',
143
- D4125 => 'AZ-1',
144
- D4141 => 'C150,D390',
145
- D4193 => 'C-5000Z',
146
- D4194 => 'X-3,C-60Z',
147
- D4199 => 'u30D,S410D,u410D',
148
- D4205 => 'X450,D535Z,C370Z',
149
- D4210 => 'C160,D395',
150
- D4211 => 'C725UZ',
151
- D4213 => 'FerrariMODEL2003',
152
- D4216 => 'u15D',
153
- D4217 => 'u25D',
154
- D4220 => 'u-miniD,Stylus V',
155
- D4221 => 'u40D,S500,uD500',
156
- D4231 => 'FerrariMODEL2004',
157
- D4240 => 'X500,D590Z,C470Z',
158
- D4244 => 'uD800,S800',
159
- D4256 => 'u720SW,S720SW',
160
- D4261 => 'X600,D630,FE5500',
161
- D4262 => 'uD600,S600',
162
- D4301 => 'u810/S810', # (yes, "/". Olympus is not consistent in the notation)
163
- D4302 => 'u710,S710',
164
- D4303 => 'u700,S700',
165
- D4304 => 'FE100,X710',
166
- D4305 => 'FE110,X705',
167
- D4310 => 'FE-130,X-720',
168
- D4311 => 'FE-140,X-725',
169
- D4312 => 'FE150,X730',
170
- D4313 => 'FE160,X735',
171
- D4314 => 'u740,S740',
172
- D4315 => 'u750,S750',
173
- D4316 => 'u730/S730',
174
- D4317 => 'FE115,X715',
175
- D4321 => 'SP550UZ',
176
- D4322 => 'SP510UZ',
177
- D4324 => 'FE170,X760',
178
- D4326 => 'FE200',
179
- D4327 => 'FE190/X750', # (also SX876)
180
- D4328 => 'u760,S760',
181
- D4330 => 'FE180/X745', # (also SX875)
182
- D4331 => 'u1000/S1000',
183
- D4332 => 'u770SW,S770SW',
184
- D4333 => 'FE240/X795',
185
- D4334 => 'FE210,X775',
186
- D4336 => 'FE230/X790',
187
- D4337 => 'FE220,X785',
188
- D4338 => 'u725SW,S725SW',
189
- D4339 => 'FE250/X800',
190
- D4341 => 'u780,S780',
191
- D4343 => 'u790SW,S790SW',
192
- D4344 => 'u1020,S1020',
193
- D4346 => 'FE15,X10',
194
- D4348 => 'FE280,X820,C520',
195
- D4349 => 'FE300,X830',
196
- D4350 => 'u820,S820',
197
- D4351 => 'u1200,S1200',
198
- D4352 => 'FE270,X815,C510',
199
- D4353 => 'u795SW,S795SW',
200
- D4354 => 'u1030SW,S1030SW',
201
- D4355 => 'SP560UZ',
202
- D4356 => 'u1010,S1010',
203
- D4357 => 'u830,S830',
204
- D4359 => 'u840,S840',
205
- D4360 => 'FE350WIDE,X865',
206
- D4361 => 'u850SW,S850SW',
207
- D4362 => 'FE340,X855,C560',
208
- D4363 => 'FE320,X835,C540',
209
- D4364 => 'SP570UZ',
210
- D4366 => 'FE330,X845,C550',
211
- D4368 => 'FE310,X840,C530',
212
- D4370 => 'u1050SW,S1050SW',
213
- D4371 => 'u1060,S1060',
214
- D4372 => 'FE370,X880,C575',
215
- D4374 => 'SP565UZ',
216
- D4377 => 'u1040,S1040',
217
- D4378 => 'FE360,X875,C570',
218
- D4379 => 'FE20,X15,C25',
219
- D4380 => 'uT6000,ST6000',
220
- D4381 => 'uT8000,ST8000',
221
- D4382 => 'u9000,S9000',
222
- D4384 => 'SP590UZ',
223
- D4385 => 'FE3010,X895',
224
- D4386 => 'FE3000,X890',
225
- D4387 => 'FE35,X30',
226
- D4388 => 'u550WP,S550WP',
227
- D4390 => 'FE5000,X905',
228
- D4391 => 'u5000',
229
- D4392 => 'u7000,S7000',
230
- D4396 => 'FE5010,X915',
231
- D4397 => 'FE25,X20',
232
- D4398 => 'FE45,X40',
233
- D4401 => 'XZ-1',
234
- D4402 => 'uT6010,ST6010',
235
- D4406 => 'u7010,S7010 / u7020,S7020',
236
- D4407 => 'FE4010,X930',
237
- D4408 => 'X560WP',
238
- D4409 => 'FE26,X21',
239
- D4410 => 'FE4000,X920,X925',
240
- D4411 => 'FE46,X41,X42',
241
- D4412 => 'FE5020,X935',
242
- D4413 => 'uTough-3000',
243
- D4414 => 'StylusTough-6020',
244
- D4415 => 'StylusTough-8010',
245
- D4417 => 'u5010,S5010',
246
- D4418 => 'u7040,S7040',
247
- D4419 => 'u9010,S9010',
248
- D4423 => 'FE4040',
249
- D4424 => 'FE47,X43',
250
- D4426 => 'FE4030,X950',
251
- D4428 => 'FE5030,X965,X960',
252
- D4430 => 'u7030,S7030',
253
- D4432 => 'SP600UZ',
254
- D4434 => 'SP800UZ',
255
- D4439 => 'FE4020,X940',
256
- D4442 => 'FE5035',
257
- D4448 => 'FE4050,X970',
258
- D4450 => 'FE5050,X985',
259
- D4454 => 'u-7050',
260
- D4464 => 'T10,X27',
261
- D4470 => 'FE5040,X980',
262
- D4472 => 'TG-310',
263
- D4474 => 'TG-610',
264
- D4476 => 'TG-810',
265
- D4478 => 'VG145,VG140,D715',
266
- D4479 => 'VG130,D710',
267
- D4480 => 'VG120,D705',
268
- D4482 => 'VR310,D720',
269
- D4484 => 'VR320,D725',
270
- D4486 => 'VR330,D730',
271
- D4488 => 'VG110,D700',
272
- D4490 => 'SP-610UZ',
273
- D4492 => 'SZ-10',
274
- D4494 => 'SZ-20',
275
- D4496 => 'SZ-30MR',
276
- D4498 => 'SP-810UZ',
277
- D4500 => 'SZ-11',
278
- D4504 => 'TG-615',
279
- D4508 => 'TG-620',
280
- D4510 => 'TG-820',
281
- D4512 => 'TG-1',
282
- D4516 => 'SH-21',
283
- D4519 => 'SZ-14',
284
- D4520 => 'SZ-31MR',
285
- D4521 => 'SH-25MR',
286
- D4529 => 'VG170',
287
- D4535 => 'SP-620UZ',
288
- D4536 => 'TG-320',
289
- D4537 => 'VR340,D750',
290
- D4809 => 'C2500L',
291
- D4842 => 'E-10',
292
- D4856 => 'C-1',
293
- D4857 => 'C-1Z,D-150Z',
294
- DCHC => 'D500L',
295
- DCHT => 'D600L / D620L',
296
- S0003 => 'E-330',
297
- S0004 => 'E-500',
298
- S0009 => 'E-400',
299
- S0010 => 'E-510',
300
- S0011 => 'E-3',
301
- S0013 => 'E-410',
302
- S0016 => 'E-420',
303
- S0017 => 'E-30',
304
- S0018 => 'E-520',
305
- S0019 => 'E-P1',
306
- S0023 => 'E-620',
307
- S0026 => 'E-P2',
308
- S0027 => 'E-PL1',
309
- S0029 => 'E-450',
310
- S0030 => 'E-600',
311
- S0032 => 'E-P3',
312
- S0033 => 'E-5',
313
- S0034 => 'E-PL2',
314
- S0036 => 'E-M5',
315
- S0038 => 'E-PL3',
316
- S0039 => 'E-PM1',
317
- S0040 => 'E-PL1s',
318
- SR45 => 'D220',
319
- SR55 => 'D320L',
320
- SR83 => 'D340L',
321
- SR85 => 'C830L,D340R',
322
- SR852 => 'C860L,D360L',
323
- SR872 => 'C900Z,D400Z',
324
- SR874 => 'C960Z,D460Z',
325
- SR951 => 'C2000Z',
326
- SR952 => 'C21',
327
- SR953 => 'C21T.commu',
328
- SR954 => 'C2020Z',
329
- SR955 => 'C990Z,D490Z',
330
- SR956 => 'C211Z',
331
- SR959 => 'C990ZS,D490Z',
332
- SR95A => 'C2100UZ',
333
- SR971 => 'C100,D370',
334
- SR973 => 'C2,D230',
335
- SX151 => 'E100RS',
336
- SX351 => 'C3000Z / C3030Z',
337
- SX354 => 'C3040Z',
338
- SX355 => 'C2040Z',
339
- SX357 => 'C700UZ',
340
- SX358 => 'C200Z,D510Z',
341
- SX374 => 'C3100Z,C3020Z',
342
- SX552 => 'C4040Z',
343
- SX553 => 'C40Z,D40Z',
344
- SX556 => 'C730UZ',
345
- SX558 => 'C5050Z',
346
- SX571 => 'C120,D380',
347
- SX574 => 'C300Z,D550Z',
348
- SX575 => 'C4100Z,C4000Z',
349
- SX751 => 'X200,D560Z,C350Z',
350
- SX752 => 'X300,D565Z,C450Z',
351
- SX753 => 'C750UZ',
352
- SX754 => 'C740UZ',
353
- SX755 => 'C755UZ',
354
- SX756 => 'C5060WZ',
355
- SX757 => 'C8080WZ',
356
- SX758 => 'X350,D575Z,C360Z',
357
- SX759 => 'X400,D580Z,C460Z',
358
- SX75A => 'AZ-2ZOOM',
359
- SX75B => 'D595Z,C500Z',
360
- SX75C => 'X550,D545Z,C480Z',
361
- SX75D => 'IR-300',
362
- SX75F => 'C55Z,C5500Z',
363
- SX75G => 'C170,D425',
364
- SX75J => 'C180,D435',
365
- SX771 => 'C760UZ',
366
- SX772 => 'C770UZ',
367
- SX773 => 'C745UZ',
368
- SX774 => 'X250,D560Z,C350Z',
369
- SX775 => 'X100,D540Z,C310Z',
370
- SX776 => 'C460ZdelSol',
371
- SX777 => 'C765UZ',
372
- SX77A => 'D555Z,C315Z',
373
- SX851 => 'C7070WZ',
374
- SX852 => 'C70Z,C7000Z',
375
- SX853 => 'SP500UZ',
376
- SX854 => 'SP310',
377
- SX855 => 'SP350',
378
- SX873 => 'SP320',
379
- SX875 => 'FE180/X745', # (also D4330)
380
- SX876 => 'FE190/X750', # (also D4327)
381
- # other brands
382
- # 4MP9Q3 => 'Camera 4MP-9Q3'
383
- # 4MP9T2 => 'BenQ DC C420 / Camera 4MP-9T2'
384
- # 5MP9Q3 => 'Camera 5MP-9Q3',
385
- # 5MP9X9 => 'Camera 5MP-9X9',
386
- # '5MP-9T'=> 'Camera 5MP-9T3',
387
- # '5MP-9Y'=> 'Camera 5MP-9Y2',
388
- # '6MP-9U'=> 'Camera 6MP-9U9',
389
- # 7MP9Q3 => 'Camera 7MP-9Q3',
390
- # '8MP-9U'=> 'Camera 8MP-9U4',
391
- # CE5330 => 'Acer CE-5330',
392
- # 'CP-853'=> 'Acer CP-8531',
393
- # CS5531 => 'Acer CS5531',
394
- # DC500 => 'SeaLife DC500',
395
- # DC7370 => 'Camera 7MP-9GA',
396
- # DC7371 => 'Camera 7MP-9GM',
397
- # DC7371 => 'Hitachi HDC-751E',
398
- # DC7375 => 'Hitachi HDC-763E / Rollei RCP-7330X / Ricoh Caplio RR770 / Vivitar ViviCam 7330',
399
- # 'DC E63'=> 'BenQ DC E63+',
400
- # 'DC P86'=> 'BenQ DC P860',
401
- # DS5340 => 'Maginon Performic S5 / Premier 5MP-9M7',
402
- # DS5341 => 'BenQ E53+ / Supra TCM X50 / Maginon X50 / Premier 5MP-9P8',
403
- # DS5346 => 'Premier 5MP-9Q2',
404
- # E500 => 'Konica Minolta DiMAGE E500',
405
- # MAGINO => 'Maginon X60',
406
- # Mz60 => 'HP Photosmart Mz60',
407
- # Q3DIGI => 'Camera 5MP-9Q3',
408
- # SLIMLI => 'Supra Slimline X6',
409
- # V8300s => 'Vivitar V8300s',
410
- );
411
-
412
- # ArtFilter, ArtFilterEffect and MagicFilter values (ref PH)
413
- my %filters = (
414
- 0 => 'Off',
415
- 1 => 'Soft Focus', # (XZ-1)
416
- 2 => 'Pop Art', # (SZ-10 magic filter 1,SZ-31MR,E-M5,E-PL3)
417
- 3 => 'Pale & Light Color',
418
- 4 => 'Light Tone',
419
- 5 => 'Pin Hole', # (SZ-10 magic filter 2,SZ-31MR,E-PL3)
420
- 6 => 'Grainy Film',
421
- 9 => 'Diorama',
422
- 10 => 'Cross Process',
423
- 12 => 'Fish Eye', # (SZ-10 magic filter 3)
424
- 13 => 'Drawing', # (SZ-10 magic filter 4)
425
- 14 => 'Gentle Sepia', # (E-5)
426
- 15 => 'Tender Light', #11
427
- 16 => 'Pop Art II', #11 (E-PL3 "(dark)" - PH)
428
- 17 => 'Pin Hole II', #11 (E-PL3 "(color 2)" - PH)
429
- 18 => 'Pin Hole III', #11 (E-M5, E-PL3 "(color 3)" - PH)
430
- 19 => 'Grainy Film II', #11
431
- 20 => 'Dramatic Tone', # (XZ-1,SZ-31MR)
432
- 21 => 'Punk', # (SZ-10 magic filter 6)
433
- 22 => 'Soft Focus 2', # (SZ-10 magic filter 5)
434
- 23 => 'Sparkle', # (SZ-10 magic filter 7)
435
- 24 => 'Watercolor', # (SZ-10 magic filter 8)
436
- 25 => 'Key Line', # (E-M5)
437
- 27 => 'Miniature', # (SZ-31MR)
438
- 28 => 'Reflection', # (TG-820,SZ-31MR)
439
- 29 => 'Fragmented', # (TG-820,SZ-31MR)
440
- 32 => 'Dramatic Tone B&W', # (E-M5)
441
- );
442
-
443
- # tag information for WAV "Index" tags
444
- my %indexInfo = (
445
- Format => 'int32u',
446
- RawConv => '$val == 0xffffffff ? undef : $val',
447
- ValueConv => '$val / 1000',
448
- PrintConv => 'ConvertDuration($val)',
449
- );
450
-
451
- # Olympus tags
452
- %Image::ExifTool::Olympus::Main = (
453
- WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
454
- CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
455
- WRITABLE => 1,
456
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
457
- #
458
- # Tags 0x0000 through 0x0103 are the same as Konica/Minolta cameras (ref 3)
459
- # (removed 0x0101-0x0103 because they weren't supported by my samples - PH)
460
- #
461
- 0x0000 => {
462
- Name => 'MakerNoteVersion',
463
- Writable => 'undef',
464
- },
465
- 0x0001 => {
466
- Name => 'MinoltaCameraSettingsOld',
467
- SubDirectory => {
468
- TagTable => 'Image::ExifTool::Minolta::CameraSettings',
469
- ByteOrder => 'BigEndian',
470
- },
471
- },
472
- 0x0003 => {
473
- Name => 'MinoltaCameraSettings',
474
- SubDirectory => {
475
- TagTable => 'Image::ExifTool::Minolta::CameraSettings',
476
- ByteOrder => 'BigEndian',
477
- },
478
- },
479
- 0x0040 => {
480
- Name => 'CompressedImageSize',
481
- Writable => 'int32u',
482
- },
483
- 0x0081 => {
484
- Name => 'PreviewImageData',
485
- Binary => 1,
486
- Writable => 0,
487
- },
488
- 0x0088 => {
489
- Name => 'PreviewImageStart',
490
- Flags => 'IsOffset',
491
- OffsetPair => 0x0089, # point to associated byte count
492
- DataTag => 'PreviewImage',
493
- Writable => 0,
494
- Protected => 2,
495
- },
496
- 0x0089 => {
497
- Name => 'PreviewImageLength',
498
- OffsetPair => 0x0088, # point to associated offset
499
- DataTag => 'PreviewImage',
500
- Writable => 0,
501
- Protected => 2,
502
- },
503
- 0x0100 => {
504
- Name => 'ThumbnailImage',
505
- Writable => 'undef',
506
- WriteCheck => '$self->CheckImage(\$val)',
507
- Binary => 1,
508
- },
509
- 0x0104 => { #11
510
- Name => 'BodyFirmwareVersion',
511
- Writable => 'string',
512
- },
513
- #
514
- # end Konica/Minolta tags
515
- #
516
- 0x0200 => {
517
- Name => 'SpecialMode',
518
- Notes => q{
519
- 3 numbers: 1. Shooting mode: 0=Normal, 2=Fast, 3=Panorama;
520
- 2. Sequence Number; 3. Panorama Direction: 1=Left-Right,
521
- 2=Right-Left, 3=Bottom-Top, 4=Top-Bottom
522
- },
523
- Writable => 'int32u',
524
- Count => 3,
525
- PrintConv => sub { #3
526
- my $val = shift;
527
- my @v = split ' ', $val;
528
- return $val unless @v >= 3;
529
- my @v0 = ('Normal','Unknown (1)','Fast','Panorama');
530
- my @v2 = ('(none)','Left to Right','Right to Left','Bottom to Top','Top to Bottom');
531
- $val = $v0[$v[0]] || "Unknown ($v[0])";
532
- $val .= ", Sequence: $v[1]";
533
- $val .= ', Panorama: ' . ($v2[$v[2]] || "Unknown ($v[2])");
534
- return $val;
535
- },
536
- },
537
- 0x0201 => {
538
- Name => 'Quality',
539
- Writable => 'int16u',
540
- Notes => q{
541
- Quality values are decoded based on the CameraType tag. All types
542
- represent SQ, HQ and SHQ as sequential integers, but in general
543
- SX-type cameras start with a value of 0 for SQ while others start
544
- with 1
545
- },
546
- # These values are different for different camera types
547
- # (can't have Condition based on CameraType because it isn't known
548
- # when this tag is extracted)
549
- PrintConv => sub {
550
- my ($val, $self) = @_;
551
- my %t1 = ( # all SX camera types except SX151
552
- 0 => 'SQ (Low)',
553
- 1 => 'HQ (Normal)',
554
- 2 => 'SHQ (Fine)',
555
- 6 => 'RAW', #PH - C5050WZ
556
- );
557
- my %t2 = ( # all other types
558
- 1 => 'SQ (Low)',
559
- 2 => 'HQ (Normal)',
560
- 3 => 'SHQ (Fine)',
561
- 4 => 'RAW',
562
- 5 => 'Medium-Fine', #PH
563
- 6 => 'Small-Fine', #PH
564
- 33 => 'Uncompressed', #PH - C2100Z
565
- );
566
- my $conv = $self->{CameraType} =~ /^SX(?!151\b)/ ? \%t1 : \%t2;
567
- return $$conv{$val} ? $$conv{$val} : "Unknown ($val)";
568
- },
569
- # (no PrintConvInv because we don't know CameraType at write time)
570
- },
571
- 0x0202 => {
572
- Name => 'Macro',
573
- Writable => 'int16u',
574
- PrintConv => {
575
- 0 => 'Off',
576
- 1 => 'On',
577
- 2 => 'Super Macro', #6
578
- },
579
- },
580
- 0x0203 => { #6
581
- Name => 'BWMode',
582
- Description => 'Black And White Mode',
583
- Writable => 'int16u',
584
- PrintConv => \%offOn,
585
- },
586
- 0x0204 => {
587
- Name => 'DigitalZoom',
588
- Writable => 'rational64u',
589
- PrintConv => '$val=~/\./ or $val.=".0"; $val',
590
- PrintConvInv => '$val',
591
- },
592
- 0x0205 => { #6
593
- Name => 'FocalPlaneDiagonal',
594
- Writable => 'rational64u',
595
- PrintConv => '"$val mm"',
596
- PrintConvInv => '$val=~s/\s*mm$//;$val',
597
- },
598
- 0x0206 => { #6
599
- Name => 'LensDistortionParams',
600
- Writable => 'int16s',
601
- Count => 6,
602
- },
603
- 0x0207 => { #PH (was incorrectly FirmwareVersion, ref 1,3)
604
- Name => 'CameraType',
605
- Writable => 'string',
606
- DataMember => 'CameraType',
607
- RawConv => '$self->{CameraType} = $val',
608
- SeparateTable => 'CameraType',
609
- PrintConv => \%olympusCameraTypes,
610
- Priority => 0,
611
- # 'NORMAL' for some models: u730,SP510UZ,u1000,FE240
612
- },
613
- 0x0208 => {
614
- Name => 'TextInfo',
615
- SubDirectory => {
616
- TagTable => 'Image::ExifTool::Olympus::TextInfo',
617
- },
618
- },
619
- 0x0209 => {
620
- Name => 'CameraID',
621
- Format => 'string', # this really should have been a string
622
- },
623
- 0x020b => { #PH
624
- Name => 'EpsonImageWidth',
625
- Writable => 'int16u',
626
- },
627
- 0x020c => { #PH
628
- Name => 'EpsonImageHeight',
629
- Writable => 'int16u',
630
- },
631
- 0x020d => { #PH
632
- Name => 'EpsonSoftware',
633
- Writable => 'string',
634
- },
635
- 0x0280 => { #PH
636
- %Image::ExifTool::previewImageTagInfo,
637
- Notes => 'found in ERF and JPG images from some Epson models',
638
- Format => 'undef',
639
- Writable => 'int8u',
640
- },
641
- 0x0300 => { #6
642
- Name => 'PreCaptureFrames',
643
- Writable => 'int16u',
644
- },
645
- 0x0301 => { #11
646
- Name => 'WhiteBoard',
647
- Writable => 'int16u',
648
- },
649
- 0x0302 => { #6
650
- Name => 'OneTouchWB',
651
- Writable => 'int16u',
652
- PrintConv => {
653
- 0 => 'Off',
654
- 1 => 'On',
655
- 2 => 'On (Preset)',
656
- },
657
- },
658
- 0x0303 => { #11
659
- Name => 'WhiteBalanceBracket',
660
- Writable => 'int16u',
661
- },
662
- 0x0304 => { #11
663
- Name => 'WhiteBalanceBias',
664
- Writable => 'int16u',
665
- },
666
- # 0x0305 => 'PrintMaching', ? #11
667
- 0x0403 => { #11
668
- Name => 'SceneMode',
669
- Writable => 'int16u',
670
- PrintConvColumns => 2,
671
- PrintConv => {
672
- 0 => 'Normal',
673
- 1 => 'Standard',
674
- 2 => 'Auto',
675
- 3 => 'Intelligent Auto', #PH (guess, u7040)
676
- 4 => 'Portrait',
677
- 5 => 'Landscape+Portrait',
678
- 6 => 'Landscape',
679
- 7 => 'Night Scene',
680
- 8 => 'Night+Portrait',
681
- 9 => 'Sport',
682
- 10 => 'Self Portrait',
683
- 11 => 'Indoor',
684
- 12 => 'Beach & Snow',
685
- 13 => 'Beach',
686
- 14 => 'Snow',
687
- 15 => 'Self Portrait+Self Timer',
688
- 16 => 'Sunset',
689
- 17 => 'Cuisine',
690
- 18 => 'Documents',
691
- 19 => 'Candle',
692
- 20 => 'Fireworks',
693
- 21 => 'Available Light',
694
- 22 => 'Vivid',
695
- 23 => 'Underwater Wide1',
696
- 24 => 'Underwater Macro',
697
- 25 => 'Museum',
698
- 26 => 'Behind Glass',
699
- 27 => 'Auction',
700
- 28 => 'Shoot & Select1',
701
- 29 => 'Shoot & Select2',
702
- 30 => 'Underwater Wide2',
703
- 31 => 'Digital Image Stabilization',
704
- 32 => 'Face Portrait',
705
- 33 => 'Pet',
706
- 34 => 'Smile Shot',
707
- 35 => 'Quick Shutter',
708
- 43 => 'Hand-held Starlight', #PH (SH-21)
709
- 100 => 'Panorama', #PH (SH-21)
710
- 101 => 'Magic Filter', #PH
711
- },
712
- },
713
- 0x0404 => { #PH (D595Z, C7070WZ)
714
- Name => 'SerialNumber',
715
- Writable => 'string',
716
- },
717
- 0x0405 => { #11
718
- Name => 'Firmware',
719
- Writable => 'string',
720
- },
721
- 0x0e00 => {
722
- Name => 'PrintIM',
723
- Description => 'Print Image Matching',
724
- Writable => 0,
725
- SubDirectory => {
726
- TagTable => 'Image::ExifTool::PrintIM::Main',
727
- },
728
- },
729
- 0x0f00 => {
730
- Name => 'DataDump',
731
- Writable => 0,
732
- Binary => 1,
733
- },
734
- 0x0f01 => { #6
735
- Name => 'DataDump2',
736
- Writable => 0,
737
- Binary => 1,
738
- },
739
- 0x0f04 => {
740
- Name => 'ZoomedPreviewStart',
741
- # NOTE: this tag is not currently updated properly when the image is rewritten!
742
- OffsetPair => 0xf05,
743
- DataTag => 'ZoomedPreviewImage',
744
- Writable => 'int32u',
745
- Protected => 2,
746
- },
747
- 0x0f05 => {
748
- Name => 'ZoomedPreviewLength',
749
- OffsetPair => 0xf04,
750
- DataTag => 'ZoomedPreviewImage',
751
- Writable => 'int32u',
752
- Protected => 2,
753
- },
754
- 0x0f06 => {
755
- Name => 'ZoomedPreviewSize',
756
- Writable => 'int16u',
757
- Count => 2,
758
- },
759
- 0x1000 => { #6
760
- Name => 'ShutterSpeedValue',
761
- Writable => 'rational64s',
762
- Priority => 0,
763
- ValueConv => 'abs($val)<100 ? 2**(-$val) : 0',
764
- ValueConvInv => '$val>0 ? -log($val)/log(2) : -100',
765
- PrintConv => 'Image::ExifTool::Exif::PrintExposureTime($val)',
766
- PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
767
- },
768
- 0x1001 => { #6
769
- Name => 'ISOValue',
770
- Writable => 'rational64s',
771
- Priority => 0,
772
- ValueConv => '100 * 2 ** ($val - 5)',
773
- ValueConvInv => '$val>0 ? log($val/100)/log(2)+5 : 0',
774
- PrintConv => 'int($val * 100 + 0.5) / 100',
775
- PrintConvInv => '$val',
776
- },
777
- 0x1002 => { #6
778
- Name => 'ApertureValue',
779
- Writable => 'rational64s',
780
- Priority => 0,
781
- ValueConv => '2 ** ($val / 2)',
782
- ValueConvInv => '$val>0 ? 2*log($val)/log(2) : 0',
783
- PrintConv => 'sprintf("%.1f",$val)',
784
- PrintConvInv => '$val',
785
- },
786
- 0x1003 => { #6
787
- Name => 'BrightnessValue',
788
- Writable => 'rational64s',
789
- Priority => 0,
790
- },
791
- 0x1004 => { #3
792
- Name => 'FlashMode',
793
- Writable => 'int16u',
794
- PrintConv => {
795
- 2 => 'On', #PH
796
- 3 => 'Off', #PH
797
- },
798
- },
799
- 0x1005 => { #6
800
- Name => 'FlashDevice',
801
- Writable => 'int16u',
802
- PrintConv => {
803
- 0 => 'None',
804
- 1 => 'Internal',
805
- 4 => 'External',
806
- 5 => 'Internal + External',
807
- },
808
- },
809
- 0x1006 => { #6
810
- Name =>'ExposureCompensation',
811
- Writable => 'rational64s',
812
- },
813
- 0x1007 => { #6 (E-10, E-20 and C2500L - numbers usually around 30-40)
814
- Name => 'SensorTemperature',
815
- Writable => 'int16s',
816
- },
817
- 0x1008 => { #6
818
- Name => 'LensTemperature',
819
- Writable => 'int16s',
820
- },
821
- 0x1009 => { #11
822
- Name => 'LightCondition',
823
- Writable => 'int16u',
824
- },
825
- 0x100a => { #11
826
- Name => 'FocusRange',
827
- Writable => 'int16u',
828
- PrintConv => {
829
- 0 => 'Normal',
830
- 1 => 'Macro',
831
- },
832
- },
833
- 0x100b => { #6
834
- Name => 'FocusMode',
835
- Writable => 'int16u',
836
- PrintConv => {
837
- 0 => 'Auto',
838
- 1 => 'Manual',
839
- },
840
- },
841
- 0x100c => { #6
842
- Name => 'ManualFocusDistance',
843
- Writable => 'rational64u',
844
- PrintConv => '"$val mm"', #11
845
- PrintConvInv => '$val=~s/\s*mm$//; $val',
846
- },
847
- 0x100d => { #6
848
- Name => 'ZoomStepCount',
849
- Writable => 'int16u',
850
- },
851
- 0x100e => { #6
852
- Name => 'FocusStepCount',
853
- Writable => 'int16u',
854
- },
855
- 0x100f => { #6
856
- Name => 'Sharpness',
857
- Writable => 'int16u',
858
- Priority => 0,
859
- PrintConv => {
860
- 0 => 'Normal',
861
- 1 => 'Hard',
862
- 2 => 'Soft',
863
- },
864
- },
865
- 0x1010 => { #6
866
- Name => 'FlashChargeLevel',
867
- Writable => 'int16u',
868
- },
869
- 0x1011 => { #3
870
- Name => 'ColorMatrix',
871
- Writable => 'int16u',
872
- Format => 'int16s',
873
- Count => 9,
874
- },
875
- 0x1012 => { #3
876
- Name => 'BlackLevel',
877
- Writable => 'int16u',
878
- Count => 4,
879
- },
880
- 0x1013 => { #11
881
- Name => 'ColorTemperatureBG',
882
- Writable => 'int16u',
883
- Unknown => 1, # (doesn't look like a temperature)
884
- },
885
- 0x1014 => { #11
886
- Name => 'ColorTemperatureRG',
887
- Writable => 'int16u',
888
- Unknown => 1, # (doesn't look like a temperature)
889
- },
890
- 0x1015 => { #6
891
- Name => 'WBMode',
892
- Writable => 'int16u',
893
- Count => 2,
894
- PrintConvColumns => 2,
895
- PrintConv => {
896
- '1' => 'Auto',
897
- '1 0' => 'Auto',
898
- '1 2' => 'Auto (2)',
899
- '1 4' => 'Auto (4)',
900
- '2 2' => '3000 Kelvin',
901
- '2 3' => '3700 Kelvin',
902
- '2 4' => '4000 Kelvin',
903
- '2 5' => '4500 Kelvin',
904
- '2 6' => '5500 Kelvin',
905
- '2 7' => '6500 Kelvin',
906
- '2 8' => '7500 Kelvin',
907
- '3 0' => 'One-touch',
908
- },
909
- },
910
- 0x1017 => { #2
911
- Name => 'RedBalance',
912
- Writable => 'int16u',
913
- Count => 2,
914
- ValueConv => '$val=~s/ .*//; $val / 256',
915
- ValueConvInv => '$val*=256;"$val 64"',
916
- },
917
- 0x1018 => { #2
918
- Name => 'BlueBalance',
919
- Writable => 'int16u',
920
- Count => 2,
921
- ValueConv => '$val=~s/ .*//; $val / 256',
922
- ValueConvInv => '$val*=256;"$val 64"',
923
- },
924
- 0x1019 => { #11
925
- Name => 'ColorMatrixNumber',
926
- Writable => 'int16u',
927
- },
928
- # 0x101a is same as CameraID ("OLYMPUS DIGITAL CAMERA") for C2500L - PH
929
- 0x101a => { #3
930
- Name => 'SerialNumber',
931
- Writable => 'string',
932
- },
933
- 0x101b => { #11
934
- Name => 'ExternalFlashAE1_0',
935
- Writable => 'int32u',
936
- Unknown => 1, # (what are these?)
937
- },
938
- 0x101c => { #11
939
- Name => 'ExternalFlashAE2_0',
940
- Writable => 'int32u',
941
- Unknown => 1,
942
- },
943
- 0x101d => { #11
944
- Name => 'InternalFlashAE1_0',
945
- Writable => 'int32u',
946
- Unknown => 1,
947
- },
948
- 0x101e => { #11
949
- Name => 'InternalFlashAE2_0',
950
- Writable => 'int32u',
951
- Unknown => 1,
952
- },
953
- 0x101f => { #11
954
- Name => 'ExternalFlashAE1',
955
- Writable => 'int32u',
956
- Unknown => 1,
957
- },
958
- 0x1020 => { #11
959
- Name => 'ExternalFlashAE2',
960
- Writable => 'int32u',
961
- Unknown => 1,
962
- },
963
- 0x1021 => { #11
964
- Name => 'InternalFlashAE1',
965
- Writable => 'int32u',
966
- Unknown => 1,
967
- },
968
- 0x1022 => { #11
969
- Name => 'InternalFlashAE2',
970
- Writable => 'int32u',
971
- Unknown => 1,
972
- },
973
- 0x1023 => { #6
974
- Name => 'FlashExposureComp',
975
- Writable => 'rational64s',
976
- },
977
- 0x1024 => { #11
978
- Name => 'InternalFlashTable',
979
- Writable => 'int16u',
980
- },
981
- 0x1025 => { #11
982
- Name => 'ExternalFlashGValue',
983
- Writable => 'rational64s',
984
- },
985
- 0x1026 => { #6
986
- Name => 'ExternalFlashBounce',
987
- Writable => 'int16u',
988
- PrintConv => {
989
- 0 => 'No',
990
- 1 => 'Yes',
991
- },
992
- },
993
- 0x1027 => { #6
994
- Name => 'ExternalFlashZoom',
995
- Writable => 'int16u',
996
- },
997
- 0x1028 => { #6
998
- Name => 'ExternalFlashMode',
999
- Writable => 'int16u',
1000
- },
1001
- 0x1029 => { #3
1002
- Name => 'Contrast',
1003
- Writable => 'int16u',
1004
- PrintConv => { #PH (works with E1)
1005
- 0 => 'High',
1006
- 1 => 'Normal',
1007
- 2 => 'Low',
1008
- },
1009
- },
1010
- 0x102a => { #3
1011
- Name => 'SharpnessFactor',
1012
- Writable => 'int16u',
1013
- },
1014
- 0x102b => { #3
1015
- Name => 'ColorControl',
1016
- Writable => 'int16u',
1017
- Count => 6,
1018
- },
1019
- 0x102c => { #3
1020
- Name => 'ValidBits',
1021
- Writable => 'int16u',
1022
- Count => 2,
1023
- },
1024
- 0x102d => { #3
1025
- Name => 'CoringFilter',
1026
- Writable => 'int16u',
1027
- },
1028
- 0x102e => { #PH
1029
- Name => 'OlympusImageWidth',
1030
- Writable => 'int32u',
1031
- },
1032
- 0x102f => { #PH
1033
- Name => 'OlympusImageHeight',
1034
- Writable => 'int32u',
1035
- },
1036
- 0x1030 => { #11
1037
- Name => 'SceneDetect',
1038
- Writable => 'int16u',
1039
- },
1040
- 0x1031 => { #11
1041
- Name => 'SceneArea',
1042
- Writable => 'int32u',
1043
- Count => 8,
1044
- Unknown => 1, # (numbers don't make much sense?)
1045
- },
1046
- # 0x1032 HAFFINAL? #11
1047
- 0x1033 => { #11
1048
- Name => 'SceneDetectData',
1049
- Writable => 'int32u',
1050
- Count => 720,
1051
- Binary => 1,
1052
- Unknown => 1, # (but what does it mean?)
1053
- },
1054
- 0x1034 => { #3
1055
- Name => 'CompressionRatio',
1056
- Writable => 'rational64u',
1057
- },
1058
- 0x1035 => { #6
1059
- Name => 'PreviewImageValid',
1060
- Writable => 'int32u',
1061
- PrintConv => { 0 => 'No', 1 => 'Yes' },
1062
- },
1063
- 0x1036 => { #6
1064
- Name => 'PreviewImageStart',
1065
- Flags => 'IsOffset',
1066
- OffsetPair => 0x1037, # point to associated byte count
1067
- DataTag => 'PreviewImage',
1068
- Writable => 'int32u',
1069
- Protected => 2,
1070
- },
1071
- 0x1037 => { #6
1072
- # (may contain data from multiple previews - PH, FE320)
1073
- Name => 'PreviewImageLength',
1074
- OffsetPair => 0x1036, # point to associated offset
1075
- DataTag => 'PreviewImage',
1076
- Writable => 'int32u',
1077
- Protected => 2,
1078
- },
1079
- 0x1038 => { #11
1080
- Name => 'AFResult',
1081
- Writable => 'int16u',
1082
- },
1083
- 0x1039 => { #6
1084
- Name => 'CCDScanMode',
1085
- Writable => 'int16u',
1086
- PrintConv => {
1087
- 0 => 'Interlaced',
1088
- 1 => 'Progressive',
1089
- },
1090
- },
1091
- 0x103a => { #6
1092
- Name => 'NoiseReduction',
1093
- Writable => 'int16u',
1094
- PrintConv => \%offOn,
1095
- },
1096
- 0x103b => { #6
1097
- Name => 'FocusStepInfinity',
1098
- Writable => 'int16u',
1099
- },
1100
- 0x103c => { #6
1101
- Name => 'FocusStepNear',
1102
- Writable => 'int16u',
1103
- },
1104
- 0x103d => { #11
1105
- Name => 'LightValueCenter',
1106
- Writable => 'rational64s',
1107
- },
1108
- 0x103e => { #11
1109
- Name => 'LightValuePeriphery',
1110
- Writable => 'rational64s',
1111
- },
1112
- 0x103f => { #11
1113
- Name => 'FieldCount',
1114
- Writable => 'int16u',
1115
- Unknown => 1, # (but what does it mean?)
1116
- },
1117
- #
1118
- # Olympus really screwed up the format of the following subdirectories (for the
1119
- # E-1 and E-300 anyway). Not only is the subdirectory value data not included in
1120
- # the size, but also the count is 2 bytes short for the subdirectory itself
1121
- # (presumably the Olympus programmers forgot about the 2-byte entry count at the
1122
- # start of the subdirectory). This mess is straightened out and these subdirs
1123
- # are written properly when ExifTool rewrites the file. Note that this problem
1124
- # has been fixed by Olympus in the new-style IFD maker notes since a standard
1125
- # SubIFD offset value is used. As written by the camera, the old style
1126
- # directories have format 'undef' or 'string', and the new style has format
1127
- # 'ifd'. However, some older versions of exiftool may have rewritten the new
1128
- # style as 'int32u', so handle both cases. - PH
1129
- #
1130
- 0x2010 => [ #PH
1131
- {
1132
- Name => 'Equipment',
1133
- Condition => '$format ne "ifd" and $format ne "int32u"',
1134
- NestedHtmlDump => 2, # (so HtmlDump doesn't show these as double-referenced)
1135
- SubDirectory => {
1136
- TagTable => 'Image::ExifTool::Olympus::Equipment',
1137
- ByteOrder => 'Unknown',
1138
- },
1139
- },
1140
- {
1141
- Name => 'EquipmentIFD',
1142
- Groups => { 1 => 'MakerNotes' }, # SubIFD needs group 1 set
1143
- Flags => 'SubIFD',
1144
- FixFormat => 'ifd',
1145
- SubDirectory => {
1146
- TagTable => 'Image::ExifTool::Olympus::Equipment',
1147
- Start => '$val',
1148
- },
1149
- },
1150
- ],
1151
- 0x2020 => [ #PH
1152
- {
1153
- Name => 'CameraSettings',
1154
- Condition => '$format ne "ifd" and $format ne "int32u"',
1155
- NestedHtmlDump => 2,
1156
- SubDirectory => {
1157
- TagTable => 'Image::ExifTool::Olympus::CameraSettings',
1158
- ByteOrder => 'Unknown',
1159
- },
1160
- },
1161
- {
1162
- Name => 'CameraSettingsIFD',
1163
- Groups => { 1 => 'MakerNotes' },
1164
- Flags => 'SubIFD',
1165
- FixFormat => 'ifd',
1166
- SubDirectory => {
1167
- TagTable => 'Image::ExifTool::Olympus::CameraSettings',
1168
- Start => '$val',
1169
- },
1170
- },
1171
- ],
1172
- 0x2030 => [ #PH
1173
- {
1174
- Name => 'RawDevelopment',
1175
- Condition => '$format ne "ifd" and $format ne "int32u"',
1176
- NestedHtmlDump => 2,
1177
- SubDirectory => {
1178
- TagTable => 'Image::ExifTool::Olympus::RawDevelopment',
1179
- ByteOrder => 'Unknown',
1180
- },
1181
- },
1182
- {
1183
- Name => 'RawDevelopmentIFD',
1184
- Groups => { 1 => 'MakerNotes' },
1185
- Flags => 'SubIFD',
1186
- FixFormat => 'ifd',
1187
- SubDirectory => {
1188
- TagTable => 'Image::ExifTool::Olympus::RawDevelopment',
1189
- Start => '$val',
1190
- },
1191
- },
1192
- ],
1193
- 0x2031 => [ #11
1194
- {
1195
- Name => 'RawDev2',
1196
- Condition => '$format ne "ifd" and $format ne "int32u"',
1197
- NestedHtmlDump => 2,
1198
- SubDirectory => {
1199
- TagTable => 'Image::ExifTool::Olympus::RawDevelopment2',
1200
- ByteOrder => 'Unknown',
1201
- },
1202
- },
1203
- {
1204
- Name => 'RawDev2IFD',
1205
- Groups => { 1 => 'MakerNotes' },
1206
- Flags => 'SubIFD',
1207
- FixFormat => 'ifd',
1208
- SubDirectory => {
1209
- TagTable => 'Image::ExifTool::Olympus::RawDevelopment2',
1210
- Start => '$val',
1211
- },
1212
- },
1213
- ],
1214
- 0x2040 => [ #PH
1215
- {
1216
- Name => 'ImageProcessing',
1217
- Condition => '$format ne "ifd" and $format ne "int32u"',
1218
- NestedHtmlDump => 2,
1219
- SubDirectory => {
1220
- TagTable => 'Image::ExifTool::Olympus::ImageProcessing',
1221
- ByteOrder => 'Unknown',
1222
- },
1223
- },
1224
- {
1225
- Name => 'ImageProcessingIFD',
1226
- Groups => { 1 => 'MakerNotes' },
1227
- Flags => 'SubIFD',
1228
- FixFormat => 'ifd',
1229
- SubDirectory => {
1230
- TagTable => 'Image::ExifTool::Olympus::ImageProcessing',
1231
- Start => '$val',
1232
- },
1233
- },
1234
- ],
1235
- 0x2050 => [ #PH
1236
- {
1237
- Name => 'FocusInfo',
1238
- Condition => '$format ne "ifd" and $format ne "int32u" and not $$self{OlympusCAMER}',
1239
- NestedHtmlDump => 2,
1240
- SubDirectory => {
1241
- TagTable => 'Image::ExifTool::Olympus::FocusInfo',
1242
- ByteOrder => 'Unknown',
1243
- },
1244
- },
1245
- {
1246
- Name => 'FocusInfoIFD',
1247
- Condition => 'not $$self{OlympusCAMER}',
1248
- Groups => { 1 => 'MakerNotes' },
1249
- Flags => 'SubIFD',
1250
- FixFormat => 'ifd',
1251
- SubDirectory => {
1252
- TagTable => 'Image::ExifTool::Olympus::FocusInfo',
1253
- Start => '$val',
1254
- },
1255
- },
1256
- {
1257
- # ASCII-based camera parameters if makernotes starts with "CAMER\0"
1258
- # (or for Sony models starting with "SONY PI\0" or "PREMI\0")
1259
- Name => 'CameraParameters',
1260
- Writable => 'undef',
1261
- Binary => 1,
1262
- },
1263
- ],
1264
- 0x2100 => [
1265
- { #11
1266
- Name => 'Olympus2100',
1267
- Condition => '$format ne "ifd" and $format ne "int32u"',
1268
- NestedHtmlDump => 2,
1269
- SubDirectory => {
1270
- TagTable => 'Image::ExifTool::Olympus::FETags',
1271
- ByteOrder => 'Unknown',
1272
- },
1273
- },
1274
- { #PH
1275
- Name => 'Olympus2100IFD',
1276
- Groups => { 1 => 'MakerNotes' },
1277
- Flags => 'SubIFD',
1278
- FixFormat => 'ifd',
1279
- SubDirectory => {
1280
- TagTable => 'Image::ExifTool::Olympus::FETags',
1281
- ByteOrder => 'Unknown',
1282
- Start => '$val',
1283
- },
1284
- },
1285
- ],
1286
- 0x2200 => [
1287
- { #11
1288
- Name => 'Olympus2200',
1289
- Condition => '$format ne "ifd" and $format ne "int32u"',
1290
- NestedHtmlDump => 2,
1291
- SubDirectory => {
1292
- TagTable => 'Image::ExifTool::Olympus::FETags',
1293
- ByteOrder => 'Unknown',
1294
- },
1295
- },
1296
- { #PH
1297
- Name => 'Olympus2200IFD',
1298
- Groups => { 1 => 'MakerNotes' },
1299
- Flags => 'SubIFD',
1300
- FixFormat => 'ifd',
1301
- SubDirectory => {
1302
- TagTable => 'Image::ExifTool::Olympus::FETags',
1303
- ByteOrder => 'Unknown',
1304
- Start => '$val',
1305
- },
1306
- },
1307
- ],
1308
- 0x2300 => [
1309
- { #11
1310
- Name => 'Olympus2300',
1311
- Condition => '$format ne "ifd" and $format ne "int32u"',
1312
- NestedHtmlDump => 2,
1313
- SubDirectory => {
1314
- TagTable => 'Image::ExifTool::Olympus::FETags',
1315
- ByteOrder => 'Unknown',
1316
- },
1317
- },
1318
- { #PH
1319
- Name => 'Olympus2300IFD',
1320
- Groups => { 1 => 'MakerNotes' },
1321
- Flags => 'SubIFD',
1322
- FixFormat => 'ifd',
1323
- SubDirectory => {
1324
- TagTable => 'Image::ExifTool::Olympus::FETags',
1325
- ByteOrder => 'Unknown',
1326
- Start => '$val',
1327
- },
1328
- },
1329
- ],
1330
- 0x2400 => [
1331
- { #11
1332
- Name => 'Olympus2400',
1333
- Condition => '$format ne "ifd" and $format ne "int32u"',
1334
- NestedHtmlDump => 2,
1335
- SubDirectory => {
1336
- TagTable => 'Image::ExifTool::Olympus::FETags',
1337
- ByteOrder => 'Unknown',
1338
- },
1339
- },
1340
- { #PH
1341
- Name => 'Olympus2400IFD',
1342
- Groups => { 1 => 'MakerNotes' },
1343
- Flags => 'SubIFD',
1344
- FixFormat => 'ifd',
1345
- SubDirectory => {
1346
- TagTable => 'Image::ExifTool::Olympus::FETags',
1347
- ByteOrder => 'Unknown',
1348
- Start => '$val',
1349
- },
1350
- },
1351
- ],
1352
- 0x2500 => [
1353
- { #11
1354
- Name => 'Olympus2500',
1355
- Condition => '$format ne "ifd" and $format ne "int32u"',
1356
- NestedHtmlDump => 2,
1357
- SubDirectory => {
1358
- TagTable => 'Image::ExifTool::Olympus::FETags',
1359
- ByteOrder => 'Unknown',
1360
- },
1361
- },
1362
- { #PH
1363
- Name => 'Olympus2500IFD',
1364
- Groups => { 1 => 'MakerNotes' },
1365
- Flags => 'SubIFD',
1366
- FixFormat => 'ifd',
1367
- SubDirectory => {
1368
- TagTable => 'Image::ExifTool::Olympus::FETags',
1369
- ByteOrder => 'Unknown',
1370
- Start => '$val',
1371
- },
1372
- },
1373
- ],
1374
- 0x2600 => [
1375
- { #11
1376
- Name => 'Olympus2600',
1377
- Condition => '$format ne "ifd" and $format ne "int32u"',
1378
- NestedHtmlDump => 2,
1379
- SubDirectory => {
1380
- TagTable => 'Image::ExifTool::Olympus::FETags',
1381
- ByteOrder => 'Unknown',
1382
- },
1383
- },
1384
- { #PH
1385
- Name => 'Olympus2600IFD',
1386
- Groups => { 1 => 'MakerNotes' },
1387
- Flags => 'SubIFD',
1388
- FixFormat => 'ifd',
1389
- SubDirectory => {
1390
- TagTable => 'Image::ExifTool::Olympus::FETags',
1391
- ByteOrder => 'Unknown',
1392
- Start => '$val',
1393
- },
1394
- },
1395
- ],
1396
- 0x2700 => [
1397
- { #11
1398
- Name => 'Olympus2700',
1399
- Condition => '$format ne "ifd" and $format ne "int32u"',
1400
- NestedHtmlDump => 2,
1401
- SubDirectory => {
1402
- TagTable => 'Image::ExifTool::Olympus::FETags',
1403
- ByteOrder => 'Unknown',
1404
- },
1405
- },
1406
- { #PH
1407
- Name => 'Olympus2700IFD',
1408
- Groups => { 1 => 'MakerNotes' },
1409
- Flags => 'SubIFD',
1410
- FixFormat => 'ifd',
1411
- SubDirectory => {
1412
- TagTable => 'Image::ExifTool::Olympus::FETags',
1413
- ByteOrder => 'Unknown',
1414
- Start => '$val',
1415
- },
1416
- },
1417
- ],
1418
- 0x2800 => [
1419
- { #11
1420
- Name => 'Olympus2800',
1421
- Condition => '$format ne "ifd" and $format ne "int32u"',
1422
- NestedHtmlDump => 2,
1423
- SubDirectory => {
1424
- TagTable => 'Image::ExifTool::Olympus::FETags',
1425
- ByteOrder => 'Unknown',
1426
- },
1427
- },
1428
- { #PH
1429
- Name => 'Olympus2800IFD',
1430
- Groups => { 1 => 'MakerNotes' },
1431
- Flags => 'SubIFD',
1432
- FixFormat => 'ifd',
1433
- SubDirectory => {
1434
- TagTable => 'Image::ExifTool::Olympus::FETags',
1435
- ByteOrder => 'Unknown',
1436
- Start => '$val',
1437
- },
1438
- },
1439
- ],
1440
- 0x2900 => [
1441
- { #11
1442
- Name => 'Olympus2900',
1443
- Condition => '$format ne "ifd" and $format ne "int32u"',
1444
- NestedHtmlDump => 2,
1445
- SubDirectory => {
1446
- TagTable => 'Image::ExifTool::Olympus::FETags',
1447
- ByteOrder => 'Unknown',
1448
- },
1449
- },
1450
- { #PH
1451
- Name => 'Olympus2900IFD',
1452
- Groups => { 1 => 'MakerNotes' },
1453
- Flags => 'SubIFD',
1454
- FixFormat => 'ifd',
1455
- SubDirectory => {
1456
- TagTable => 'Image::ExifTool::Olympus::FETags',
1457
- ByteOrder => 'Unknown',
1458
- Start => '$val',
1459
- },
1460
- },
1461
- ],
1462
- 0x3000 => [
1463
- { #6
1464
- Name => 'RawInfo',
1465
- Condition => '$format ne "ifd" and $format ne "int32u"',
1466
- NestedHtmlDump => 2,
1467
- SubDirectory => {
1468
- TagTable => 'Image::ExifTool::Olympus::RawInfo',
1469
- ByteOrder => 'Unknown',
1470
- },
1471
- },
1472
- { #PH
1473
- Name => 'RawInfoIFD',
1474
- Groups => { 1 => 'MakerNotes' },
1475
- Flags => 'SubIFD',
1476
- FixFormat => 'ifd',
1477
- SubDirectory => {
1478
- TagTable => 'Image::ExifTool::Olympus::RawInfo',
1479
- Start => '$val',
1480
- },
1481
- },
1482
- ],
1483
- 0x4000 => [ #PH
1484
- {
1485
- Name => 'MainInfo',
1486
- Condition => '$format ne "ifd" and $format ne "int32u"',
1487
- NestedHtmlDump => 2,
1488
- SubDirectory => {
1489
- TagTable => 'Image::ExifTool::Olympus::Main',
1490
- ByteOrder => 'Unknown',
1491
- },
1492
- },
1493
- {
1494
- Name => 'MainInfoIFD',
1495
- Groups => { 1 => 'MakerNotes' },
1496
- Flags => 'SubIFD',
1497
- FixFormat => 'ifd',
1498
- SubDirectory => {
1499
- TagTable => 'Image::ExifTool::Olympus::Main',
1500
- Start => '$val',
1501
- },
1502
- },
1503
- ],
1504
- 0x5000 => [ #PH
1505
- {
1506
- Name => 'UnknownInfo',
1507
- Condition => '$format ne "ifd" and $format ne "int32u"',
1508
- NestedHtmlDump => 2,
1509
- SubDirectory => {
1510
- TagTable => 'Image::ExifTool::Olympus::UnknownInfo',
1511
- ByteOrder => 'Unknown',
1512
- },
1513
- },
1514
- {
1515
- Name => 'UnknownInfoIFD',
1516
- Groups => { 1 => 'MakerNotes' },
1517
- Flags => 'SubIFD',
1518
- FixFormat => 'ifd',
1519
- SubDirectory => {
1520
- TagTable => 'Image::ExifTool::Olympus::UnknownInfo',
1521
- Start => '$val',
1522
- },
1523
- },
1524
- ],
1525
- );
1526
-
1527
- # TextInfo tags
1528
- %Image::ExifTool::Olympus::TextInfo = (
1529
- PROCESS_PROC => \&Image::ExifTool::APP12::ProcessAPP12,
1530
- NOTES => q{
1531
- This information is in text format (similar to APP12 information, but with
1532
- spaces instead of linefeeds). Below are tags which have been observed, but
1533
- any information found here will be extracted, even if the tag is not listed.
1534
- },
1535
- GROUPS => { 0 => 'MakerNotes', 1 => 'Olympus', 2 => 'Image' },
1536
- Resolution => { },
1537
- Type => {
1538
- Name => 'CameraType',
1539
- Groups => { 2 => 'Camera' },
1540
- DataMember => 'CameraType',
1541
- RawConv => '$self->{CameraType} = $val',
1542
- SeparateTable => 'CameraType',
1543
- PrintConv => \%olympusCameraTypes,
1544
- },
1545
- );
1546
-
1547
- # Olympus Equipment IFD
1548
- %Image::ExifTool::Olympus::Equipment = (
1549
- WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
1550
- CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
1551
- WRITABLE => 1,
1552
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
1553
- 0x000 => { #PH
1554
- Name => 'EquipmentVersion',
1555
- Writable => 'undef',
1556
- RawConv => '$val=~s/\0+$//; $val', # (may be null terminated)
1557
- Count => 4,
1558
- },
1559
- 0x100 => { #6
1560
- Name => 'CameraType2',
1561
- Writable => 'string',
1562
- Count => 6,
1563
- SeparateTable => 'CameraType',
1564
- PrintConv => \%olympusCameraTypes,
1565
- },
1566
- 0x101 => { #PH
1567
- Name => 'SerialNumber',
1568
- Writable => 'string',
1569
- Count => 32,
1570
- PrintConv => '$val=~s/\s+$//;$val',
1571
- PrintConvInv => 'pack("A31",$val)', # pad with spaces to 31 chars
1572
- },
1573
- 0x102 => { #6
1574
- Name => 'InternalSerialNumber',
1575
- Notes => '16 digits: 0-3=model, 4=year, 5-6=month, 8-12=unit number',
1576
- Writable => 'string',
1577
- Count => 32,
1578
- },
1579
- 0x103 => { #6
1580
- Name => 'FocalPlaneDiagonal',
1581
- Writable => 'rational64u',
1582
- PrintConv => '"$val mm"',
1583
- PrintConvInv => '$val=~s/\s*mm$//;$val',
1584
- },
1585
- 0x104 => { #6
1586
- Name => 'BodyFirmwareVersion',
1587
- Writable => 'int32u',
1588
- PrintConv => '$val=sprintf("%x",$val);$val=~s/(.{3})$/\.$1/;$val',
1589
- PrintConvInv => '$val=sprintf("%.3f",$val);$val=~s/\.//;hex($val)',
1590
- },
1591
- 0x201 => { #6
1592
- Name => 'LensType',
1593
- Writable => 'int8u',
1594
- Count => 6,
1595
- Notes => q{
1596
- 6 numbers: 0. Make, 1. Unknown, 2. Model, 3. Sub-model, 4-5. Unknown. Only
1597
- the Make, Model and Sub-model are used to determine the lens model
1598
- },
1599
- SeparateTable => 'LensType',
1600
- # Have seen these values for the unknown numbers:
1601
- # 1: 0
1602
- # 4: 0, 2(Olympus lenses for which I have also seen 0 for this number)
1603
- # 5: 0, 16(new Lumix lenses)
1604
- ValueConv => 'my @a = split(" ",$val); "$a[0] $a[2] $a[3]"',
1605
- # set unknown values to zero when writing
1606
- ValueConvInv => 'my @a=split(" ",$val); "$a[0] 0 $a[1] $a[2] 0 0"',
1607
- PrintConv => \%olympusLensTypes,
1608
- },
1609
- # apparently the first 3 digits of the lens s/n give the type (ref 4):
1610
- # 010 = 50macro
1611
- # 040 = EC-14
1612
- # 050 = 14-54
1613
- # 060 = 50-200
1614
- # 080 = EX-25
1615
- # 101 = FL-50
1616
- # 272 = EC-20 #7
1617
- 0x202 => { #PH
1618
- Name => 'LensSerialNumber',
1619
- Writable => 'string',
1620
- Count => 32,
1621
- PrintConv => '$val=~s/\s+$//;$val',
1622
- PrintConvInv => 'pack("A31",$val)', # pad with spaces to 31 chars
1623
- },
1624
- 0x203 => { #17
1625
- Name => 'LensModel',
1626
- Writable => 'string',
1627
- },
1628
- 0x204 => { #6
1629
- Name => 'LensFirmwareVersion',
1630
- Writable => 'int32u',
1631
- PrintConv => '$val=sprintf("%x",$val);$val=~s/(.{3})$/\.$1/;$val',
1632
- PrintConvInv => '$val=sprintf("%.3f",$val);$val=~s/\.//;hex($val)',
1633
- },
1634
- 0x205 => { #11
1635
- Name => 'MaxApertureAtMinFocal',
1636
- Writable => 'int16u',
1637
- ValueConv => '$val ? sqrt(2)**($val/256) : 0',
1638
- ValueConvInv => '$val>0 ? int(512*log($val)/log(2)+0.5) : 0',
1639
- PrintConv => 'sprintf("%.1f",$val)',
1640
- PrintConvInv => '$val',
1641
- },
1642
- 0x206 => { #5
1643
- Name => 'MaxApertureAtMaxFocal',
1644
- Writable => 'int16u',
1645
- ValueConv => '$val ? sqrt(2)**($val/256) : 0',
1646
- ValueConvInv => '$val>0 ? int(512*log($val)/log(2)+0.5) : 0',
1647
- PrintConv => 'sprintf("%.1f",$val)',
1648
- PrintConvInv => '$val',
1649
- },
1650
- 0x207 => { #PH
1651
- Name => 'MinFocalLength',
1652
- Writable => 'int16u',
1653
- },
1654
- 0x208 => { #PH
1655
- Name => 'MaxFocalLength',
1656
- Writable => 'int16u',
1657
- },
1658
- 0x20a => { #9
1659
- Name => 'MaxAperture', # (at current focal length)
1660
- Writable => 'int16u',
1661
- ValueConv => '$val ? sqrt(2)**($val/256) : 0',
1662
- ValueConvInv => '$val>0 ? int(512*log($val)/log(2)+0.5) : 0',
1663
- PrintConv => 'sprintf("%.1f",$val)',
1664
- PrintConvInv => '$val',
1665
- },
1666
- 0x20b => { #11
1667
- Name => 'LensProperties',
1668
- Writable => 'int16u',
1669
- PrintConv => 'sprintf("0x%x",$val)',
1670
- PrintConvInv => '$val',
1671
- },
1672
- 0x301 => { #6
1673
- Name => 'Extender',
1674
- Writable => 'int8u',
1675
- Count => 6,
1676
- Notes => q{
1677
- 6 numbers: 0. Make, 1. Unknown, 2. Model, 3. Sub-model, 4-5. Unknown. Only
1678
- the Make and Model are used to determine the extender model
1679
- },
1680
- ValueConv => 'my @a = split(" ",$val); "$a[0] $a[2]"',
1681
- ValueConvInv => 'my @a=split(" ",$val); "$a[0] 0 $a[1] 0 0 0"',
1682
- PrintConv => {
1683
- '0 0' => 'None',
1684
- '0 4' => 'Olympus Zuiko Digital EC-14 1.4x Teleconverter',
1685
- '0 8' => 'Olympus EX-25 Extension Tube',
1686
- '0 16' => 'Olympus Zuiko Digital EC-20 2.0x Teleconverter', #7
1687
- },
1688
- },
1689
- 0x302 => { #4
1690
- Name => 'ExtenderSerialNumber',
1691
- Writable => 'string',
1692
- Count => 32,
1693
- },
1694
- 0x303 => { #9
1695
- Name => 'ExtenderModel',
1696
- Writable => 'string',
1697
- },
1698
- 0x304 => { #6
1699
- Name => 'ExtenderFirmwareVersion',
1700
- Writable => 'int32u',
1701
- PrintConv => '$val=sprintf("%x",$val);$val=~s/(.{3})$/\.$1/;$val',
1702
- PrintConvInv => '$val=sprintf("%.3f",$val);$val=~s/\.//;hex($val)',
1703
- },
1704
- 0x1000 => { #6
1705
- Name => 'FlashType',
1706
- Writable => 'int16u',
1707
- PrintConv => {
1708
- 0 => 'None',
1709
- 2 => 'Simple E-System',
1710
- 3 => 'E-System',
1711
- },
1712
- },
1713
- 0x1001 => { #6
1714
- Name => 'FlashModel',
1715
- Writable => 'int16u',
1716
- PrintConvColumns => 2,
1717
- PrintConv => {
1718
- 0 => 'None',
1719
- 1 => 'FL-20', # (or subtronic digital or Inon UW flash, ref 11)
1720
- 2 => 'FL-50', # (or Metzblitz+SCA or Cullmann 34, ref 11)
1721
- 3 => 'RF-11',
1722
- 4 => 'TF-22',
1723
- 5 => 'FL-36',
1724
- 6 => 'FL-50R', #11 (or Metz mecablitz digital)
1725
- 7 => 'FL-36R', #11
1726
- # have seen value of 9 - PH
1727
- },
1728
- },
1729
- 0x1002 => { #6
1730
- Name => 'FlashFirmwareVersion',
1731
- Writable => 'int32u',
1732
- PrintConv => '$val=sprintf("%x",$val);$val=~s/(.{3})$/\.$1/;$val',
1733
- PrintConvInv => '$val=sprintf("%.3f",$val);$val=~s/\.//;hex($val)',
1734
- },
1735
- 0x1003 => { #4
1736
- Name => 'FlashSerialNumber',
1737
- Writable => 'string',
1738
- Count => 32,
1739
- },
1740
- );
1741
-
1742
- # Olympus camera settings IFD
1743
- %Image::ExifTool::Olympus::CameraSettings = (
1744
- WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
1745
- CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
1746
- WRITABLE => 1,
1747
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
1748
- 0x000 => { #PH
1749
- Name => 'CameraSettingsVersion',
1750
- Writable => 'undef',
1751
- RawConv => '$val=~s/\0+$//; $val', # (may be null terminated)
1752
- Count => 4,
1753
- },
1754
- 0x100 => { #6
1755
- Name => 'PreviewImageValid',
1756
- Writable => 'int32u',
1757
- PrintConv => { 0 => 'No', 1 => 'Yes' },
1758
- },
1759
- 0x101 => { #PH
1760
- Name => 'PreviewImageStart',
1761
- Flags => 'IsOffset',
1762
- OffsetPair => 0x102,
1763
- DataTag => 'PreviewImage',
1764
- Writable => 'int32u',
1765
- Protected => 2,
1766
- },
1767
- 0x102 => { #PH
1768
- Name => 'PreviewImageLength',
1769
- OffsetPair => 0x101,
1770
- DataTag => 'PreviewImage',
1771
- Writable => 'int32u',
1772
- Protected => 2,
1773
- },
1774
- 0x200 => { #4
1775
- Name => 'ExposureMode',
1776
- Writable => 'int16u',
1777
- PrintConv => {
1778
- 1 => 'Manual',
1779
- 2 => 'Program', #6
1780
- 3 => 'Aperture-priority AE',
1781
- 4 => 'Shutter speed priority AE',
1782
- 5 => 'Program-shift', #6
1783
- }
1784
- },
1785
- 0x201 => { #6
1786
- Name => 'AELock',
1787
- Writable => 'int16u',
1788
- PrintConv => \%offOn,
1789
- },
1790
- 0x202 => { #PH/4
1791
- Name => 'MeteringMode',
1792
- Writable => 'int16u',
1793
- PrintConv => {
1794
- 2 => 'Center-weighted average',
1795
- 3 => 'Spot',
1796
- 5 => 'ESP',
1797
- 261 => 'Pattern+AF', #6
1798
- 515 => 'Spot+Highlight control', #6
1799
- 1027 => 'Spot+Shadow control', #6
1800
- },
1801
- },
1802
- 0x203 => { #11 (some E-models only)
1803
- Name => 'ExposureShift',
1804
- Writable => 'rational64s',
1805
- },
1806
- 0x300 => { #6
1807
- Name => 'MacroMode',
1808
- Writable => 'int16u',
1809
- PrintConv => {
1810
- 0 => 'Off',
1811
- 1 => 'On',
1812
- 2 => 'Super Macro', #11
1813
- },
1814
- },
1815
- 0x301 => { #6
1816
- Name => 'FocusMode',
1817
- Writable => 'int16u',
1818
- Count => -1,
1819
- Notes => '1 or 2 values',
1820
- PrintConv => [{
1821
- 0 => 'Single AF',
1822
- 1 => 'Sequential shooting AF',
1823
- 2 => 'Continuous AF',
1824
- 3 => 'Multi AF',
1825
- 5 => 'Face detect', #11
1826
- 10 => 'MF',
1827
- }, { BITMASK => { #11
1828
- 0 => 'S-AF',
1829
- 2 => 'C-AF',
1830
- 4 => 'MF',
1831
- 5 => 'Face detect',
1832
- 6 => 'Imager AF',
1833
- 8 => 'AF sensor',
1834
- }}],
1835
- },
1836
- 0x302 => { #6
1837
- Name => 'FocusProcess',
1838
- Writable => 'int16u',
1839
- Count => -1,
1840
- Notes => '1 or 2 values',
1841
- PrintConv => [{
1842
- 0 => 'AF Not Used',
1843
- 1 => 'AF Used',
1844
- }],
1845
- # 2nd value written only by some models (u1050SW, u9000, uT6000, uT6010,
1846
- # uT8000, E-30, E-420, E-450, E-520, E-620, E-P1 and E-P2): - PH
1847
- # observed values when "AF Not Used": 0, 16
1848
- # observed values when "AF Used": 64, 96(face detect on), 256
1849
- },
1850
- 0x303 => { #6
1851
- Name => 'AFSearch',
1852
- Writable => 'int16u',
1853
- PrintConv => {
1854
- 0 => 'Not Ready',
1855
- 1 => 'Ready',
1856
- },
1857
- },
1858
- 0x304 => { #PH/4
1859
- Name => 'AFAreas',
1860
- Notes => 'coordinates range from 0 to 255',
1861
- Writable => 'int32u',
1862
- Count => 64,
1863
- PrintConv => 'Image::ExifTool::Olympus::PrintAFAreas($val)',
1864
- },
1865
- 0x0305 => { #PH
1866
- Name => 'AFPointSelected',
1867
- Notes => 'coordinates expressed as a percent',
1868
- Writable => 'rational64s',
1869
- Count => 5,
1870
- ValueConv => '$val =~ s/\S* //; $val', # ignore first undefined value
1871
- ValueConvInv => '"undef $val"',
1872
- PrintConv => q{
1873
- return $val if $val =~ /undef/;
1874
- sprintf("(%d%%,%d%%) (%d%%,%d%%)", map {$_ * 100} split(" ",$val));
1875
- }
1876
- },
1877
- 0x306 => { #11
1878
- Name => 'AFFineTune',
1879
- Writable => 'int8u',
1880
- PrintConv => { 0 => 'Off', 1 => 'On' },
1881
- },
1882
- 0x307 => { #15
1883
- Name => 'AFFineTuneAdj',
1884
- Format => 'int16s',
1885
- Count => 3, # not sure what the 3 values mean
1886
- },
1887
- 0x400 => { #6
1888
- Name => 'FlashMode',
1889
- Writable => 'int16u',
1890
- PrintConv => {
1891
- 0 => 'Off',
1892
- BITMASK => {
1893
- 0 => 'On',
1894
- 1 => 'Fill-in',
1895
- 2 => 'Red-eye',
1896
- 3 => 'Slow-sync',
1897
- 4 => 'Forced On',
1898
- 5 => '2nd Curtain',
1899
- },
1900
- },
1901
- },
1902
- 0x401 => { #6
1903
- Name => 'FlashExposureComp',
1904
- Writable => 'rational64s',
1905
- },
1906
- # 0x402 - FlashMode? bit0=TTL, bit2=SuperFP (ref 11)
1907
- 0x403 => { #11
1908
- Name => 'FlashRemoteControl',
1909
- Writable => 'int16u',
1910
- PrintHex => 1,
1911
- PrintConvColumns => 2,
1912
- PrintConv => {
1913
- 0 => 'Off',
1914
- 0x01 => 'Channel 1, Low',
1915
- 0x02 => 'Channel 2, Low',
1916
- 0x03 => 'Channel 3, Low',
1917
- 0x04 => 'Channel 4, Low',
1918
- 0x09 => 'Channel 1, Mid',
1919
- 0x0a => 'Channel 2, Mid',
1920
- 0x0b => 'Channel 3, Mid',
1921
- 0x0c => 'Channel 4, Mid',
1922
- 0x11 => 'Channel 1, High',
1923
- 0x12 => 'Channel 2, High',
1924
- 0x13 => 'Channel 3, High',
1925
- 0x14 => 'Channel 4, High',
1926
- },
1927
- },
1928
- 0x404 => { #11
1929
- Name => 'FlashControlMode',
1930
- Writable => 'int16u',
1931
- Count => 3,
1932
- PrintConv => [{
1933
- 0 => 'Off',
1934
- 3 => 'TTL',
1935
- 4 => 'Auto',
1936
- 5 => 'Manual',
1937
- }],
1938
- },
1939
- 0x405 => { #11
1940
- Name => 'FlashIntensity',
1941
- Writable => 'rational64s',
1942
- Count => 3,
1943
- PrintConv => '$val eq "undef undef undef" ? "n/a" : $val',
1944
- PrintConvInv => '$val eq "n/a" ? "undef undef undef" : $val',
1945
- },
1946
- 0x406 => { #11
1947
- Name => 'ManualFlashStrength',
1948
- Writable => 'rational64s',
1949
- Count => 3,
1950
- PrintConv => '$val eq "undef undef undef" ? "n/a" : $val',
1951
- PrintConvInv => '$val eq "n/a" ? "undef undef undef" : $val',
1952
- },
1953
- 0x500 => { #6
1954
- Name => 'WhiteBalance2',
1955
- Writable => 'int16u',
1956
- PrintConv => {
1957
- 0 => 'Auto',
1958
- 16 => '7500K (Fine Weather with Shade)',
1959
- 17 => '6000K (Cloudy)',
1960
- 18 => '5300K (Fine Weather)',
1961
- 20 => '3000K (Tungsten light)',
1962
- 21 => '3600K (Tungsten light-like)',
1963
- 33 => '6600K (Daylight fluorescent)',
1964
- 34 => '4500K (Neutral white fluorescent)',
1965
- 35 => '4000K (Cool white fluorescent)',
1966
- 48 => '3600K (Tungsten light-like)',
1967
- 256 => 'Custom WB 1',
1968
- 257 => 'Custom WB 2',
1969
- 258 => 'Custom WB 3',
1970
- 259 => 'Custom WB 4',
1971
- 512 => 'Custom WB 5400K',
1972
- 513 => 'Custom WB 2900K',
1973
- 514 => 'Custom WB 8000K',
1974
- },
1975
- },
1976
- 0x501 => { #PH/4
1977
- Name => 'WhiteBalanceTemperature',
1978
- Writable => 'int16u',
1979
- PrintConv => '$val ? $val : "Auto"',
1980
- PrintConvInv => '$val=~/^\d+$/ ? $val : 0',
1981
- },
1982
- 0x502 => { #PH/4
1983
- Name => 'WhiteBalanceBracket',
1984
- Writable => 'int16s',
1985
- },
1986
- 0x503 => { #PH/4/6
1987
- Name => 'CustomSaturation',
1988
- Writable => 'int16s',
1989
- Count => 3,
1990
- Notes => '3 numbers: 1. CS Value, 2. Min, 3. Max',
1991
- PrintConv => q{
1992
- my ($a,$b,$c)=split ' ',$val;
1993
- if ($self->{Model} =~ /^E-1\b/) {
1994
- $a-=$b; $c-=$b;
1995
- return "CS$a (min CS0, max CS$c)";
1996
- } else {
1997
- return "$a (min $b, max $c)";
1998
- }
1999
- },
2000
- },
2001
- 0x504 => { #PH/4
2002
- Name => 'ModifiedSaturation',
2003
- Writable => 'int16u',
2004
- PrintConv => {
2005
- 0 => 'Off',
2006
- 1 => 'CM1 (Red Enhance)',
2007
- 2 => 'CM2 (Green Enhance)',
2008
- 3 => 'CM3 (Blue Enhance)',
2009
- 4 => 'CM4 (Skin Tones)',
2010
- },
2011
- },
2012
- 0x505 => { #PH/4
2013
- Name => 'ContrastSetting',
2014
- Writable => 'int16s',
2015
- Count => 3,
2016
- Notes => 'value, min, max',
2017
- PrintConv => 'my @v=split " ",$val; "$v[0] (min $v[1], max $v[2])"',
2018
- PrintConvInv => '$val=~tr/-0-9 //dc;$val',
2019
- },
2020
- 0x506 => { #PH/4
2021
- Name => 'SharpnessSetting',
2022
- Writable => 'int16s',
2023
- Count => 3,
2024
- Notes => 'value, min, max',
2025
- PrintConv => 'my @v=split " ",$val; "$v[0] (min $v[1], max $v[2])"',
2026
- PrintConvInv => '$val=~tr/-0-9 //dc;$val',
2027
- },
2028
- 0x507 => { #PH/4
2029
- Name => 'ColorSpace',
2030
- Writable => 'int16u',
2031
- PrintConv => { #6
2032
- 0 => 'sRGB',
2033
- 1 => 'Adobe RGB',
2034
- 2 => 'Pro Photo RGB',
2035
- },
2036
- },
2037
- 0x509 => { #6
2038
- Name => 'SceneMode',
2039
- Writable => 'int16u',
2040
- PrintConvColumns => 2,
2041
- PrintConv => {
2042
- 0 => 'Standard',
2043
- 6 => 'Auto', #6
2044
- 7 => 'Sport',
2045
- 8 => 'Portrait',
2046
- 9 => 'Landscape+Portrait',
2047
- 10 => 'Landscape',
2048
- 11 => 'Night Scene',
2049
- 12 => 'Self Portrait', #11
2050
- 13 => 'Panorama', #6
2051
- 14 => '2 in 1', #11
2052
- 15 => 'Movie', #11
2053
- 16 => 'Landscape+Portrait', #6
2054
- 17 => 'Night+Portrait',
2055
- 18 => 'Indoor', #11 (Party - PH)
2056
- 19 => 'Fireworks',
2057
- 20 => 'Sunset',
2058
- 21 => 'Beauty Skin', #PH
2059
- 22 => 'Macro',
2060
- 23 => 'Super Macro', #11
2061
- 24 => 'Food', #11
2062
- 25 => 'Documents',
2063
- 26 => 'Museum',
2064
- 27 => 'Shoot & Select', #11
2065
- 28 => 'Beach & Snow',
2066
- 29 => 'Self Protrait+Timer', #11
2067
- 30 => 'Candle',
2068
- 31 => 'Available Light', #11
2069
- 32 => 'Behind Glass', #11
2070
- 33 => 'My Mode', #11
2071
- 34 => 'Pet', #11
2072
- 35 => 'Underwater Wide1', #6
2073
- 36 => 'Underwater Macro', #6
2074
- 37 => 'Shoot & Select1', #11
2075
- 38 => 'Shoot & Select2', #11
2076
- 39 => 'High Key',
2077
- 40 => 'Digital Image Stabilization', #6
2078
- 41 => 'Auction', #11
2079
- 42 => 'Beach', #11
2080
- 43 => 'Snow', #11
2081
- 44 => 'Underwater Wide2', #6
2082
- 45 => 'Low Key', #6
2083
- 46 => 'Children', #6
2084
- 47 => 'Vivid', #11
2085
- 48 => 'Nature Macro', #6
2086
- 49 => 'Underwater Snapshot', #11
2087
- 50 => 'Shooting Guide', #11
2088
- 54 => 'Face Portrait', #11
2089
- 57 => 'Bulb', #11
2090
- 59 => 'Smile Shot', #11
2091
- 60 => 'Quick Shutter', #11
2092
- 63 => 'Slow Shutter', #11
2093
- 64 => 'Bird Watching', #11
2094
- 65 => 'Multiple Exposure', #11
2095
- 66 => 'e-Portrait', #11
2096
- 67 => 'Soft Background Shot', #11
2097
- 142 => 'Hand-held Starlight', #PH (SH-21)
2098
- },
2099
- },
2100
- 0x50a => { #PH/4/6
2101
- Name => 'NoiseReduction',
2102
- Writable => 'int16u',
2103
- PrintConv => {
2104
- BITMASK => {
2105
- 0 => 'Noise Reduction',
2106
- 1 => 'Noise Filter',
2107
- 2 => 'Noise Filter (ISO Boost)',
2108
- 3 => 'Auto', #11
2109
- },
2110
- },
2111
- },
2112
- 0x50b => { #6
2113
- Name => 'DistortionCorrection',
2114
- Writable => 'int16u',
2115
- PrintConv => \%offOn,
2116
- },
2117
- 0x50c => { #PH/4
2118
- Name => 'ShadingCompensation',
2119
- Writable => 'int16u',
2120
- PrintConv => \%offOn,
2121
- },
2122
- 0x50d => { #PH/4
2123
- Name => 'CompressionFactor',
2124
- Writable => 'rational64u',
2125
- },
2126
- 0x50f => { #6
2127
- Name => 'Gradation',
2128
- Writable => 'int16s',
2129
- Notes => '3 or 4 values',
2130
- Count => -1,
2131
- Relist => [ [0..2], 3 ], # join values 0-2 for PrintConv
2132
- PrintConv => [{
2133
- '0 0 0' => 'n/a', #PH (?)
2134
- '-1 -1 1' => 'Low Key',
2135
- '0 -1 1' => 'Normal',
2136
- '1 -1 1' => 'High Key',
2137
- },{
2138
- 0 => 'User-Selected',
2139
- 1 => 'Auto-Override',
2140
- }],
2141
- },
2142
- 0x520 => { #6
2143
- Name => 'PictureMode',
2144
- Writable => 'int16u',
2145
- Notes => '1 or 2 values',
2146
- Count => -1,
2147
- PrintConv => [{
2148
- 1 => 'Vivid',
2149
- 2 => 'Natural',
2150
- 3 => 'Muted',
2151
- 4 => 'Portrait',
2152
- 5 => 'i-Enhance', #11
2153
- 256 => 'Monotone',
2154
- 512 => 'Sepia',
2155
- }],
2156
- },
2157
- 0x521 => { #6
2158
- Name => 'PictureModeSaturation',
2159
- Writable => 'int16s',
2160
- Count => 3,
2161
- Notes => 'value, min, max',
2162
- PrintConv => 'my @v=split " ",$val; "$v[0] (min $v[1], max $v[2])"',
2163
- PrintConvInv => '$val=~tr/-0-9 //dc;$val',
2164
- },
2165
- 0x522 => { #6
2166
- Name => 'PictureModeHue',
2167
- Writable => 'int16s',
2168
- Unknown => 1, # (needs verification)
2169
- },
2170
- 0x523 => { #6
2171
- Name => 'PictureModeContrast',
2172
- Writable => 'int16s',
2173
- Count => 3,
2174
- Notes => 'value, min, max',
2175
- PrintConv => 'my @v=split " ",$val; "$v[0] (min $v[1], max $v[2])"',
2176
- PrintConvInv => '$val=~tr/-0-9 //dc;$val',
2177
- },
2178
- 0x524 => { #6
2179
- Name => 'PictureModeSharpness',
2180
- # verified as the Sharpness setting in the Picture Mode menu for the E-410
2181
- Writable => 'int16s',
2182
- Count => 3,
2183
- Notes => 'value, min, max',
2184
- PrintConv => 'my @v=split " ",$val; "$v[0] (min $v[1], max $v[2])"',
2185
- PrintConvInv => '$val=~tr/-0-9 //dc;$val',
2186
- },
2187
- 0x525 => { #6
2188
- Name => 'PictureModeBWFilter',
2189
- Writable => 'int16s',
2190
- PrintConvColumns => 2,
2191
- PrintConv => {
2192
- 0 => 'n/a',
2193
- 1 => 'Neutral',
2194
- 2 => 'Yellow',
2195
- 3 => 'Orange',
2196
- 4 => 'Red',
2197
- 5 => 'Green',
2198
- },
2199
- },
2200
- 0x526 => { #6
2201
- Name => 'PictureModeTone',
2202
- Writable => 'int16s',
2203
- PrintConvColumns => 2,
2204
- PrintConv => {
2205
- 0 => 'n/a',
2206
- 1 => 'Neutral',
2207
- 2 => 'Sepia',
2208
- 3 => 'Blue',
2209
- 4 => 'Purple',
2210
- 5 => 'Green',
2211
- },
2212
- },
2213
- 0x527 => { #12
2214
- Name => 'NoiseFilter',
2215
- Writable => 'int16s',
2216
- Count => 3,
2217
- PrintConv => {
2218
- '0 0 0' => 'n/a', #PH (?)
2219
- '-2 -2 1' => 'Off',
2220
- '-1 -2 1' => 'Low',
2221
- '0 -2 1' => 'Standard',
2222
- '1 -2 1' => 'High',
2223
- },
2224
- },
2225
- 0x529 => { #PH
2226
- Name => 'ArtFilter',
2227
- Writable => 'int16u',
2228
- Count => 4,
2229
- PrintConvColumns => 2,
2230
- PrintConv => [ \%filters ],
2231
- },
2232
- 0x52c => { #PH
2233
- Name => 'MagicFilter',
2234
- Writable => 'int16u',
2235
- Count => 4, # (2nd number is 0, 1280 or 1792, 3rd/4th are 0)
2236
- # (1792 observed for E-5 Gentle Sepia and XZ-1 Dramatic Tone)
2237
- PrintConvColumns => 2,
2238
- PrintConv => [ \%filters ],
2239
- },
2240
- 0x52d => { #11
2241
- Name => 'PictureModeEffect',
2242
- Writable => 'int16s',
2243
- Count => 3,
2244
- PrintConv => {
2245
- '0 0 0' => 'n/a', #PH (?)
2246
- '-1 -1 1' => 'Low',
2247
- '0 -1 1' => 'Standard',
2248
- '1 -1 1' => 'High',
2249
- },
2250
- },
2251
- 0x52f => { #PH
2252
- Name => 'ArtFilterEffect',
2253
- Writable => 'int16u',
2254
- Count => 20,
2255
- PrintHex => 1,
2256
- PrintConvColumns => 2,
2257
- PrintConv => [
2258
- \%filters, undef, undef, undef,
2259
- { # there are 5 available art filter effects for the E-PL3...
2260
- 0x0000 => 'No Effect',
2261
- 0x8010 => 'Star Light',
2262
- 0x8020 => 'Pin Hole',
2263
- 0x8030 => 'Frame',
2264
- 0x8040 => 'Soft Focus',
2265
- 0x8050 => 'White Edge',
2266
- },
2267
- ],
2268
- },
2269
- 0x600 => { #PH/4
2270
- Name => 'DriveMode',
2271
- Writable => 'int16u',
2272
- Count => -1,
2273
- Notes => '2 or 3 numbers: 1. Mode, 2. Shot number, 3. Mode bits',
2274
- PrintConv => q{
2275
- my ($a,$b,$c) = split ' ',$val;
2276
- return 'Single Shot' unless $a;
2277
- if ($a == 5 and defined $c) {
2278
- $a = DecodeBits($c, { #6
2279
- 0 => 'AE',
2280
- 1 => 'WB',
2281
- 2 => 'FL',
2282
- 3 => 'MF',
2283
- }) . ' Bracketing';
2284
- $a =~ s/, /+/g;
2285
- } else {
2286
- my %a = (
2287
- 1 => 'Continuous Shooting',
2288
- 2 => 'Exposure Bracketing',
2289
- 3 => 'White Balance Bracketing',
2290
- 4 => 'Exposure+WB Bracketing', #6
2291
- );
2292
- $a = $a{$a} || "Unknown ($a)";
2293
- }
2294
- return "$a, Shot $b";
2295
- },
2296
- },
2297
- 0x601 => { #6
2298
- Name => 'PanoramaMode',
2299
- Writable => 'int16u',
2300
- Notes => '2 numbers: 1. Mode, 2. Shot number',
2301
- PrintConv => q{
2302
- my ($a,$b) = split ' ',$val;
2303
- return 'Off' unless $a;
2304
- my %a = (
2305
- 1 => 'Left to Right',
2306
- 2 => 'Right to Left',
2307
- 3 => 'Bottom to Top',
2308
- 4 => 'Top to Bottom',
2309
- );
2310
- return ($a{$a} || "Unknown ($a)") . ', Shot ' . $b;
2311
- },
2312
- },
2313
- 0x603 => { #PH/4
2314
- Name => 'ImageQuality2',
2315
- Writable => 'int16u',
2316
- PrintConv => {
2317
- 1 => 'SQ',
2318
- 2 => 'HQ',
2319
- 3 => 'SHQ',
2320
- 4 => 'RAW',
2321
- 5 => 'SQ (5)', # (E-500)
2322
- },
2323
- },
2324
- 0x604 => { #PH
2325
- Name => 'ImageStabilization',
2326
- Writable => 'int32u',
2327
- DataMember => 'ImageStabilization',
2328
- RawConv => '$$self{ImageStabilization} = $val',
2329
- PrintConv => {
2330
- 0 => 'Off',
2331
- 1 => 'On, Mode 1',
2332
- 2 => 'On, Mode 2',
2333
- 3 => 'On, Mode 3',
2334
- },
2335
- },
2336
- 0x900 => { #11
2337
- Name => 'ManometerPressure',
2338
- Writable => 'int16u',
2339
- ValueConv => '$val / 10',
2340
- ValueConvInv => '$val * 10',
2341
- PrintConv => '"$val kPa"',
2342
- PrintConvInv => '$val=~s/ ?kPa//i; $val',
2343
- },
2344
- 0x901 => { #PH (u770SW)
2345
- # 2 numbers: 1st looks like meters above sea level, 2nd is usually 3x the 1st (feet?)
2346
- Name => 'ManometerReading',
2347
- Writable => 'int32s',
2348
- Count => 2,
2349
- ValueConv => 'my @a=split(" ",$val); $_ /= 10 foreach @a; "@a"',
2350
- ValueConvInv => 'my @a=split(" ",$val); $_ *= 10 foreach @a; "@a"',
2351
- PrintConv => '$val=~s/(\S+) (\S+)/$1 m, $2 ft/; $val',
2352
- PrintConvInv => '$val=~s/ ?(m|ft)//gi; $val',
2353
- },
2354
- 0x902 => { #11
2355
- Name => 'ExtendedWBDetect',
2356
- Writable => 'int16u',
2357
- PrintConv => \%offOn,
2358
- },
2359
- 0x903 => { #11
2360
- Name => 'LevelGaugeRoll',
2361
- Writable => 'int16u',
2362
- PrintConv => \%offOn,
2363
- },
2364
- 0x904 => { #11
2365
- Name => 'LevelGaugePitch',
2366
- Writable => 'int16u',
2367
- PrintConv => \%offOn,
2368
- },
2369
- );
2370
-
2371
- # Olympus RAW processing IFD (ref 6)
2372
- %Image::ExifTool::Olympus::RawDevelopment = (
2373
- WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
2374
- CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
2375
- WRITABLE => 1,
2376
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
2377
- 0x000 => { #PH
2378
- Name => 'RawDevVersion',
2379
- Writable => 'undef',
2380
- RawConv => '$val=~s/\0+$//; $val', # (may be null terminated)
2381
- Count => 4,
2382
- },
2383
- 0x100 => {
2384
- Name => 'RawDevExposureBiasValue',
2385
- Writable => 'rational64s',
2386
- },
2387
- 0x101 => {
2388
- Name => 'RawDevWhiteBalanceValue',
2389
- Writable => 'int16u',
2390
- },
2391
- 0x102 => {
2392
- Name => 'RawDevWBFineAdjustment',
2393
- Writable => 'int16s',
2394
- },
2395
- 0x103 => {
2396
- Name => 'RawDevGrayPoint',
2397
- Writable => 'int16u',
2398
- Count => 3,
2399
- },
2400
- 0x104 => {
2401
- Name => 'RawDevSaturationEmphasis',
2402
- Writable => 'int16s',
2403
- Count => 3,
2404
- },
2405
- 0x105 => {
2406
- Name => 'RawDevMemoryColorEmphasis',
2407
- Writable => 'int16u',
2408
- },
2409
- 0x106 => {
2410
- Name => 'RawDevContrastValue',
2411
- Writable => 'int16s',
2412
- Count => 3,
2413
- },
2414
- 0x107 => {
2415
- Name => 'RawDevSharpnessValue',
2416
- Writable => 'int16s',
2417
- Count => 3,
2418
- },
2419
- 0x108 => {
2420
- Name => 'RawDevColorSpace',
2421
- Writable => 'int16u',
2422
- PrintConv => { #11
2423
- 0 => 'sRGB',
2424
- 1 => 'Adobe RGB',
2425
- 2 => 'Pro Photo RGB',
2426
- },
2427
- },
2428
- 0x109 => {
2429
- Name => 'RawDevEngine',
2430
- Writable => 'int16u',
2431
- PrintConv => { #11
2432
- 0 => 'High Speed',
2433
- 1 => 'High Function',
2434
- 2 => 'Advanced High Speed',
2435
- 3 => 'Advanced High Function',
2436
- },
2437
- },
2438
- 0x10a => {
2439
- Name => 'RawDevNoiseReduction',
2440
- Writable => 'int16u',
2441
- PrintConv => { #11
2442
- BITMASK => {
2443
- 0 => 'Noise Reduction',
2444
- 1 => 'Noise Filter',
2445
- 2 => 'Noise Filter (ISO Boost)',
2446
- },
2447
- },
2448
- },
2449
- 0x10b => {
2450
- Name => 'RawDevEditStatus',
2451
- Writable => 'int16u',
2452
- PrintConv => { #11
2453
- 0 => 'Original',
2454
- 1 => 'Edited (Landscape)',
2455
- 6 => 'Edited (Portrait)',
2456
- 8 => 'Edited (Portrait)',
2457
- },
2458
- },
2459
- 0x10c => {
2460
- Name => 'RawDevSettings',
2461
- Writable => 'int16u',
2462
- PrintConv => { #11
2463
- BITMASK => {
2464
- 0 => 'WB Color Temp',
2465
- 1 => 'WB Gray Point',
2466
- 2 => 'Saturation',
2467
- 3 => 'Contrast',
2468
- 4 => 'Sharpness',
2469
- 5 => 'Color Space',
2470
- 6 => 'High Function',
2471
- 7 => 'Noise Reduction',
2472
- },
2473
- },
2474
- },
2475
- );
2476
-
2477
- # Olympus RAW processing B IFD (ref 11)
2478
- %Image::ExifTool::Olympus::RawDevelopment2 = (
2479
- WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
2480
- CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
2481
- WRITABLE => 1,
2482
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
2483
- 0x000 => {
2484
- Name => 'RawDevVersion',
2485
- Writable => 'undef',
2486
- RawConv => '$val=~s/\0+$//; $val', # (may be null terminated)
2487
- Count => 4,
2488
- },
2489
- 0x100 => {
2490
- Name => 'RawDevExposureBiasValue',
2491
- Writable => 'rational64s',
2492
- },
2493
- 0x101 => {
2494
- Name => 'RawDevWhiteBalance',
2495
- Writable => 'int16u',
2496
- PrintConv => {
2497
- 1 => 'Color Temperature',
2498
- 2 => 'Gray Point',
2499
- },
2500
- },
2501
- 0x102 => {
2502
- Name => 'RawDevWhiteBalanceValue',
2503
- Writable => 'int16u',
2504
- },
2505
- 0x103 => {
2506
- Name => 'RawDevWBFineAdjustment',
2507
- Writable => 'int16s',
2508
- },
2509
- 0x104 => {
2510
- Name => 'RawDevGrayPoint',
2511
- Writable => 'int16u',
2512
- Count => 3,
2513
- },
2514
- 0x105 => {
2515
- Name => 'RawDevContrastValue',
2516
- Writable => 'int16s',
2517
- Count => 3,
2518
- },
2519
- 0x106 => {
2520
- Name => 'RawDevSharpnessValue',
2521
- Writable => 'int16s',
2522
- Count => 3,
2523
- },
2524
- 0x107 => {
2525
- Name => 'RawDevSaturationEmphasis',
2526
- Writable => 'int16s',
2527
- Count => 3,
2528
- },
2529
- 0x108 => {
2530
- Name => 'RawDevMemoryColorEmphasis',
2531
- Writable => 'int16u',
2532
- },
2533
- 0x109 => {
2534
- Name => 'RawDevColorSpace',
2535
- Writable => 'int16u',
2536
- PrintConv => {
2537
- 0 => 'sRGB',
2538
- 1 => 'Adobe RGB',
2539
- 2 => 'Pro Photo RGB',
2540
- },
2541
- },
2542
- 0x10a => {
2543
- Name => 'RawDevNoiseReduction',
2544
- Writable => 'int16u',
2545
- PrintConv => {
2546
- BITMASK => {
2547
- 0 => 'Noise Reduction',
2548
- 1 => 'Noise Filter',
2549
- 2 => 'Noise Filter (ISO Boost)',
2550
- },
2551
- },
2552
- },
2553
- 0x10b => {
2554
- Name => 'RawDevEngine',
2555
- Writable => 'int16u',
2556
- PrintConv => {
2557
- 0 => 'High Speed',
2558
- 1 => 'High Function',
2559
- },
2560
- },
2561
- 0x10c => {
2562
- Name => 'RawDevPictureMode',
2563
- Writable => 'int16u',
2564
- PrintConv => {
2565
- 1 => 'Vivid',
2566
- 2 => 'Natural',
2567
- 3 => 'Muted',
2568
- 256 => 'Monotone',
2569
- 512 => 'Sepia',
2570
- },
2571
- },
2572
- 0x10d => {
2573
- Name => 'RawDevPMSaturation',
2574
- Writable => 'int16s',
2575
- Count => 3,
2576
- },
2577
- 0x10e => {
2578
- Name => 'RawDevPMContrast',
2579
- Writable => 'int16s',
2580
- Count => 3,
2581
- },
2582
- 0x10f => {
2583
- Name => 'RawDevPMSharpness',
2584
- Writable => 'int16s',
2585
- Count => 3,
2586
- },
2587
- 0x110 => {
2588
- Name => 'RawDevPM_BWFilter',
2589
- Writable => 'int16u',
2590
- PrintConv => {
2591
- 1 => 'Neutral',
2592
- 2 => 'Yellow',
2593
- 3 => 'Orange',
2594
- 4 => 'Red',
2595
- 5 => 'Green',
2596
- },
2597
- },
2598
- 0x111 => {
2599
- Name => 'RawDevPMPictureTone',
2600
- Writable => 'int16u',
2601
- PrintConv => {
2602
- 1 => 'Neutral',
2603
- 2 => 'Sepia',
2604
- 3 => 'Blue',
2605
- 4 => 'Purple',
2606
- 5 => 'Green',
2607
- },
2608
- },
2609
- 0x112 => {
2610
- Name => 'RawDevGradation',
2611
- Writable => 'int16s',
2612
- Count => 3,
2613
- },
2614
- 0x113 => {
2615
- Name => 'RawDevSaturation3',
2616
- Writable => 'int16s',
2617
- Count => 3, #(NC)
2618
- },
2619
- 0x119 => {
2620
- Name => 'RawDevAutoGradation',
2621
- Writable => 'int16u', #(NC)
2622
- PrintConv => \%offOn,
2623
- },
2624
- 0x120 => {
2625
- Name => 'RawDevPMNoiseFilter',
2626
- Writable => 'int16u', #(NC)
2627
- },
2628
- );
2629
-
2630
- # Olympus Image processing IFD
2631
- %Image::ExifTool::Olympus::ImageProcessing = (
2632
- WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
2633
- CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
2634
- WRITABLE => 1,
2635
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
2636
- 0x000 => { #PH
2637
- Name => 'ImageProcessingVersion',
2638
- Writable => 'undef',
2639
- RawConv => '$val=~s/\0+$//; $val', # (may be null terminated)
2640
- Count => 4,
2641
- },
2642
- 0x100 => { #6
2643
- Name => 'WB_RBLevels',
2644
- Writable => 'int16u',
2645
- Count => 2,
2646
- },
2647
- 0x102 => { #11
2648
- Name => 'WB_RBLevels3000K',
2649
- Writable => 'int16u',
2650
- Count => 2,
2651
- },
2652
- 0x103 => { #11
2653
- Name => 'WB_RBLevels3300K',
2654
- Writable => 'int16u',
2655
- Count => 2,
2656
- },
2657
- 0x104 => { #11
2658
- Name => 'WB_RBLevels3600K',
2659
- Writable => 'int16u',
2660
- Count => 2,
2661
- },
2662
- 0x105 => { #11
2663
- Name => 'WB_RBLevels3900K',
2664
- Writable => 'int16u',
2665
- Count => 2,
2666
- },
2667
- 0x106 => { #11
2668
- Name => 'WB_RBLevels4000K',
2669
- Writable => 'int16u',
2670
- Count => 2,
2671
- },
2672
- 0x107 => { #11
2673
- Name => 'WB_RBLevels4300K',
2674
- Writable => 'int16u',
2675
- Count => 2,
2676
- },
2677
- 0x108 => { #11
2678
- Name => 'WB_RBLevels4500K',
2679
- Writable => 'int16u',
2680
- Count => 2,
2681
- },
2682
- 0x109 => { #11
2683
- Name => 'WB_RBLevels4800K',
2684
- Writable => 'int16u',
2685
- Count => 2,
2686
- },
2687
- 0x10a => { #11
2688
- Name => 'WB_RBLevels5300K',
2689
- Writable => 'int16u',
2690
- Count => 2,
2691
- },
2692
- 0x10b => { #11
2693
- Name => 'WB_RBLevels6000K',
2694
- Writable => 'int16u',
2695
- Count => 2,
2696
- },
2697
- 0x10c => { #11
2698
- Name => 'WB_RBLevels6600K',
2699
- Writable => 'int16u',
2700
- Count => 2,
2701
- },
2702
- 0x10d => { #11
2703
- Name => 'WB_RBLevels7500K',
2704
- Writable => 'int16u',
2705
- Count => 2,
2706
- },
2707
- 0x10e => { #11
2708
- Name => 'WB_RBLevelsCWB1',
2709
- Writable => 'int16u',
2710
- Count => 2,
2711
- },
2712
- 0x10f => { #11
2713
- Name => 'WB_RBLevelsCWB2',
2714
- Writable => 'int16u',
2715
- Count => 2,
2716
- },
2717
- 0x110 => { #11
2718
- Name => 'WB_RBLevelsCWB3',
2719
- Writable => 'int16u',
2720
- Count => 2,
2721
- },
2722
- 0x111 => { #11
2723
- Name => 'WB_RBLevelsCWB4',
2724
- Writable => 'int16u',
2725
- Count => 2,
2726
- },
2727
- 0x113 => { #11
2728
- Name => 'WB_GLevel3000K',
2729
- Writable => 'int16u',
2730
- },
2731
- 0x114 => { #11
2732
- Name => 'WB_GLevel3300K',
2733
- Writable => 'int16u',
2734
- },
2735
- 0x115 => { #11
2736
- Name => 'WB_GLevel3600K',
2737
- Writable => 'int16u',
2738
- },
2739
- 0x116 => { #11
2740
- Name => 'WB_GLevel3900K',
2741
- Writable => 'int16u',
2742
- },
2743
- 0x117 => { #11
2744
- Name => 'WB_GLevel4000K',
2745
- Writable => 'int16u',
2746
- },
2747
- 0x118 => { #11
2748
- Name => 'WB_GLevel4300K',
2749
- Writable => 'int16u',
2750
- },
2751
- 0x119 => { #11
2752
- Name => 'WB_GLevel4500K',
2753
- Writable => 'int16u',
2754
- },
2755
- 0x11a => { #11
2756
- Name => 'WB_GLevel4800K',
2757
- Writable => 'int16u',
2758
- },
2759
- 0x11b => { #11
2760
- Name => 'WB_GLevel5300K',
2761
- Writable => 'int16u',
2762
- },
2763
- 0x11c => { #11
2764
- Name => 'WB_GLevel6000K',
2765
- Writable => 'int16u',
2766
- },
2767
- 0x11d => { #11
2768
- Name => 'WB_GLevel6600K',
2769
- Writable => 'int16u',
2770
- },
2771
- 0x11e => { #11
2772
- Name => 'WB_GLevel7500K',
2773
- Writable => 'int16u',
2774
- },
2775
- 0x11f => { #11
2776
- Name => 'WB_GLevel',
2777
- Writable => 'int16u',
2778
- },
2779
- 0x200 => { #6
2780
- Name => 'ColorMatrix',
2781
- Writable => 'int16u',
2782
- Format => 'int16s',
2783
- Count => 9,
2784
- },
2785
- # color matrices (ref 11):
2786
- # 0x0201-0x020d are sRGB color matrices
2787
- # 0x020e-0x021a are Adobe RGB color matrices
2788
- # 0x021b-0x0227 are ProPhoto RGB color matrices
2789
- # 0x0228 and 0x0229 are ColorMatrix for E-330
2790
- # 0x0250-0x0252 are sRGB color matrices
2791
- # 0x0253-0x0255 are Adobe RGB color matrices
2792
- # 0x0256-0x0258 are ProPhoto RGB color matrices
2793
- 0x300 => { #11
2794
- Name => 'Enhancer',
2795
- Writable => 'int16u',
2796
- },
2797
- 0x301 => { #11
2798
- Name => 'EnhancerValues',
2799
- Writable => 'int16u',
2800
- Count => 7,
2801
- },
2802
- 0x310 => { #11
2803
- Name => 'CoringFilter',
2804
- Writable => 'int16u',
2805
- },
2806
- 0x0311 => { #11
2807
- Name => 'CoringValues',
2808
- Writable => 'int16u',
2809
- Count => 7,
2810
- },
2811
- 0x600 => { #11
2812
- Name => 'BlackLevel2',
2813
- Writable => 'int16u',
2814
- Count => 4,
2815
- },
2816
- 0x610 => { #11
2817
- Name => 'GainBase',
2818
- Writable => 'int16u',
2819
- },
2820
- 0x611 => { #4/6
2821
- Name => 'ValidBits',
2822
- Writable => 'int16u',
2823
- Count => 2,
2824
- },
2825
- 0x612 => { #11
2826
- Name => 'CropLeft',
2827
- Writable => 'int16u',
2828
- Count => 2,
2829
- },
2830
- 0x613 => { #11
2831
- Name => 'CropTop',
2832
- Writable => 'int16u',
2833
- Count => 2,
2834
- },
2835
- 0x614 => { #PH/11
2836
- Name => 'CropWidth',
2837
- Writable => 'int32u',
2838
- },
2839
- 0x615 => { #PH/11
2840
- Name => 'CropHeight',
2841
- Writable => 'int32u',
2842
- },
2843
- # 0x800 LensDistortionParams, float[9] (ref 11)
2844
- # 0x801 LensShadingParams, int16u[16] (ref 11)
2845
- # 0x1010-0x1012 are the processing options used in camera or in
2846
- # Olympus software, which 0x050a-0x050c are in-camera only (ref 6)
2847
- 0x1010 => { #PH/4
2848
- Name => 'NoiseReduction2',
2849
- Writable => 'int16u',
2850
- PrintConv => {
2851
- BITMASK => {
2852
- 0 => 'Noise Reduction',
2853
- 1 => 'Noise Filter',
2854
- 2 => 'Noise Filter (ISO Boost)',
2855
- },
2856
- },
2857
- },
2858
- 0x1011 => { #6
2859
- Name => 'DistortionCorrection2',
2860
- Writable => 'int16u',
2861
- PrintConv => \%offOn,
2862
- },
2863
- 0x1012 => { #PH/4
2864
- Name => 'ShadingCompensation2',
2865
- Writable => 'int16u',
2866
- PrintConv => \%offOn,
2867
- },
2868
- 0x101c => { #11
2869
- Name => 'MultipleExposureMode',
2870
- Writable => 'int16u',
2871
- Count => 2,
2872
- PrintConv => [{
2873
- 0 => 'Off',
2874
- 2 => 'On (2 frames)',
2875
- 3 => 'On (3 frames)',
2876
- }],
2877
- },
2878
- 0x1103 => { #PH
2879
- Name => 'UnknownBlock',
2880
- Writable => 'undef',
2881
- Notes => 'unknown 142kB block in ORF images, not copied to JPEG images',
2882
- # 'Drop' because too large for APP1 in JPEG images
2883
- Flags => [ 'Unknown', 'Binary', 'Drop' ],
2884
- },
2885
- 0x1112 => { #11
2886
- Name => 'AspectRatio',
2887
- Writable => 'int8u',
2888
- Count => 2,
2889
- PrintConv => {
2890
- '1 1' => '4:3',
2891
- '2 2' => '3:2',
2892
- '3 3' => '16:9',
2893
- '4 4' => '6:6',
2894
- '5 5' => '5:4',
2895
- '6 6' => '7:6',
2896
- '7 7' => '6:5',
2897
- '8 8' => '7:5',
2898
- '9 9' => '3:4',
2899
- },
2900
- },
2901
- 0x1113 => { #11
2902
- Name => 'AspectFrame',
2903
- Writable => 'int16u',
2904
- Count => 4,
2905
- },
2906
- 0x1200 => { #11/PH
2907
- Name => 'FacesDetected',
2908
- Writable => 'int32u',
2909
- Count => -1,
2910
- Notes => '2 or 3 values',
2911
- },
2912
- 0x1201 => { #11/PH
2913
- Name => 'FaceDetectArea',
2914
- Writable => 'int16s',
2915
- Count => -1, # (varies with model)
2916
- Binary => 1, # (too long)
2917
- Notes => q{
2918
- for models with 2 values in FacesDetected this gives X/Y coordinates in the
2919
- FaceDetectFrame for all 4 corners of the face rectangle. For models with 3
2920
- values in FacesDetected this gives X/Y coordinates, size and rotation angle
2921
- of the face detect square
2922
- },
2923
- },
2924
- 0x1202 => { #PH
2925
- Name => 'MaxFaces',
2926
- Writable => 'int32u',
2927
- Count => 3,
2928
- },
2929
- 0x1203 => { #PH
2930
- Name => 'FaceDetectFrameSize',
2931
- Writable => 'int16u',
2932
- Count => 6,
2933
- Notes => 'width/height of the full face detect frame',
2934
- },
2935
- 0x1207 => { #PH
2936
- Name => 'FaceDetectFrameCrop',
2937
- Writable => 'int16s',
2938
- Count => 12,
2939
- Notes => 'X/Y offset and width/height of the cropped face detect frame',
2940
- },
2941
- );
2942
-
2943
- # Olympus Focus Info IFD
2944
- %Image::ExifTool::Olympus::FocusInfo = (
2945
- WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
2946
- CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
2947
- WRITABLE => 1,
2948
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
2949
- 0x000 => { #PH
2950
- Name => 'FocusInfoVersion',
2951
- Writable => 'undef',
2952
- RawConv => '$val=~s/\0+$//; $val', # (may be null terminated)
2953
- Count => 4,
2954
- },
2955
- 0x209 => { #PH/4
2956
- Name => 'AutoFocus',
2957
- Writable => 'int16u',
2958
- PrintConv => \%offOn,
2959
- Unknown => 1, #6
2960
- },
2961
- 0x210 => { #11
2962
- Name => 'SceneDetect',
2963
- Writable => 'int16u',
2964
- },
2965
- 0x211 => { #11
2966
- Name => 'SceneArea',
2967
- Writable => 'int32u',
2968
- Count => 8,
2969
- Unknown => 1, # (numbers don't make much sense?)
2970
- },
2971
- 0x212 => { #11
2972
- Name => 'SceneDetectData',
2973
- Writable => 'int32u',
2974
- Count => 720,
2975
- Binary => 1,
2976
- Unknown => 1, # (but what does it mean?)
2977
- },
2978
- 0x300 => { #6
2979
- Name => 'ZoomStepCount',
2980
- Writable => 'int16u',
2981
- },
2982
- 0x301 => { #11
2983
- Name => 'FocusStepCount',
2984
- Writable => 'int16u',
2985
- },
2986
- 0x303 => { #11
2987
- Name => 'FocusStepInfinity',
2988
- Writable => 'int16u',
2989
- },
2990
- 0x304 => { #11
2991
- Name => 'FocusStepNear',
2992
- Writable => 'int16u',
2993
- },
2994
- 0x305 => { #4
2995
- Name => 'FocusDistance',
2996
- Writable => 'rational64u',
2997
- # this rational value looks like it is in mm when the denominator is
2998
- # 1 (E-1), and cm when denominator is 10 (E-300), so if we ignore the
2999
- # denominator we are consistently in mm - PH
3000
- Format => 'int32u',
3001
- Count => 2,
3002
- ValueConv => q{
3003
- my ($a,$b) = split ' ',$val;
3004
- return 0 if $a == 0xffffffff;
3005
- return $a / 1000;
3006
- },
3007
- ValueConvInv => q{
3008
- return '4294967295 1' unless $val;
3009
- $val = int($val * 1000 + 0.5);
3010
- return "$val 1";
3011
- },
3012
- PrintConv => '$val ? "$val m" : "inf"',
3013
- PrintConvInv => '$val eq "inf" ? 0 : $val=~s/\s*m$//, $val',
3014
- },
3015
- 0x308 => [ # NEED A BETTER WAY TO DETERMINE WHICH MODELS USE WHICH ENCODING!
3016
- {
3017
- Name => 'AFPoint',
3018
- Condition => '$$self{Model} =~ /E-(3|5|30)\b/',
3019
- Writable => 'int16u',
3020
- PrintHex => 1,
3021
- # decoded by ref 6
3022
- Notes => q{
3023
- for the E-3, E-5 and E-30 the value is separated into 2 parts: low 5 bits
3024
- give AF point, upper bits give AF target selection mode
3025
- },
3026
- ValueConv => '($val & 0x1f) . " " . ($val & 0xffe0)',
3027
- ValueConvInv => 'my @v=split(" ",$val); @v == 2 ? $v[0] + $v[1] : $val',
3028
- PrintConvColumns => 2,
3029
- PrintConv => [
3030
- {
3031
- 0x00 => '(none)',
3032
- 0x01 => 'Top-left (horizontal)',
3033
- 0x02 => 'Top-center (horizontal)',
3034
- 0x03 => 'Top-right (horizontal)',
3035
- 0x04 => 'Left (horizontal)',
3036
- 0x05 => 'Mid-left (horizontal)',
3037
- 0x06 => 'Center (horizontal)',
3038
- 0x07 => 'Mid-right (horizontal)',
3039
- 0x08 => 'Right (horizontal)',
3040
- 0x09 => 'Bottom-left (horizontal)',
3041
- 0x0a => 'Bottom-center (horizontal)',
3042
- 0x0b => 'Bottom-right (horizontal)',
3043
- 0x0c => 'Top-left (vertical)',
3044
- 0x0d => 'Top-center (vertical)',
3045
- 0x0e => 'Top-right (vertical)',
3046
- 0x0f => 'Left (vertical)',
3047
- 0x10 => 'Mid-left (vertical)',
3048
- 0x11 => 'Center (vertical)',
3049
- 0x12 => 'Mid-right (vertical)',
3050
- 0x13 => 'Right (vertical)',
3051
- 0x14 => 'Bottom-left (vertical)',
3052
- 0x15 => 'Bottom-center (vertical)',
3053
- 0x16 => 'Bottom-right (vertical)',
3054
- },
3055
- {
3056
- 0x00 => 'Single Target',
3057
- 0x40 => 'All Target',
3058
- 0x80 => 'Dynamic Single Target',
3059
- }
3060
- ],
3061
- },{ #PH (models with 7-point AF)
3062
- Name => 'AFPoint',
3063
- Condition => '$$self{Model} =~ /E-(520|600|620)\b/',
3064
- Notes => 'models with 7-point AF',
3065
- Writable => 'int16u',
3066
- PrintHex => 1,
3067
- ValueConv => '($val & 0x1f) . " " . ($val & 0xffe0)',
3068
- ValueConvInv => 'my @v=split(" ",$val); @v == 2 ? $v[0] + $v[1] : $val',
3069
- PrintConv => [
3070
- {
3071
- 0x00 => '(none)',
3072
- 0x01 => 'Center',
3073
- # need to fill this in...
3074
- },
3075
- {
3076
- 0x00 => 'Single Target',
3077
- 0x40 => 'All Target', # (guess)
3078
- },
3079
- ]
3080
- },{ #11
3081
- Name => 'AFPoint',
3082
- Writable => 'int16u',
3083
- Notes => 'other models',
3084
- RawConv => '($val or $$self{Model} ne "E-P1") ? $val : undef',
3085
- PrintConv => {
3086
- # (E-P1 always writes 0, maybe other models do too - PH)
3087
- 0 => 'Left (or n/a)',
3088
- 1 => 'Center (horizontal)', #6 (E-510)
3089
- 2 => 'Right',
3090
- 3 => 'Center (vertical)', #6 (E-510)
3091
- 255 => 'None',
3092
- },
3093
- }
3094
- ],
3095
- # 0x31a Continuous AF parameters?
3096
- # 0x328 Related to AF (maybe Imager AF data?) (ref PH, E-PL1):
3097
- # - offset 0x2a (int8u) ImagerAFMode? 0=Manual, 1=Auto
3098
- # - offset 0x30 (int16u) AFAreaXPosition
3099
- # - offset 0x32 (int16u) AFAreaWidth (202)
3100
- # - offset 0x34 (int16u) AFAreaYPosition
3101
- # - offset 0x36 (int16u) AFAreaHeight (50)
3102
- # (AF area positions above give the top-left coordinates of the AF area in the
3103
- # AF frame. Increasing Y is downwards, and the AF frame size is about 1280x256)
3104
- # 0x1200-0x1209 Flash information:
3105
- 0x1201 => { #6
3106
- Name => 'ExternalFlash',
3107
- Writable => 'int16u',
3108
- Count => 2,
3109
- PrintConv => {
3110
- '0 0' => 'Off',
3111
- '1 0' => 'On',
3112
- },
3113
- },
3114
- 0x1203 => { #11
3115
- Name => 'ExternalFlashGuideNumber',
3116
- Writable => 'rational64s',
3117
- Unknown => 1, # (needs verification)
3118
- },
3119
- 0x1204 => { #11(reversed)/7
3120
- Name => 'ExternalFlashBounce',
3121
- Writable => 'int16u',
3122
- PrintConv => {
3123
- 0 => 'Bounce or Off',
3124
- 1 => 'Direct',
3125
- },
3126
- },
3127
- 0x1205 => { #11 (ref converts to mm using table)
3128
- Name => 'ExternalFlashZoom',
3129
- Writable => 'rational64u',
3130
- },
3131
- 0x1208 => { #6
3132
- Name => 'InternalFlash',
3133
- Writable => 'int16u',
3134
- Count => -1,
3135
- PrintConv => {
3136
- '0' => 'Off',
3137
- '1' => 'On',
3138
- '0 0' => 'Off',
3139
- '1 0' => 'On',
3140
- },
3141
- },
3142
- 0x1209 => { #6
3143
- Name => 'ManualFlash',
3144
- Writable => 'int16u',
3145
- Count => 2,
3146
- Notes => '2 numbers: 1. 0=Off, 1=On, 2. Flash strength',
3147
- PrintConv => q{
3148
- my ($a,$b) = split ' ',$val;
3149
- return 'Off' unless $a;
3150
- $b = ($b == 1) ? 'Full' : "1/$b";
3151
- return "On ($b strength)";
3152
- },
3153
- },
3154
- 0x120a => { #PH
3155
- Name => 'MacroLED',
3156
- Writable => 'int16u',
3157
- PrintConv => \%offOn,
3158
- },
3159
- 0x1500 => { #6
3160
- Name => 'SensorTemperature',
3161
- Writable => 'int16s',
3162
- Notes => q{
3163
- approximately Celsius for E-1, unknown calibration for E-3/410/420/510, and
3164
- always zero for E-300/330/400/500, divide by 10 for E-P1?
3165
- },
3166
- },
3167
- 0x1600 => { # ref http://fourthirdsphoto.com/vbb/showpost.php?p=107607&postcount=15
3168
- Name => 'ImageStabilization',
3169
- # (the other value is more reliable, so ignore this totally if the other exists)
3170
- Condition => 'not defined $$self{ImageStabilization}',
3171
- Writable => 'undef',
3172
- # if the first 4 bytes are non-zero, then bit 0x01 of byte 44
3173
- # gives the stabilization mode
3174
- PrintConv => q{
3175
- $val =~ /^\0{4}/ ? 'Off' : 'On, ' .
3176
- (unpack('x44C',$val) & 0x01 ? 'Mode 1' : 'Mode 2')
3177
- },
3178
- },
3179
- # 0x102a same as Subdir4-0x300
3180
- );
3181
-
3182
- # Olympus raw information tags (ref 6)
3183
- %Image::ExifTool::Olympus::RawInfo = (
3184
- WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
3185
- CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
3186
- NOTES => 'These tags are found only in ORF images of some models (ie. C8080WZ).',
3187
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3188
- 0x000 => {
3189
- Name => 'RawInfoVersion',
3190
- Writable => 'undef',
3191
- RawConv => '$val=~s/\0+$//; $val', # (may be null terminated)
3192
- Count => 4,
3193
- },
3194
- 0x100 => {
3195
- Name => 'WB_RBLevelsUsed',
3196
- Writable => 'int16u',
3197
- Count => 2,
3198
- },
3199
- 0x110 => {
3200
- Name => 'WB_RBLevelsAuto',
3201
- Writable => 'int16u',
3202
- Count => 2,
3203
- },
3204
- 0x120 => {
3205
- Name => 'WB_RBLevelsShade',
3206
- Writable => 'int16u',
3207
- Count => 2,
3208
- },
3209
- 0x121 => {
3210
- Name => 'WB_RBLevelsCloudy',
3211
- Writable => 'int16u',
3212
- Count => 2,
3213
- },
3214
- 0x122 => {
3215
- Name => 'WB_RBLevelsFineWeather',
3216
- Writable => 'int16u',
3217
- Count => 2,
3218
- },
3219
- 0x123 => {
3220
- Name => 'WB_RBLevelsTungsten',
3221
- Writable => 'int16u',
3222
- Count => 2,
3223
- },
3224
- 0x124 => {
3225
- Name => 'WB_RBLevelsEveningSunlight',
3226
- Writable => 'int16u',
3227
- Count => 2,
3228
- },
3229
- 0x130 => {
3230
- Name => 'WB_RBLevelsDaylightFluor',
3231
- Writable => 'int16u',
3232
- Count => 2,
3233
- },
3234
- 0x131 => {
3235
- Name => 'WB_RBLevelsDayWhiteFluor',
3236
- Writable => 'int16u',
3237
- Count => 2,
3238
- },
3239
- 0x132 => {
3240
- Name => 'WB_RBLevelsCoolWhiteFluor',
3241
- Writable => 'int16u',
3242
- Count => 2,
3243
- },
3244
- 0x133 => {
3245
- Name => 'WB_RBLevelsWhiteFluorescent',
3246
- Writable => 'int16u',
3247
- Count => 2,
3248
- },
3249
- 0x200 => {
3250
- Name => 'ColorMatrix2',
3251
- Format => 'int16s',
3252
- Writable => 'int16u',
3253
- Count => 9,
3254
- },
3255
- # 0x240 => 'ColorMatrixDefault', ?
3256
- # 0x250 => 'ColorMatrixSaturation', ?
3257
- # 0x251 => 'ColorMatrixHue', ?
3258
- # 0x252 => 'ColorMatrixContrast', ?
3259
- # 0x300 => sharpness-related
3260
- # 0x301 => list of sharpness-related values
3261
- 0x310 => {
3262
- Name => 'CoringFilter',
3263
- Writable => 'int16u',
3264
- },
3265
- 0x311 => {
3266
- Name => 'CoringValues',
3267
- Writable => 'int16u',
3268
- Count => 11,
3269
- },
3270
- 0x600 => {
3271
- Name => 'BlackLevel2',
3272
- Writable => 'int16u',
3273
- Count => 4,
3274
- },
3275
- 0x601 => {
3276
- Name => 'YCbCrCoefficients',
3277
- Notes => 'stored as int16u[6], but extracted as rational32u[3]',
3278
- Format => 'rational32u',
3279
- },
3280
- 0x611 => {
3281
- Name => 'ValidPixelDepth',
3282
- Writable => 'int16u',
3283
- Count => 2,
3284
- },
3285
- 0x612 => { #11
3286
- Name => 'CropLeft',
3287
- Writable => 'int16u',
3288
- },
3289
- 0x613 => { #11
3290
- Name => 'CropTop',
3291
- Writable => 'int16u',
3292
- },
3293
- 0x614 => {
3294
- Name => 'CropWidth',
3295
- Writable => 'int32u',
3296
- },
3297
- 0x615 => {
3298
- Name => 'CropHeight',
3299
- Writable => 'int32u',
3300
- },
3301
- 0x1000 => {
3302
- Name => 'LightSource',
3303
- Writable => 'int16u',
3304
- PrintConv => {
3305
- 0 => 'Unknown',
3306
- 16 => 'Shade',
3307
- 17 => 'Cloudy',
3308
- 18 => 'Fine Weather',
3309
- 20 => 'Tungsten (Incandescent)',
3310
- 22 => 'Evening Sunlight',
3311
- 33 => 'Daylight Fluorescent',
3312
- 34 => 'Day White Fluorescent',
3313
- 35 => 'Cool White Fluorescent',
3314
- 36 => 'White Fluorescent',
3315
- 256 => 'One Touch White Balance',
3316
- 512 => 'Custom 1-4',
3317
- },
3318
- },
3319
- # the following 5 tags all have 3 values: val, min, max
3320
- 0x1001 => {
3321
- Name => 'WhiteBalanceComp',
3322
- Writable => 'int16s',
3323
- Count => 3,
3324
- },
3325
- 0x1010 => {
3326
- Name => 'SaturationSetting',
3327
- Writable => 'int16s',
3328
- Count => 3,
3329
- },
3330
- 0x1011 => {
3331
- Name => 'HueSetting',
3332
- Writable => 'int16s',
3333
- Count => 3,
3334
- },
3335
- 0x1012 => {
3336
- Name => 'ContrastSetting',
3337
- Writable => 'int16s',
3338
- Count => 3,
3339
- },
3340
- 0x1013 => {
3341
- Name => 'SharpnessSetting',
3342
- Writable => 'int16s',
3343
- Count => 3,
3344
- },
3345
- # settings written by Camedia Master 4.x
3346
- 0x2000 => {
3347
- Name => 'CMExposureCompensation',
3348
- Writable => 'rational64s',
3349
- },
3350
- 0x2001 => {
3351
- Name => 'CMWhiteBalance',
3352
- Writable => 'int16u',
3353
- },
3354
- 0x2002 => {
3355
- Name => 'CMWhiteBalanceComp',
3356
- Writable => 'int16s',
3357
- },
3358
- 0x2010 => {
3359
- Name => 'CMWhiteBalanceGrayPoint',
3360
- Writable => 'int16u',
3361
- Count => 3,
3362
- },
3363
- 0x2020 => {
3364
- Name => 'CMSaturation',
3365
- Writable => 'int16s',
3366
- Count => 3,
3367
- },
3368
- 0x2021 => {
3369
- Name => 'CMHue',
3370
- Writable => 'int16s',
3371
- Count => 3,
3372
- },
3373
- 0x2022 => {
3374
- Name => 'CMContrast',
3375
- Writable => 'int16s',
3376
- Count => 3,
3377
- },
3378
- 0x2023 => {
3379
- Name => 'CMSharpness',
3380
- Writable => 'int16s',
3381
- Count => 3,
3382
- },
3383
- );
3384
-
3385
- # Olympus unknown information tags
3386
- %Image::ExifTool::Olympus::UnknownInfo = (
3387
- WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
3388
- CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
3389
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3390
- );
3391
-
3392
- # Tags found only in some FE models
3393
- %Image::ExifTool::Olympus::FETags = (
3394
- WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
3395
- CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
3396
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3397
- NOTES => q{
3398
- Some FE models write a large number of tags here, but most of this
3399
- information remains unknown.
3400
- },
3401
- 0x0100 => {
3402
- Name => 'BodyFirmwareVersion',
3403
- Writable => 'string',
3404
- },
3405
- );
3406
-
3407
- # tags in Olympus QuickTime videos (ref PH)
3408
- # (similar information in Kodak,Minolta,Nikon,Olympus,Pentax and Sanyo videos)
3409
- %Image::ExifTool::Olympus::MOV1 = (
3410
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
3411
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3412
- FIRST_ENTRY => 0,
3413
- NOTES => q{
3414
- This information is found in MOV videos from Olympus models such as the
3415
- D540Z, D595Z, FE100, FE110, FE115, FE170 and FE200.
3416
- },
3417
- 0x00 => {
3418
- Name => 'Make',
3419
- Format => 'string[24]',
3420
- },
3421
- 0x18 => {
3422
- Name => 'Model',
3423
- Description => 'Camera Model Name',
3424
- Format => 'string[8]',
3425
- SeparateTable => 'CameraType',
3426
- PrintConv => \%olympusCameraTypes,
3427
- },
3428
- # (01 00 at offset 0x20)
3429
- 0x26 => {
3430
- Name => 'ExposureUnknown',
3431
- Unknown => 1,
3432
- Format => 'int32u',
3433
- # this conversion doesn't work for all models (ie. gives "1/100000")
3434
- ValueConv => '$val ? 10 / $val : 0',
3435
- PrintConv => 'Image::ExifTool::Exif::PrintExposureTime($val)',
3436
- },
3437
- 0x2a => {
3438
- Name => 'FNumber',
3439
- Format => 'rational64u',
3440
- PrintConv => 'sprintf("%.1f",$val)',
3441
- },
3442
- 0x32 => { #(NC)
3443
- Name => 'ExposureCompensation',
3444
- Format => 'rational64s',
3445
- PrintConv => 'Image::ExifTool::Exif::PrintFraction($val)',
3446
- },
3447
- # 0x44 => WhiteBalance ?
3448
- 0x48 => {
3449
- Name => 'FocalLength',
3450
- Format => 'rational64u',
3451
- PrintConv => 'sprintf("%.1f mm",$val)',
3452
- },
3453
- # 0xb1 => 'ISO', #(I don't think this works - PH)
3454
- );
3455
-
3456
- # tags in Olympus QuickTime videos (ref PH)
3457
- # (similar information in Kodak,Minolta,Nikon,Olympus,Pentax and Sanyo videos)
3458
- %Image::ExifTool::Olympus::MOV2 = (
3459
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
3460
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3461
- FIRST_ENTRY => 0,
3462
- NOTES => q{
3463
- This information is found in MOV videos from Olympus models such as the
3464
- FE120, FE140 and FE190.
3465
- },
3466
- 0x00 => {
3467
- Name => 'Make',
3468
- Format => 'string[24]',
3469
- },
3470
- 0x18 => {
3471
- Name => 'Model',
3472
- Description => 'Camera Model Name',
3473
- Format => 'string[24]',
3474
- Notes => 'the actual model name, no decoding necessary',
3475
- },
3476
- # (01 00 at offset 0x30)
3477
- 0x36 => {
3478
- Name => 'ExposureTime',
3479
- Format => 'int32u',
3480
- ValueConv => '$val ? 10 / $val : 0',
3481
- PrintConv => 'Image::ExifTool::Exif::PrintExposureTime($val)',
3482
- },
3483
- 0x3a => {
3484
- Name => 'FNumber',
3485
- Format => 'rational64u',
3486
- PrintConv => 'sprintf("%.1f",$val)',
3487
- },
3488
- 0x42 => { #(NC)
3489
- Name => 'ExposureCompensation',
3490
- Format => 'rational64s',
3491
- PrintConv => 'Image::ExifTool::Exif::PrintFraction($val)',
3492
- },
3493
- 0x58 => {
3494
- Name => 'FocalLength',
3495
- Format => 'rational64u',
3496
- PrintConv => 'sprintf("%.1f mm",$val)',
3497
- },
3498
- 0xc1 => {
3499
- Name => 'ISO',
3500
- Format => 'int16u',
3501
- },
3502
- );
3503
-
3504
- # tags in Olympus MP4 videos (ref PH)
3505
- %Image::ExifTool::Olympus::MP4 = (
3506
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
3507
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3508
- FIRST_ENTRY => 0,
3509
- NOTES => q{
3510
- This information is found in MP4 videos from Olympus models such as the
3511
- u7040 and u9010.
3512
- },
3513
- 0x00 => {
3514
- Name => 'Make',
3515
- Format => 'string[24]',
3516
- },
3517
- 0x18 => {
3518
- Name => 'Model',
3519
- Description => 'Camera Model Name',
3520
- Format => 'string[24]',
3521
- Notes => 'oddly different than CameraType values in JPEG images by the same camera',
3522
- PrintConv => {
3523
- SG472 => 'u7040,S7040',
3524
- SG473 => 'u9010,S9010',
3525
- SG475 => 'SP800UZ',
3526
- SG551 => 'SZ-30MR',
3527
- SG553 => 'SP-610UZ',
3528
- SG554 => 'SZ-10',
3529
- SG555 => 'SZ-20',
3530
- SG575 => 'SP-620UZ',
3531
- },
3532
- },
3533
- 0x28 => {
3534
- Name => 'FNumber',
3535
- Format => 'rational64u',
3536
- PrintConv => 'sprintf("%.1f",$val)',
3537
- },
3538
- 0x30 => { #(NC)
3539
- Name => 'ExposureCompensation',
3540
- Format => 'rational64s',
3541
- PrintConv => 'Image::ExifTool::Exif::PrintFraction($val)',
3542
- },
3543
- # 0x38 - int32u: 3
3544
- # 0x3c - int32u: 1
3545
- # 0x40 - int16u: 5
3546
- # 0x42 - int16u: 0,4,9
3547
- # 0x64 - int32u: 0,6000,12000
3548
- # 0x48 - int32u: 100 (ISO?)
3549
- 0x68 => {
3550
- Name => 'MovableInfo',
3551
- Condition => '$$valPt =~ /^DIGI/',
3552
- SubDirectory => { TagTable => 'Image::ExifTool::Olympus::MovableInfo' },
3553
- },
3554
- 0x72 => {
3555
- Name => 'MovableInfo',
3556
- Condition => '$$valPt =~ /^DIGI/',
3557
- SubDirectory => { TagTable => 'Image::ExifTool::Olympus::MovableInfo' },
3558
- },
3559
- );
3560
-
3561
- # yet a different QuickTime TAGS format (PH, E-M5)
3562
- %Image::ExifTool::Olympus::MOV3 = (
3563
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3564
- NOTES => 'QuickTime information found in the TAGS atom of MOV videos from the E-M5.',
3565
- OLYM => {
3566
- Name => 'OlympusAtom',
3567
- SubDirectory => { TagTable => 'Image::ExifTool::Olympus::OLYM2' },
3568
- },
3569
- );
3570
-
3571
- # yet a different QuickTime OLYM atom format (PH, E-M5)
3572
- %Image::ExifTool::Olympus::OLYM2 = (
3573
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3574
- prms => {
3575
- Name => 'MakerNotes',
3576
- SubDirectory => { TagTable => 'Image::ExifTool::Olympus::prms' },
3577
- },
3578
- thmb =>{
3579
- Name => 'ThumbInfo',
3580
- SubDirectory => { TagTable => 'Image::ExifTool::Olympus::thmb2' },
3581
- },
3582
- scrn =>{
3583
- Name => 'PreviewInfo',
3584
- SubDirectory => { TagTable => 'Image::ExifTool::Olympus::scrn2' },
3585
- },
3586
- );
3587
-
3588
- # the "prms" atom in E-M5 MOV videos (PH, E-M5)
3589
- %Image::ExifTool::Olympus::prms = (
3590
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
3591
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3592
- FIRST_ENTRY => 0,
3593
- NOTES => q{
3594
- Information extracted from the "prms" atom in MOV videos from Olympus models
3595
- such as the OM E-M5.
3596
- },
3597
- 0x12 => {
3598
- Name => 'Make',
3599
- Format => 'string[24]',
3600
- },
3601
- 0x2c => {
3602
- Name => 'Model',
3603
- Description => 'Camera Model Name',
3604
- Format => 'string[24]',
3605
- SeparateTable => 'CameraType',
3606
- PrintConv => \%olympusCameraTypes,
3607
- },
3608
- 0x83 => {
3609
- Name => 'DateTime1',
3610
- Format => 'string[24]',
3611
- Groups => { 2 => 'Time' },
3612
- },
3613
- 0x9d => {
3614
- Name => 'DateTime2',
3615
- Format => 'string[24]',
3616
- Groups => { 2 => 'Time' },
3617
- },
3618
- );
3619
-
3620
- # yet a different "thmb" atom format (PH, E-M5)
3621
- %Image::ExifTool::Olympus::thmb2 = (
3622
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
3623
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3624
- 0 => {
3625
- Name => 'ThumbnailWidth',
3626
- Format => 'int16u',
3627
- },
3628
- 2 => {
3629
- Name => 'ThumbnailHeight',
3630
- Format => 'int16u',
3631
- },
3632
- 4 => {
3633
- Name => 'ThumbnailLength',
3634
- Format => 'int32u',
3635
- },
3636
- 8 => {
3637
- Name => 'ThumbnailImage',
3638
- Format => 'undef[$val{4}]',
3639
- Notes => '160x120 JPEG thumbnail image',
3640
- RawConv => '$self->ValidateImage(\$val,$tag)',
3641
- },
3642
- );
3643
-
3644
- # yet a different "scrn" atom format (PH, E-M5)
3645
- %Image::ExifTool::Olympus::scrn2 = (
3646
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
3647
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3648
- # 0 => int16u: 1 - number of preview images?
3649
- 2 => {
3650
- Name => 'OlympusPreview',
3651
- SubDirectory => { TagTable => 'Image::ExifTool::Olympus::scrn' },
3652
- },
3653
- );
3654
-
3655
- # movable information found in MP4 videos
3656
- %Image::ExifTool::Olympus::MovableInfo = (
3657
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
3658
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3659
- FIRST_ENTRY => 0,
3660
- 0x04 => { #(NC)
3661
- Name => 'ISO',
3662
- Format => 'int32u',
3663
- },
3664
- 0x2c => {
3665
- Name => 'EncoderVersion',
3666
- Format => 'string[16]',
3667
- },
3668
- 0x3c => {
3669
- Name => 'DecoderVersion',
3670
- Format => 'string[16]',
3671
- },
3672
- 0x83 => {
3673
- Name => 'Thumbnail',
3674
- SubDirectory => {
3675
- TagTable => 'Image::ExifTool::Olympus::Thumbnail',
3676
- Base => '$start', # (use a separate table because of this)
3677
- },
3678
- },
3679
- );
3680
-
3681
- # thumbnail image information found in MP4 videos (similar in Olympus,Samsung,Sanyo) (ref PH)
3682
- %Image::ExifTool::Olympus::Thumbnail = (
3683
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
3684
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3685
- FIRST_ENTRY => 0,
3686
- FORMAT => 'int32u',
3687
- 1 => 'ThumbnailWidth',
3688
- 2 => 'ThumbnailHeight',
3689
- 3 => 'ThumbnailLength',
3690
- 4 => { Name => 'ThumbnailOffset', IsOffset => 1 },
3691
- );
3692
-
3693
- # thumbnail information found in 'thmb' atom of MP4 videos from the TG-810 (ref PH)
3694
- %Image::ExifTool::Olympus::thmb = (
3695
- NOTES => 'Information extracted from the "thmb" atom of Olympus MP4 videos.',
3696
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
3697
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3698
- 0 => {
3699
- Name => 'ThumbnailLength',
3700
- Format => 'int32u',
3701
- },
3702
- 4 => {
3703
- Name => 'ThumbnailImage',
3704
- Format => 'undef[$val{0}]',
3705
- Notes => '160x120 JPEG thumbnail image',
3706
- RawConv => '$self->ValidateImage(\$val,$tag)',
3707
- },
3708
- );
3709
-
3710
- # thumbnail information found in 'scrn' atom of MP4 videos from the TG-810 (ref PH)
3711
- %Image::ExifTool::Olympus::scrn = (
3712
- NOTES => 'Information extracted from the "scrn" atom of Olympus MP4 videos.',
3713
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
3714
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3715
- 0 => {
3716
- Name => 'PreviewImageLength',
3717
- Format => 'int32u',
3718
- },
3719
- 4 => {
3720
- Name => 'PreviewImage',
3721
- Format => 'undef[$val{0}]',
3722
- Notes => '640x480 JPEG preview image',
3723
- RawConv => '$self->ValidateImage(\$val,$tag)',
3724
- },
3725
- );
3726
-
3727
- # information in OLYM atom of MP4 videos from the TG-810 (ref PH)
3728
- %Image::ExifTool::Olympus::OLYM = (
3729
- NOTES => 'Tags found in the OLYM atom of MP4 videos from the TG-810.',
3730
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
3731
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3732
- 0x0e => {
3733
- Name => 'Make',
3734
- Format => 'string[26]',
3735
- },
3736
- 0x28 => {
3737
- Name => 'Model',
3738
- Description => 'Camera Model Name',
3739
- Format => 'string[24]',
3740
- SeparateTable => 'CameraType',
3741
- PrintConv => \%olympusCameraTypes,
3742
- },
3743
- 0x5a => {
3744
- Name => 'FNumber',
3745
- Format => 'rational64u',
3746
- PrintConv => 'sprintf("%.1f",$val)',
3747
- },
3748
- 0x7f => {
3749
- Name => 'DateTimeOriginal', #(NC)
3750
- Format => 'string[24]',
3751
- Groups => { 2 => 'Time' },
3752
- PrintConv => '$self->ConvertDateTime($val)',
3753
- },
3754
- 0x99 => {
3755
- Name => 'DateTime2',
3756
- Format => 'string[24]',
3757
- Groups => { 2 => 'Time' },
3758
- },
3759
- 0x109 => {
3760
- Name => 'ThumbnailWidth',
3761
- Format => 'int16u',
3762
- },
3763
- 0x10b => {
3764
- Name => 'ThumbnailHeight',
3765
- Format => 'int16u',
3766
- },
3767
- );
3768
-
3769
- # tags in Olympus AVI videos (ref PH)
3770
- # (very similar to Pentax::Junk2 tags)
3771
- %Image::ExifTool::Olympus::AVI = (
3772
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
3773
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3774
- FIRST_ENTRY => 0,
3775
- NOTES => 'This information is found in Olympus AVI videos.',
3776
- 0x12 => {
3777
- Name => 'Make',
3778
- Format => 'string[24]',
3779
- },
3780
- 0x2c => {
3781
- Name => 'Model',
3782
- Description => 'Camera Model Name',
3783
- Format => 'string[24]',
3784
- SeparateTable => 'CameraType',
3785
- PrintConv => \%olympusCameraTypes,
3786
- },
3787
- 0x5e => {
3788
- Name => 'FNumber',
3789
- Format => 'rational64u',
3790
- PrintConv => 'sprintf("%.1f",$val)',
3791
- },
3792
- 0x83 => {
3793
- Name => 'DateTime1',
3794
- Format => 'string[24]',
3795
- Groups => { 2 => 'Time' },
3796
- },
3797
- 0x9d => {
3798
- Name => 'DateTime2',
3799
- Format => 'string[24]',
3800
- Groups => { 2 => 'Time' },
3801
- },
3802
- 0x129 => {
3803
- Name => 'ThumbInfo',
3804
- SubDirectory => { TagTable => 'Image::ExifTool::Olympus::thmb2' },
3805
- },
3806
- );
3807
-
3808
- # tags in WAV files from Olympus PCM linear recorders (ref 18)
3809
- %Image::ExifTool::Olympus::WAV = (
3810
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
3811
- GROUPS => { 0 => 'MakerNotes', 2 => 'Audio' },
3812
- FIRST_ENTRY => 0,
3813
- NOTES => q{
3814
- This information is found in WAV files from Olympus PCM linear recorders
3815
- like the LS-5, LS-10, LS-11.
3816
- },
3817
- 0x0c => {
3818
- Name => 'Model',
3819
- Description => 'Camera Model Name',
3820
- Format => 'string[16]',
3821
- },
3822
- 0x1c => {
3823
- Name => 'FileNumber',
3824
- Format => 'int32u',
3825
- PrintConv => 'sprintf("%.4d", $val)',
3826
- },
3827
- 0x26 => {
3828
- Name => 'DateTimeOriginal',
3829
- Description => 'Date/Time Original',
3830
- Groups => { 2 => 'Time' },
3831
- Format => 'undef[12]',
3832
- Notes => 'time at start of recording',
3833
- ValueConv => q{
3834
- return undef unless $val =~ /^(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/;
3835
- my $y = $1 < 70 ? "20$1" : "19$1";
3836
- return "$y:$2:$3 $4:$5:$6";
3837
- },
3838
- PrintConv => '$self->ConvertDateTime($val)',
3839
- },
3840
- 0x32 => {
3841
- Name => 'DateTimeEnd',
3842
- Groups => { 2 => 'Time' },
3843
- Format => 'undef[12]',
3844
- Notes => 'time at end of recording',
3845
- ValueConv => q{
3846
- return undef unless $val =~ /^(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/;
3847
- my $y = $1 < 70 ? "20$1" : "19$1";
3848
- return "$y:$2:$3 $4:$5:$6";
3849
- },
3850
- PrintConv => '$self->ConvertDateTime($val)',
3851
- },
3852
- 0x3e => {
3853
- Name => 'RecordingTime',
3854
- Format => 'undef[6]',
3855
- ValueConv => '$val =~ s/^(\d{2})(\d{2})/$1:$2:/; $val',
3856
- },
3857
- 0x200 => {
3858
- Name => 'Duration',
3859
- Format => 'int32u',
3860
- ValueConv => '$val / 1000',
3861
- PrintConv => 'ConvertDuration($val)',
3862
- },
3863
- 0x20a => { Name => 'Index01', %indexInfo },
3864
- 0x214 => { Name => 'Index02', %indexInfo },
3865
- 0x21e => { Name => 'Index03', %indexInfo },
3866
- 0x228 => { Name => 'Index04', %indexInfo },
3867
- 0x232 => { Name => 'Index05', %indexInfo },
3868
- 0x23c => { Name => 'Index06', %indexInfo },
3869
- 0x246 => { Name => 'Index07', %indexInfo },
3870
- 0x250 => { Name => 'Index08', %indexInfo },
3871
- 0x25a => { Name => 'Index09', %indexInfo },
3872
- 0x264 => { Name => 'Index10', %indexInfo },
3873
- 0x26e => { Name => 'Index11', %indexInfo },
3874
- 0x278 => { Name => 'Index12', %indexInfo },
3875
- 0x282 => { Name => 'Index13', %indexInfo },
3876
- 0x28c => { Name => 'Index14', %indexInfo },
3877
- 0x296 => { Name => 'Index15', %indexInfo },
3878
- 0x2a0 => { Name => 'Index16', %indexInfo },
3879
- );
3880
-
3881
- # Olympus composite tags
3882
- %Image::ExifTool::Olympus::Composite = (
3883
- GROUPS => { 2 => 'Camera' },
3884
- ExtenderStatus => {
3885
- Notes => q{
3886
- Olympus cameras have the quirk that they may retain the extender settings
3887
- after the extender is removed until the camera is powered off. This tag is
3888
- an attempt to represent the actual status of the extender.
3889
- },
3890
- Require => {
3891
- 0 => 'Olympus:Extender',
3892
- 1 => 'Olympus:LensType',
3893
- 2 => 'MaxApertureValue',
3894
- },
3895
- ValueConv => 'Image::ExifTool::Olympus::ExtenderStatus($val[0],$prt[1],$val[2])',
3896
- PrintConv => {
3897
- 0 => 'Not attached',
3898
- 1 => 'Attached',
3899
- 2 => 'Removed',
3900
- },
3901
- },
3902
- ZoomedPreviewImage => {
3903
- Require => {
3904
- 0 => 'ZoomedPreviewStart',
3905
- 1 => 'ZoomedPreviewLength',
3906
- },
3907
- RawConv => 'Image::ExifTool::Exif::ExtractImage($self,$val[0],$val[1],"ZoomedPreviewImage")',
3908
- },
3909
- );
3910
-
3911
- # add our composite tags
3912
- Image::ExifTool::AddCompositeTags('Image::ExifTool::Olympus');
3913
-
3914
-
3915
- #------------------------------------------------------------------------------
3916
- # Determine if the extender (EX-25/EC-14) was really attached (ref 9)
3917
- # Inputs: 0) Extender, 1) LensType string, 2) MaxApertureAtMaxFocal
3918
- # Returns: 0=not attached, 1=attached, 2=could have been removed
3919
- # Notes: Olympus has a bug in the in-camera firmware which results in the
3920
- # extender information being cached and written into the EXIF data even after
3921
- # the extender has been removed. You must power cycle the camera to prevent it
3922
- # from writing the cached extender information into the EXIF data.
3923
- sub ExtenderStatus($$$)
3924
- {
3925
- my ($extender, $lensType, $maxAperture) = @_;
3926
- my @info = split ' ', $extender;
3927
- # validate that extender identifier is reasonable
3928
- return 0 unless @info >= 2 and $info[1];
3929
- # if it's not an EC-14 (id 0 4) then assume it was really attached
3930
- # (other extenders don't seem to affect the reported max aperture)
3931
- return 1 if "$info[0] $info[1]" ne '0 4';
3932
- # get the maximum aperture for this lens (in $1)
3933
- $lensType =~ / F(\d+(.\d+)?)/ or return 1;
3934
- # If the maximum aperture at the maximum focal length is greater than the
3935
- # known max/max aperture of the lens, then the extender must be attached
3936
- return ($maxAperture - $1 > 0.2) ? 1 : 2;
3937
- }
3938
-
3939
- #------------------------------------------------------------------------------
3940
- # Print AF points
3941
- # Inputs: 0) AF point data (string of integers)
3942
- # Notes: I'm just guessing that the 2nd and 4th bytes are the Y coordinates,
3943
- # and that more AF points will show up in the future (derived from E-1 images,
3944
- # and the E-1 uses just one of 3 possible AF points, all centered in Y) - PH
3945
- sub PrintAFAreas($)
3946
- {
3947
- my $val = shift;
3948
- my @points = split ' ', $val;
3949
- my %afPointNames = (
3950
- 0x36794285 => 'Left',
3951
- 0x79798585 => 'Center',
3952
- 0xBD79C985 => 'Right',
3953
- );
3954
- $val = '';
3955
- my $pt;
3956
- foreach $pt (@points) {
3957
- next unless $pt;
3958
- $val and $val .= ', ';
3959
- $afPointNames{$pt} and $val .= $afPointNames{$pt} . ' ';
3960
- my @coords = unpack('C4',pack('N',$pt));
3961
- $val .= "($coords[0],$coords[1])-($coords[2],$coords[3])";
3962
- }
3963
- $val or $val = 'none';
3964
- return $val;
3965
- }
3966
-
3967
- #------------------------------------------------------------------------------
3968
- # Process ORF file
3969
- # Inputs: 0) ExifTool object reference, 1) directory information reference
3970
- # Returns: 1 if this looked like a valid ORF file, 0 otherwise
3971
- sub ProcessORF($$)
3972
- {
3973
- my ($exifTool, $dirInfo) = @_;
3974
- return $exifTool->ProcessTIFF($dirInfo);
3975
- }
3976
-
3977
- 1; # end
3978
-
3979
- __END__
3980
-
3981
- =head1 NAME
3982
-
3983
- Image::ExifTool::Olympus - Olympus/Epson maker notes tags
3984
-
3985
- =head1 SYNOPSIS
3986
-
3987
- This module is loaded automatically by Image::ExifTool when required.
3988
-
3989
- =head1 DESCRIPTION
3990
-
3991
- This module contains definitions required by Image::ExifTool to interpret
3992
- Olympus or Epson maker notes in EXIF information.
3993
-
3994
- =head1 AUTHOR
3995
-
3996
- Copyright 2003-2012, Phil Harvey (phil at owl.phy.queensu.ca)
3997
-
3998
- This library is free software; you can redistribute it and/or modify it
3999
- under the same terms as Perl itself.
4000
-
4001
- =head1 REFERENCES
4002
-
4003
- =over 4
4004
-
4005
- =item L<http://park2.wakwak.com/~tsuruzoh/Computer/Digicams/exif-e.html>
4006
-
4007
- =item L<http://www.cybercom.net/~dcoffin/dcraw/>
4008
-
4009
- =item L<http://www.ozhiker.com/electronics/pjmt/jpeg_info/olympus_mn.html>
4010
-
4011
- =item L<http://olypedia.de/Olympus_Makernotes>
4012
-
4013
- =back
4014
-
4015
- =head1 ACKNOWLEDGEMENTS
4016
-
4017
- Thanks to Markku Hanninen, Remi Guyomarch, Frank Ledwon, Michael Meissner,
4018
- Mark Dapoz, Ioannis Panagiotopoulos and Tomasz Kawecki for their help
4019
- figuring out some Olympus tags, and Lilo Huang, Chris Shaw and Viktor
4020
- Lushnikov for adding to the LensType list.
4021
-
4022
- =head1 SEE ALSO
4023
-
4024
- L<Image::ExifTool::TagNames/Olympus Tags>,
4025
- L<Image::ExifTool(3pm)|Image::ExifTool>
4026
-
4027
- =cut