Minolta.pm 100 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961
  1. #------------------------------------------------------------------------------
  2. # File: Minolta.pm
  3. #
  4. # Description: Minolta EXIF maker notes tags
  5. #
  6. # Revisions: 04/06/2004 - P. Harvey Created
  7. # 09/09/2005 - P. Harvey Added ability to write MRW files
  8. #
  9. # References: 1) http://www.dalibor.cz/minolta/makernote.htm
  10. # 2) Jay Al-Saadi private communication (testing with A2)
  11. # 3) Shingo Noguchi, PhotoXP (http://www.daifukuya.com/photoxp/)
  12. # 4) Niels Kristian Bech Jensen private communication
  13. # 5) http://www.cybercom.net/~dcoffin/dcraw/
  14. # 6) Pedro Corte-Real private communication
  15. # 7) ExifTool forum post by bronek (http://www.cpanforum.com/posts/1118)
  16. # 8) http://www.chauveau-central.net/mrw-format/
  17. # 9) CPAN Forum post by 'geve' (http://www.cpanforum.com/threads/2168)
  18. # 10) http://homepage3.nifty.com/kamisaka/makernote/makernote_km.htm
  19. # 11) http://www.dyxum.com/dforum/forum_posts.asp?TID=6371&PN=1 and
  20. # http://www.dyxum.com/dAdmin/lenses/MakerNoteList_Public.asp?stro=makr
  21. # http://dyxum.com/dforum/forum_posts.asp?TID=23435&PN=2
  22. # 12) http://www.minolta-forum.de/forum/index.php?showtopic=14914
  23. # 13) http://www.mhohner.de/minolta/lenses.php
  24. # 14) Jeffery Small private communication (tests with 7D)
  25. # 15) http://homepage3.nifty.com/kamisaka/makernote/makernote_sony.htm
  26. # 16) Thomas Kassner private communication
  27. # 17) Mladen Sever private communication
  28. # 18) Olaf Ulrich private communication
  29. # 19) Lukasz Stelmach private communication
  30. # 20) Igal Milchtaich private communication (A100 firmware 1.04)
  31. # 21) Jean-Michel Dubois private communication
  32. # 22) http://www.mi-fo.de/forum/index.php?act=attach&type=post&id=6024
  33. # 23) Marcin Krol private communication
  34. # 24) http://cpanforum.com/threads/12291
  35. # 26) http://u88.n24.queensu.ca/exiftool/forum/index.php/topic,3521.0.html
  36. # 27) http://u88.n24.queensu.ca/exiftool/forum/index.php/topic,3833.0.html
  37. # 28) Michael Reitinger private communication (RX100)
  38. # 29) http://u88.n24.queensu.ca/exiftool/forum/index.php/topic,4086.0.html
  39. # 30) Iliah Borg private communication (LibRaw)
  40. # JD) Jens Duttke private communication
  41. # JR) Jos Roost private communication
  42. #------------------------------------------------------------------------------
  43. package Image::ExifTool::Minolta;
  44. use strict;
  45. use vars qw($VERSION %minoltaLensTypes %minoltaTeleconverters %minoltaColorMode
  46. %sonyColorMode %minoltaSceneMode %afStatusInfo %metabonesID);
  47. use Image::ExifTool qw(:DataAccess :Utils);
  48. use Image::ExifTool::Exif;
  49. $VERSION = '2.29';
  50. # Full list of product codes for Sony-compatible Minolta lenses
  51. # (ref http://www.kb.sony.com/selfservice/documentLink.do?externalId=C1000570)
  52. # NOTE: Unfortunately, these product codes sometimes do not match the first 4
  53. # digits of the lens ID
  54. # 2578 AF 16mm F2.8 FISH-EYE
  55. # 2579 AF 20mm F2.8
  56. # 2641 AF 20mm F2.8 NEW
  57. # 2566 AF 24mm F2.8
  58. # 2642 AF 24mm F2.8 NEW
  59. # 2596 AF 28mm F2
  60. # 2668 AF 28mm F2 NEW
  61. # 2557 AF 28mm F2.8
  62. # 2591 AF 35mm F1.4 G
  63. # 2666 AF 35mm F1.4 G NEW
  64. # 2597 AF 35mm F2
  65. # 2667 AF 35mm F2 NEW
  66. # 2562 AF 50mm F1.4
  67. # 2662 AF 50mm F1.4 NEW
  68. # 2550 AF 50mm F1.7
  69. # 2613 AF 50mm F1.7 NEW
  70. # 2592 AF 85mm F1.4
  71. # 2629 AF 85mm F1.4 G
  72. # 2677 AF 85mm F1.4 G (D)
  73. # 2689 AF 85mm F1.4 G (D) Limited
  74. # 2598 AF 100mm F2
  75. # 2648 AF 100mm F2.8 SOFT
  76. # 2556 AF 135mm F2.8
  77. # 2656 STF 135mm F2.8 [T4.5]
  78. # 2593 AF APO 20 0mm F2.8
  79. # 2612 High Speed AF APO 200mm F2.8 G
  80. # 2563 AF APO 300mm F2.8
  81. # 2608 High Speed AF APO 300mm F2.8 G
  82. # 2674 AF APO 300mm F2.8 G(D) SSM
  83. # 2640 AF APO 300mm F4 G
  84. # 2651 AF APO 400mm F4.5 G
  85. # 2572 AF REFLEX 500mm F8
  86. # 2565 AF APO 600mm F4
  87. # 2609 High Speed AF APO 600mm F4 G
  88. # 2564 AF MACRO 50mm F2.8
  89. # 2638 AF MACRO 50mm F2.8 NEW
  90. # 2675 AF MACRO 50mm F2.8 (D)
  91. # 2646 AF MACRO 50mm F3.5
  92. # 2581 AF MACRO 100mm F2.8
  93. # 2639 AF MACRO 100mm F2.8 NEW
  94. # 2676 AF MACRO 100mm F2.8 (D)
  95. # 2658 AF APO TE LE MACRO 200mm F4 G
  96. # 2594 AF MACRO ZOOM 1x-3x F1.7-2.8
  97. # 2695 AF 17-35mm F2.8-4 (D)
  98. # 2654 AF 17-35mm F3.5 G
  99. # 2657 AF 20-35mm F3.5-4.5
  100. # 2558 AF 24-50mm F4
  101. # 2632 AF 24-50mm F4 NEW
  102. # 2636 AF 24-85mm F3.5-4.5
  103. # 2660 AF 24-85mm F3.5-4.5 NEW
  104. # 2672 AF 24-105mm F3.5-4.5 (D)
  105. # 2620 AF 28-70mm F2.8 G
  106. # 2696 AF 28-75mm F2.8 (D)
  107. # 2659 AF 28-80mm F3.5-5.6
  108. # 2670 AF 28-80mm F3.5-5.6 II
  109. # 2683 AF 28-80mm F3.5-5.6 (D)
  110. # 2633 AF 28-80mm F4-5.6
  111. # 2552 AF 28-85mm F3.5-4.5
  112. # 2586 AF 28-85mm F3.5-4.5 NEW
  113. # 2692 AF 28-100mm F3.5-5.6 (D)
  114. # 2635 AF 28-105mm F3.5-4.5
  115. # 2661 AF 28-105mm F3.5-4.5 NEW
  116. # 2553 AF 28-135mm F4-4.5
  117. # 2551 AF 35-70mm F4
  118. # 2643 AF 35-70mm F3.5-4.5
  119. # 2652 AF 35-70mm F3.5-4.5 NEW
  120. # 2605 AF 35-80mm F4-5.6
  121. # 2671 AF 35-80mm F4.5-5.6 II
  122. # 2554 AF 35-105mm F3.5-4.5
  123. # 2585 AF 35-105mm F3.5-4.5
  124. # 2682 AF APO 70-200mm F2.8 G (D) SSM
  125. # 2588 AF 70-210mm F4.5-5.6
  126. # 2555 AF 70-210mm F4
  127. # 2634 AF 70-210mm F4.5-5.6 NEW
  128. # 2669 AF 70-210mm F4.5-5.6 II
  129. # 2561 AF 75-300mm F4.5-5.6
  130. # 2649 AF 75-300mm F4.5-5.6 NEW
  131. # 2665 AF 75-300mm F4.5-5.6 II
  132. # 2684 AF 75-300mm F4.5-5.6 (D)
  133. # 2589 AF APO 80-200mm F2.8
  134. # 2628 High-Speed AF APO 80-200mm F2.8 G
  135. # 2604 AF 80-200mm F4.5-5.6
  136. # 2560 AF 100-200mm F4.5
  137. # 2606 AF 100-300mm F4.5-5.6
  138. # 2631 AF APO 100-300mm F4.5-5.6
  139. # 2681 AF APO 100-300mm F4.5-5.6 (D)
  140. # 2644 AF APO 100-400mm F4.5-6.7
  141. # 2618 AF Xi 28-80mm F4-5.6
  142. # 2615 AF Xi 28-105mm F3.5-4.5
  143. # 2624 AF PZ 35-80mm F4-5.6
  144. # 2616 AF Xi 35-200mm F4.5-5.6
  145. # 2619 AF Xi 80-200mm F4.5-5.6
  146. # 2621 AF Xi 100-300mm F4.5-5.6
  147. # 2698 AF DT 11-18mm F4.5-5.6 (D)
  148. # 2697 AF DT 18-70mm F3.5-5.6 (D)
  149. # 2699 AF DT 18-200mm F3.5-6.3 (D)
  150. # 2590 1.4x TELE CONVERTER APO
  151. # 2601 2x TELE CONVERTER APO
  152. # 2610 1.4x TELE CONVERTER APO II
  153. # 2611 2x TELE CONVERTER APO II
  154. # 2687 1.4x TELE CONVERTER APO (D)
  155. # 2688 2x TELE CONVERTER APO (D)
  156. # high bytes in Sony LensID's identifying Metabones adapters and high bytes of Canon LensID's
  157. %metabonesID = (
  158. 0xef00 => \ 'Metabones Adapter', # with Canon LensID 0x00xx
  159. 0xf000 => 0xef00, # with Canon LensID 0x01xx
  160. 0xf100 => 0xef00, # with Canon LensID 0x02xx
  161. 0xff00 => 0xef00, # with Canon LensID 0x10xx
  162. 0x7700 => \ 'Metabones Speed Booster', # with Canon LensID 0x00xx
  163. 0x7800 => 0x7700, # with Canon LensID 0x01xx
  164. 0x7900 => 0x7700, # with Canon LensID 0x02xx
  165. 0x8700 => 0x7700, # with Canon LensID 0x10xx
  166. 0xbc00 => \ 'Metabones Speed Booster Ultra', # with Canon LensID 0x00xx
  167. 0xbd00 => 0xbc00, # with Canon LensID 0x01xx
  168. 0xbe00 => 0xbc00, # with Canon LensID 0x02xx
  169. 0xcc00 => 0xbc00, # with Canon LensID 0x10xx
  170. );
  171. # lens ID numbers (ref 3)
  172. # ("New" and "II" appear in brackets if original version also has this LensType)
  173. %minoltaLensTypes = (
  174. Notes => q{
  175. Decimal values have been added to differentiate lenses which would otherwise
  176. have the same LensType, and are used by the Composite LensID tag when
  177. attempting to identify the specific lens model. "New" or "II" appear in
  178. brackets if the original version of the lens has the same LensType. Special
  179. logic is employed to identify the attached lens when a Metabones Canon EF
  180. adapter is used.
  181. },
  182. OTHER => sub {
  183. my ($val, $inv) = @_;
  184. return undef if $inv;
  185. my $id = $val & 0xff00;
  186. # Note: Metabones Smart Adapter firmware versions before 31 kill
  187. # the high byte for 2-byte Canon LensType values, so the reported lens
  188. # will be incorrect for these
  189. my $mb = $metabonesID{$id} or return undef;
  190. ref $mb or $id = $mb, $mb = $metabonesID{$id};
  191. require Image::ExifTool::Canon;
  192. my $lens = $Image::ExifTool::Canon::canonLensTypes{$val - $id};
  193. return $lens ? "$lens + $$mb" : undef;
  194. },
  195. 0 => 'Minolta AF 28-85mm F3.5-4.5 New', # New added (ref 13/18)
  196. 1 => 'Minolta AF 80-200mm F2.8 HS-APO G',
  197. 2 => 'Minolta AF 28-70mm F2.8 G',
  198. 3 => 'Minolta AF 28-80mm F4-5.6',
  199. 4 => 'Minolta AF 85mm F1.4G', #exiv2 0.23
  200. 5 => 'Minolta AF 35-70mm F3.5-4.5 [II]', # (original and II, ref 13)
  201. 6 => 'Minolta AF 24-85mm F3.5-4.5 [New]', # (original and New, ref 13)
  202. # 7 => 'AF 100-400mm F4.5-6.7 (D)', ??
  203. 7 => 'Minolta AF 100-300mm F4.5-5.6 APO [New] or 100-400mm or Sigma Lens',
  204. 7.1 => 'Minolta AF 100-400mm F4.5-6.7 APO', #JD
  205. 7.2 => 'Sigma AF 100-300mm F4 EX DG IF', #JD
  206. 8 => 'Minolta AF 70-210mm F4.5-5.6 [II]', # (original and II, ref 13)
  207. 9 => 'Minolta AF 50mm F3.5 Macro',
  208. 10 => 'Minolta AF 28-105mm F3.5-4.5 [New]', # (original and New, ref 13)
  209. 11 => 'Minolta AF 300mm F4 HS-APO G',
  210. 12 => 'Minolta AF 100mm F2.8 Soft Focus',
  211. 13 => 'Minolta AF 75-300mm F4.5-5.6 (New or II)', # (II and New, ref 13)
  212. 14 => 'Minolta AF 100-400mm F4.5-6.7 APO',
  213. 15 => 'Minolta AF 400mm F4.5 HS-APO G',
  214. 16 => 'Minolta AF 17-35mm F3.5 G',
  215. 17 => 'Minolta AF 20-35mm F3.5-4.5',
  216. 18 => 'Minolta AF 28-80mm F3.5-5.6 II',
  217. 19 => 'Minolta AF 35mm F1.4 G', # G added (ref 18), but not New as per ref 13
  218. 20 => 'Minolta/Sony 135mm F2.8 [T4.5] STF',
  219. # 20 => 'Sony 135mm F2.8 [T4.5] STF (SAL135F28)', (ref JR)
  220. 22 => 'Minolta AF 35-80mm F4-5.6 II', # II added (ref 13)
  221. 23 => 'Minolta AF 200mm F4 Macro APO G',
  222. 24 => 'Minolta/Sony AF 24-105mm F3.5-4.5 (D) or Sigma or Tamron Lens',
  223. # 24 => 'Sony 24-105mm F3.5-4.5 (SAL24105)', (ref JR)
  224. 24.1 => 'Sigma 18-50mm F2.8',
  225. 24.2 => 'Sigma 17-70mm F2.8-4.5 (D)',
  226. 24.3 => 'Sigma 20-40mm F2.8 EX DG Aspherical IF', #JD/22
  227. 24.4 => 'Sigma 18-200mm F3.5-6.3 DC', #22
  228. 24.5 => 'Sigma DC 18-125mm F4-5,6 D', #exiv2 0.23
  229. # 24.6 => 'Tamron SP AF 28-75mm F2.8 XR Di (IF) Macro', #JD
  230. 24.6 => 'Tamron SP AF 28-75mm F2.8 XR Di LD Aspherical [IF] Macro', #4 (Model A09)
  231. 25 => 'Minolta AF 100-300mm F4.5-5.6 APO (D) or Sigma Lens',
  232. 25.1 => 'Sigma 100-300mm F4 EX (APO (D) or D IF)', #JD
  233. 25.2 => 'Sigma 70mm F2.8 EX DG Macro', #JD
  234. 25.3 => 'Sigma 20mm F1.8 EX DG Aspherical RF', #19
  235. 25.4 => 'Sigma 30mm F1.4 EX DC', #21/27
  236. 25.5 => 'Sigma 24mm F1.8 EX DG ASP Macro', #Florian Knorn
  237. 27 => 'Minolta AF 85mm F1.4 G (D)', # added (D) (ref 13)
  238. 28 => 'Minolta/Sony AF 100mm F2.8 Macro (D) or Tamron Lens',
  239. # 28 => 'Sony 100mm F2.8 Macro (SAL100M28)', (ref 18/JR)
  240. 28.1 => 'Tamron SP AF 90mm F2.8 Di Macro', #JD (Model 272E)
  241. 28.2 => 'Tamron SP AF 180mm F3.5 Di LD [IF] Macro', #27 (Model B01) ("SP" moved - ref JR)
  242. 29 => 'Minolta/Sony AF 75-300mm F4.5-5.6 (D)', # Sony added (ref 13)
  243. # 29 => 'Sony 75-300mm F4.5-5.6 (SAL75300)', (ref JR)
  244. 30 => 'Minolta AF 28-80mm F3.5-5.6 (D) or Sigma Lens',
  245. 30.1 => 'Sigma AF 10-20mm F4-5.6 EX DC', #JD
  246. 30.2 => 'Sigma AF 12-24mm F4.5-5.6 EX DG',
  247. 30.3 => 'Sigma 28-70mm EX DG F2.8', #16
  248. 30.4 => 'Sigma 55-200mm F4-5.6 DC', #JD
  249. 31 => 'Minolta/Sony AF 50mm F2.8 Macro (D) or F3.5',
  250. # 31 => 'Sony 50mm F2.8 Macro (SAL50M28)', (ref JR)
  251. 31.1 => 'Minolta/Sony AF 50mm F3.5 Macro',
  252. 32 => 'Minolta/Sony AF 300mm F2.8 G or 1.5x Teleconverter', #13/18
  253. # 32 => 'Minolta AF 300mm F2.8 G (D) SSM', (ref 13)
  254. # 32 => 'Sony 300mm F2.8 G (SAL300F28G)', (ref 18/JR)
  255. 33 => 'Minolta/Sony AF 70-200mm F2.8 G',
  256. # 33 => 'Sony 70-200mm F2.8 G (SAL70200G)', (ref JR)
  257. # 33 => 'Minolta AF 70-200mm F2.8 G (D) SSM' (ref 13)
  258. 35 => 'Minolta AF 85mm F1.4 G (D) Limited',
  259. 36 => 'Minolta AF 28-100mm F3.5-5.6 (D)',
  260. 38 => 'Minolta AF 17-35mm F2.8-4 (D)', # (Konica Minolta, ref 13)
  261. 39 => 'Minolta AF 28-75mm F2.8 (D)', # (Konica Minolta, ref 13)
  262. 40 => 'Minolta/Sony AF DT 18-70mm F3.5-5.6 (D)', # (Konica Minolta, ref 13)
  263. # 40 => 'Sony DT 18-70mm F3.5-5.6 (SAL1870)', (ref JR)
  264. #40.1 => 'Sony AF DT 18-200mm F3.5-6.3', #11 (anomaly? - PH)
  265. 41 => 'Minolta/Sony AF DT 11-18mm F4.5-5.6 (D) or Tamron Lens', # (Konica Minolta, ref 13)
  266. # 41 => 'Sony DT 11-18mm F4.5-5.6 (SAL1118)', (ref JR)
  267. 41.1 => 'Tamron SP AF 11-18mm F4.5-5.6 Di II LD Aspherical IF', #JD (Model A13)
  268. 42 => 'Minolta/Sony AF DT 18-200mm F3.5-6.3 (D)', # Sony added (ref 13) (Konica Minolta, ref 13)
  269. # 42 => 'Sony DT 18-200mm F3.5-6.3 (SAL18200)', (ref JR)
  270. 43 => 'Sony 35mm F1.4 G (SAL35F14G)', # changed from Minolta to Sony (ref 13/18/JR) (but ref 11 shows both!)
  271. 44 => 'Sony 50mm F1.4 (SAL50F14)', # changed from Minolta to Sony (ref 13/18/JR)
  272. 45 => 'Carl Zeiss Planar T* 85mm F1.4 ZA (SAL85F14Z)', #JR
  273. 46 => 'Carl Zeiss Vario-Sonnar T* DT 16-80mm F3.5-4.5 ZA (SAL1680Z)', #JR
  274. 47 => 'Carl Zeiss Sonnar T* 135mm F1.8 ZA (SAL135F18Z)', #JR
  275. 48 => 'Carl Zeiss Vario-Sonnar T* 24-70mm F2.8 ZA SSM (SAL2470Z) or ZA SSM II', #11/JR
  276. 48.1 => 'Carl Zeiss Vario-Sonnar T* 24-70mm F2.8 ZA SSM II (SAL2470Z2)', #JR
  277. 49 => 'Sony DT 55-200mm F4-5.6 (SAL55200)', #JD/JR
  278. 50 => 'Sony DT 18-250mm F3.5-6.3 (SAL18250)', #11/JR
  279. 51 => 'Sony DT 16-105mm F3.5-5.6 (SAL16105)', #11/JR
  280. #51.1 => 'Sony AF DT 55-200mm F4-5.5', #11 (anomaly? - PH)
  281. 52 => 'Sony 70-300mm F4.5-5.6 G SSM (SAL70300G) or G SSM II or Tamron Lens', #JD
  282. 52.1 => 'Sony 70-300mm F4.5-5.6 G SSM II (SAL70300G2)', #JR
  283. 52.2 => 'Tamron SP 70-300mm F4-5.6 Di USD', #JR,4 (Model A005)
  284. 53 => 'Sony 70-400mm F4-5.6 G SSM (SAL70400G)', #17(/w correction by Stephen Bishop)/JR
  285. 54 => 'Carl Zeiss Vario-Sonnar T* 16-35mm F2.8 ZA SSM (SAL1635Z) or ZA SSM II', #17/JR
  286. 54.1 => 'Carl Zeiss Vario-Sonnar T* 16-35mm F2.8 ZA SSM II (SAL1635Z2)', #JR
  287. 55 => 'Sony DT 18-55mm F3.5-5.6 SAM (SAL1855) or SAM II', #PH
  288. 55.1 => 'Sony DT 18-55mm F3.5-5.6 SAM II (SAL18552)', #JR
  289. 56 => 'Sony DT 55-200mm F4-5.6 SAM (SAL55200-2)', #22/JR
  290. 57 => 'Sony DT 50mm F1.8 SAM (SAL50F18) or Tamron Lens or Commlite CM-EF-NEX adapter', #22/JR
  291. 57.1 => 'Tamron SP AF 60mm F2 Di II LD [IF] Macro 1:1', # (Model G005) (ref http://u88.n24.queensu.ca/exiftool/forum/index.php/topic,3858.0.html)
  292. 57.2 => 'Tamron 18-270mm F3.5-6.3 Di II PZD', #27 (Model B008)
  293. # (note: the Commlite CM-EF-NEX adapter also appears to give LensType 57, ref JR)
  294. 58 => 'Sony DT 30mm F2.8 Macro SAM (SAL30M28)', #22/JR
  295. 59 => 'Sony 28-75mm F2.8 SAM (SAL2875)', #21/JR
  296. 60 => 'Carl Zeiss Distagon T* 24mm F2 ZA SSM (SAL24F20Z)', #17/JR
  297. 61 => 'Sony 85mm F2.8 SAM (SAL85F28)', #17/JR
  298. 62 => 'Sony DT 35mm F1.8 SAM (SAL35F18)', #PH/JR
  299. 63 => 'Sony DT 16-50mm F2.8 SSM (SAL1650)', #17/JR
  300. 64 => 'Sony 500mm F4 G SSM (SAL500F40G)', #29
  301. 65 => 'Sony DT 18-135mm F3.5-5.6 SAM (SAL18135)', #JR
  302. 66 => 'Sony 300mm F2.8 G SSM II (SAL300F28G2)', #29
  303. 67 => 'Sony 70-200mm F2.8 G SSM II (SAL70200G2)', #JR
  304. 68 => 'Sony DT 55-300mm F4.5-5.6 SAM (SAL55300)', #29
  305. 69 => 'Sony 70-400mm F4-5.6 G SSM II (SAL70400G2)', #JR
  306. 70 => 'Carl Zeiss Planar T* 50mm F1.4 ZA SSM (SAL50F14Z)', #JR
  307. 128 => 'Tamron or Sigma Lens (128)',
  308. 128.1 => 'Tamron AF 18-200mm F3.5-6.3 XR Di II LD Aspherical [IF] Macro', #JR (Model A14)
  309. # was 128.1 => 'Tamron 18-200mm F3.5-6.3',
  310. 128.2 => 'Tamron AF 28-300mm F3.5-6.3 XR Di LD Aspherical [IF] Macro', #JR (Model A061)
  311. # was 128.2 => 'Tamron 28-300mm F3.5-6.3',
  312. 128.3 => 'Tamron 80-300mm F3.5-6.3',
  313. 128.4 => 'Tamron AF 28-200mm F3.8-5.6 XR Di Aspherical [IF] Macro', #JD (Model A031)
  314. # also Tamron AF 28-200mm F3.8-5.6 Aspherical', #30 (Model 71D)
  315. # and 'Tamron AF 28-200mm F3.8-5.6 LD Aspherical [IF] Super', #30 (Model 171D)
  316. 128.5 => 'Tamron SP AF 17-35mm F2.8-4 Di LD Aspherical IF', #JD (Model A05)
  317. 128.6 => 'Sigma AF 50-150mm F2.8 EX DC APO HSM II', #JD
  318. 128.7 => 'Sigma 10-20mm F3.5 EX DC HSM', #11 (Model 202-205)
  319. 128.8 => 'Sigma 70-200mm F2.8 II EX DG APO MACRO HSM', #24
  320. 128.9 => 'Sigma 10mm F2.8 EX DC HSM Fisheye', #Florian Knorn
  321. # (yes, '128.10'. My condolences to typed languages that use this database - PH)
  322. '128.10' => 'Sigma 50mm F1.4 EX DG HSM', #Florian Knorn
  323. '128.11' => 'Sigma 85mm F1.4 EX DG HSM', #27
  324. '128.12' => 'Sigma 24-70mm F2.8 IF EX DG HSM', #27
  325. '128.13' => 'Sigma 18-250mm F3.5-6.3 DC OS HSM', #27
  326. '128.14' => 'Sigma 17-50mm F2.8 EX DC HSM', #Exiv2
  327. '128.15' => 'Sigma 17-70mm F2.8-4 DC Macro HSM', #JR
  328. '128.16' => 'Sigma 150mm F2.8 EX DG OS HSM APO Macro', #Marcus Holland-Moritz
  329. '128.17' => 'Sigma 150-500mm F5-6.3 APO DG OS HSM', #30
  330. '128.18' => 'Tamron AF 28-105mm F4-5.6 [IF]', #30 (Model 179D)
  331. '128.19' => 'Sigma 35mm F1.4 DG HSM', #JR
  332. '128.20' => 'Sigma 18-35mm F1.8 DC HSM', #JR
  333. 129 => 'Tamron Lens (129)',
  334. 129.1 => 'Tamron 200-400mm F5.6 LD', #12 (LD ref 23)
  335. 129.2 => 'Tamron 70-300mm F4-5.6 LD', #12
  336. 131 => 'Tamron 20-40mm F2.7-3.5 SP Aspherical IF', #23 (Model 266D)
  337. 135 => 'Vivitar 28-210mm F3.5-5.6', #16
  338. 136 => 'Tokina EMZ M100 AF 100mm F3.5', #JD
  339. 137 => 'Cosina 70-210mm F2.8-4 AF', #11
  340. 138 => 'Soligor 19-35mm F3.5-4.5', #11
  341. 139 => 'Tokina AF 28-300mm F4-6.3', #30
  342. 142 => 'Voigtlander 70-300mm F4.5-5.6', #JD
  343. 146 => 'Voigtlander Macro APO-Lanthar 125mm F2.5 SL', #JD
  344. 194 => 'Tamron SP AF 17-50mm F2.8 XR Di II LD Aspherical [IF]', #23 (Model A16)
  345. 203 => 'Tamron SP 70-200mm F2.8 Di USD', #JR (Model A009)
  346. 204 => 'Tamron SP 24-70mm F2.8 Di USD', #JR (Model A007)
  347. 213 => 'Tamron 16-300mm F3.5-6.3 Di II PZD', #JR (Model B016)
  348. 214 => 'Tamron SP 150-600mm F5-6.3 Di USD', #JR (Model A011)
  349. 224 => 'Tamron SP 90mm F2.8 Di Macro 1:1 USD', #JR (Model F004)
  350. 255 => 'Tamron Lens (255)',
  351. 255.1 => 'Tamron SP AF 17-50mm F2.8 XR Di II LD Aspherical', # (Model A16)
  352. 255.2 => 'Tamron AF 18-250mm F3.5-6.3 XR Di II LD', #JD (Model A18?)
  353. #? 225.2 => 'Tamron AF 18-250mm F3.5-6.3 Di II LD Aspherical [IF] Macro', #JR (Model A18)
  354. 255.3 => 'Tamron AF 55-200mm F4-5.6 Di II LD Macro', # (Model A15) (added "LD Macro", ref 23)
  355. 255.4 => 'Tamron AF 70-300mm F4-5.6 Di LD Macro 1:2', # (Model A17)
  356. 255.5 => 'Tamron SP AF 200-500mm F5.0-6.3 Di LD IF', # (Model A08)
  357. 255.6 => 'Tamron SP AF 10-24mm F3.5-4.5 Di II LD Aspherical IF', #22 (Model B001)
  358. 255.7 => 'Tamron SP AF 70-200mm F2.8 Di LD IF Macro', #22 (Model A001)
  359. 255.8 => 'Tamron SP AF 28-75mm F2.8 XR Di LD Aspherical IF', #24 (Model A09)
  360. 255.9 => 'Tamron AF 90-300mm F4.5-5.6 Telemacro', #Fredrik Agert
  361. 25501 => 'Minolta AF 50mm F1.7', #7
  362. 25511 => 'Minolta AF 35-70mm F4 or Other Lens',
  363. 25511.1 => 'Sigma UC AF 28-70mm F3.5-4.5', #12/16(HighSpeed-AF)
  364. 25511.2 => 'Sigma AF 28-70mm F2.8', #JD
  365. 25511.3 => 'Sigma M-AF 70-200mm F2.8 EX Aspherical', #12
  366. 25511.4 => 'Quantaray M-AF 35-80mm F4-5.6', #JD
  367. 25511.5 => 'Tokina 28-70mm F2.8-4.5 AF', #30
  368. 25521 => 'Minolta AF 28-85mm F3.5-4.5 or Other Lens', # not New (ref 18)
  369. 25521.1 => 'Tokina 19-35mm F3.5-4.5', #3
  370. 25521.2 => 'Tokina 28-70mm F2.8 AT-X', #7
  371. 25521.3 => 'Tokina 80-400mm F4.5-5.6 AT-X AF II 840', #JD
  372. 25521.4 => 'Tokina AF PRO 28-80mm F2.8 AT-X 280', #JD
  373. 25521.5 => 'Tokina AT-X PRO [II] AF 28-70mm F2.6-2.8 270', #24 (original + II versions)
  374. 25521.6 => 'Tamron AF 19-35mm F3.5-4.5', #JD (Model A10)
  375. 25521.7 => 'Angenieux AF 28-70mm F2.6', #JD
  376. 25521.8 => 'Tokina AT-X 17 AF 17mm F3.5', #27
  377. 25521.9 => 'Tokina 20-35mm F3.5-4.5 II AF', #30
  378. 25531 => 'Minolta AF 28-135mm F4-4.5 or Sigma Lens',
  379. 25531.1 => 'Sigma ZOOM-alpha 35-135mm F3.5-4.5', #16
  380. 25531.2 => 'Sigma 28-105mm F2.8-4 Aspherical', #JD
  381. 25531.3 => 'Sigma 28-105mm F4-5.6 UC', #JR
  382. 25541 => 'Minolta AF 35-105mm F3.5-4.5', #13
  383. 25551 => 'Minolta AF 70-210mm F4 Macro or Sigma Lens',
  384. 25551.1 => 'Sigma 70-210mm F4-5.6 APO', #7
  385. 25551.2 => 'Sigma M-AF 70-200mm F2.8 EX APO', #6
  386. 25551.3 => 'Sigma 75-200mm F2.8-3.5', #22
  387. 25561 => 'Minolta AF 135mm F2.8',
  388. 25571 => 'Minolta/Sony AF 28mm F2.8', # Sony added (ref 18)
  389. # 25571 => 'Sony 28mm F2.8 (SAL28F28)', (ref 18/JR)
  390. 25581 => 'Minolta AF 24-50mm F4',
  391. 25601 => 'Minolta AF 100-200mm F4.5',
  392. 25611 => 'Minolta AF 75-300mm F4.5-5.6 or Sigma Lens', #13
  393. 25611.1 => 'Sigma 70-300mm F4-5.6 DL Macro', #12 (also DG version ref 27, and APO version ref JR)
  394. 25611.2 => 'Sigma 300mm F4 APO Macro', #3/7
  395. 25611.3 => 'Sigma AF 500mm F4.5 APO', #JD
  396. 25611.4 => 'Sigma AF 170-500mm F5-6.3 APO Aspherical', #JD
  397. 25611.5 => 'Tokina AT-X AF 300mm F4', #JD
  398. 25611.6 => 'Tokina AT-X AF 400mm F5.6 SD', #22
  399. 25611.7 => 'Tokina AF 730 II 75-300mm F4.5-5.6', #JD
  400. 25611.8 => 'Sigma 800mm F5.6 APO', #http://u88.n24.queensu.ca/exiftool/forum/index.php/topic,3472.0.html
  401. 25611.9 => 'Sigma AF 400mm F5.6 APO Macro', #27
  402. 25621 => 'Minolta AF 50mm F1.4 [New]', # original and New, not Sony (ref 13/18)
  403. 25631 => 'Minolta AF 300mm F2.8 APO or Sigma Lens', # changed G to APO (ref 13)
  404. 25631.1 => 'Sigma AF 50-500mm F4-6.3 EX DG APO', #JD
  405. 25631.2 => 'Sigma AF 170-500mm F5-6.3 APO Aspherical', #JD (also DG version, ref 27)
  406. 25631.3 => 'Sigma AF 500mm F4.5 EX DG APO', #JD
  407. 25631.4 => 'Sigma 400mm F5.6 APO', #22
  408. 25641 => 'Minolta AF 50mm F2.8 Macro or Sigma Lens',
  409. 25641.1 => 'Sigma 50mm F2.8 EX Macro', #11
  410. 25651 => 'Minolta AF 600mm F4',
  411. 25661 => 'Minolta AF 24mm F2.8 or Sigma Lens',
  412. 25661.1 => 'Sigma 17-35mm F2.8-4 EX Aspherical', #http://u88.n24.queensu.ca/exiftool/forum/index.php/topic,3789.msg17679.html#msg17679
  413. 25721 => 'Minolta/Sony AF 500mm F8 Reflex',
  414. # 25721 => 'Sony 500mm F8 Reflex (SAL500F80)', (ref JR)
  415. 25781 => 'Minolta/Sony AF 16mm F2.8 Fisheye or Sigma Lens', # Sony added (ref 13/18)
  416. # 25781 => 'Sony 16mm F2.8 Fisheye (SAL16F28)', (ref 18/JR)
  417. 25781.1 => 'Sigma 8mm F4 EX [DG] Fisheye',
  418. 25781.2 => 'Sigma 14mm F3.5',
  419. 25781.3 => 'Sigma 15mm F2.8 Fisheye', #JD (writes 16mm to EXIF)
  420. 25791 => 'Minolta/Sony AF 20mm F2.8 or Tokina Lens', # Sony added (ref 11)
  421. # 25791 => 'Sony 20mm F2.8 (SAL20F28)', (ref JR)
  422. 25791.1 => 'Tokina AT-X Pro DX 11-16mm F2.8', #http://u88.n24.queensu.ca/exiftool/forum/index.php/topic,3593.0.html
  423. 25811 => 'Minolta AF 100mm F2.8 Macro [New] or Sigma or Tamron Lens', # not Sony (ref 13/18)
  424. 25811.1 => 'Sigma AF 90mm F2.8 Macro', #JD
  425. 25811.2 => 'Sigma AF 105mm F2.8 EX [DG] Macro', #JD
  426. 25811.3 => 'Sigma 180mm F5.6 Macro',
  427. 25811.4 => 'Sigma 180mm F3.5 EX DG Macro', #http://u88.n24.queensu.ca/exiftool/forum/index.php/topic,3789.msg17679.html#msg17679
  428. 25811.5 => 'Tamron 90mm F2.8 Macro',
  429. 25851 => 'Beroflex 35-135mm F3.5-4.5', #16
  430. 25858 => 'Minolta AF 35-105mm F3.5-4.5 New or Tamron Lens',
  431. 25858.1 => 'Tamron 24-135mm F3.5-5.6', # (Model 190D)
  432. 25881 => 'Minolta AF 70-210mm F3.5-4.5',
  433. 25891 => 'Minolta AF 80-200mm F2.8 APO or Tokina Lens',
  434. 25891.1 => 'Tokina 80-200mm F2.8',
  435. # 25901 - Note: only get this with older 1.4x and lenses with 5-digit LensTypes (ref 27)
  436. # 25901 - also "Minolta AF 200mm F2.8 HS-APO G + Minolta AF 1.4x APO"
  437. 25901 => 'Minolta AF 200mm F2.8 G APO + Minolta AF 1.4x APO or Other Lens + 1.4x', #26
  438. 25901.1 => 'Minolta AF 600mm F4 HS-APO G + Minolta AF 1.4x APO', #27
  439. 25911 => 'Minolta AF 35mm F1.4', #(from Sony list) (not G as per ref 13)
  440. 25921 => 'Minolta AF 85mm F1.4 G (D)',
  441. 25931 => 'Minolta AF 200mm F2.8 G APO',
  442. 25941 => 'Minolta AF 3x-1x F1.7-2.8 Macro',
  443. 25961 => 'Minolta AF 28mm F2',
  444. 25971 => 'Minolta AF 35mm F2 [New]', #13
  445. 25981 => 'Minolta AF 100mm F2',
  446. # 26011 - Note: only get this with older 2x and lenses with 5-digit LensTypes (ref 27)
  447. # 26011 - also "Minolta AF 200mm F2.8 HS-APO G + Minolta AF 2x APO"
  448. 26011 => 'Minolta AF 200mm F2.8 G APO + Minolta AF 2x APO or Other Lens + 2x', #26
  449. 26011.1 => 'Minolta AF 600mm F4 HS-APO G + Minolta AF 2x APO', #27
  450. 26041 => 'Minolta AF 80-200mm F4.5-5.6',
  451. 26051 => 'Minolta AF 35-80mm F4-5.6', #(from Sony list)
  452. 26061 => 'Minolta AF 100-300mm F4.5-5.6', # not (D) (ref 13/18)
  453. 26071 => 'Minolta AF 35-80mm F4-5.6', #13
  454. 26081 => 'Minolta AF 300mm F2.8 HS-APO G', # HS-APO added (ref 13/18)
  455. 26091 => 'Minolta AF 600mm F4 HS-APO G',
  456. 26121 => 'Minolta AF 200mm F2.8 HS-APO G',
  457. 26131 => 'Minolta AF 50mm F1.7 New',
  458. 26151 => 'Minolta AF 28-105mm F3.5-4.5 xi', # xi, not Power Zoom (ref 13/18)
  459. 26161 => 'Minolta AF 35-200mm F4.5-5.6 xi', # xi, not Power Zoom (ref 13/18)
  460. 26181 => 'Minolta AF 28-80mm F4-5.6 xi', # xi, not Power Zoom (ref 13/18)
  461. 26191 => 'Minolta AF 80-200mm F4.5-5.6 xi', # xi, not Power Zoom (ref 13/18)
  462. 26201 => 'Minolta AF 28-70mm F2.8 G', #11
  463. 26211 => 'Minolta AF 100-300mm F4.5-5.6 xi', # xi, not Power Zoom (ref 13/18)
  464. 26241 => 'Minolta AF 35-80mm F4-5.6 Power Zoom',
  465. 26281 => 'Minolta AF 80-200mm F2.8 G', #11
  466. 26291 => 'Minolta AF 85mm F1.4 New',
  467. 26311 => 'Minolta/Sony AF 100-300mm F4.5-5.6 APO', #11
  468. 26321 => 'Minolta AF 24-50mm F4 New',
  469. 26381 => 'Minolta AF 50mm F2.8 Macro New',
  470. 26391 => 'Minolta AF 100mm F2.8 Macro',
  471. 26411 => 'Minolta/Sony AF 20mm F2.8 New', # Sony added (ref 13)
  472. 26421 => 'Minolta AF 24mm F2.8 New',
  473. 26441 => 'Minolta AF 100-400mm F4.5-6.7 APO', #11
  474. 26621 => 'Minolta AF 50mm F1.4 New',
  475. 26671 => 'Minolta AF 35mm F2 New',
  476. 26681 => 'Minolta AF 28mm F2 New',
  477. 26721 => 'Minolta AF 24-105mm F3.5-4.5 (D)', #11
  478. # 30464: newer firmware versions of the Speed Booster report type 30464 (=0x7700)
  479. # - this is the base to which the Canon LensType is added
  480. 30464 => 'Metabones Canon EF Speed Booster', #Metabones
  481. 45671 => 'Tokina 70-210mm F4-5.6', #22
  482. 45711 => 'Vivitar 70-210mm F4.5-5.6', #30
  483. 45741 => '2x Teleconverter or Tamron or Tokina Lens', #18
  484. 45741.1 => 'Tamron SP AF 90mm F2.5', #JD
  485. 45741.2 => 'Tokina RF 500mm F8.0 x2', #JD
  486. 45741.3 => 'Tokina 300mm F2.8 x2',
  487. 45751 => '1.4x Teleconverter', #18
  488. 45851 => 'Tamron SP AF 300mm F2.8 LD IF', #11
  489. 45861 => 'Tamron SP AF 35-105mm F2.8 LD Aspherical IF', #Fredrik Agert
  490. 45871 => 'Tamron AF 70-210mm F2.8 SP LD', #Fabio Suprani
  491. # 48128: the Speed Booster Ultra appears to report type 48128 (=0xbc00)
  492. # - this is the base to which the Canon LensType is added
  493. 48128 => 'Metabones Canon EF Speed Booster Ultra', #JR
  494. # 61184: older firmware versions of both the Speed Booster and the Smart Adapter
  495. # report type 61184 (=0xef00), and add only the lower byte of the Canon LensType (ref JR).
  496. # For newer firmware versions this is only used by the Smart Adapter, and
  497. # the full Canon LensType code is added - PH
  498. # the metabones adapter translates Canon L -> G, II -> II, USM -> SSM, IS -> OSS (ref JR)
  499. 61184 => 'Metabones Canon EF Adapter or Other Adapter', #JR (also Fotodiox or Viltrox)
  500. # all M42-type lenses give a value of 65535 (and FocalLength=0, FNumber=1)
  501. 65535 => 'E-Mount, T-Mount, Other Lens or no lens', #JD/JR
  502. #
  503. # Sony E-type lenses (NOTE: these should be kept in sync with %sonyLensTypes2 of Sony.pm)
  504. #
  505. 65535.1 => 'Sony E 16mm F2.8', #PH (32784 - SEL16F28)
  506. 65535.2 => 'Sony E 18-55mm F3.5-5.6 OSS', #PH (32785 - SEL1855)
  507. 65535.3 => 'Sony E 55-210mm F4.5-6.3 OSS', #PH (32786 - SEL55210)
  508. 65535.4 => 'Sony E 18-200mm F3.5-6.3 OSS', #PH (32787 - SEL18200)
  509. 65535.5 => 'Sony E 30mm F3.5 Macro', #JR (32788 - SEL30M35)
  510. 65535.6 => 'Sony E 24mm F1.8 ZA', #PH (32789 - SEL24F18Z)
  511. 65535.7 => 'Sony E 50mm F1.8 OSS', #PH (32790 - SEL50F18)
  512. 65535.8 => 'Sony E 16-70mm F4 ZA OSS', #JR (32791 - SEL1670Z)
  513. 65535.9 => 'Sony E 10-18mm F4 OSS', #PH (32792 - SEL1018)
  514. '65535.10' => 'Sony E PZ 16-50mm F3.5-5.6 OSS', #PH (32793 - SELP1650)
  515. '65535.11' => 'Sony FE 35mm F2.8 ZA', #JR (32794 - SEL35F28Z)
  516. '65535.12' => 'Sony FE 24-70mm F4 ZA OSS', #JR (32795 - SEL2470Z)
  517. '65535.13' => 'Sony E 18-200mm F3.5-6.3 OSS LE', #JR (32797 - SEL18200LE)
  518. '65535.14' => 'Sony E 20mm F2.8', #PH (32798 - SEL20F28)
  519. '65535.15' => 'Sony E 35mm F1.8 OSS', #JR (32799 - SEL35F18)
  520. '65535.16' => 'Sony E PZ 18-105mm F4 G OSS', #JR (32800 - SELP18105G)
  521. '65535.17' => 'Sony FE 90mm F2.8 Macro G OSS', #JR (32802 - SEL90M28G)
  522. '65535.18' => 'Sony E 18-50mm F4-5.6', #JR (32803 - SEL1850)
  523. '65535.19' => 'Sony E PZ 18-200mm F3.5-6.3 OSS', #JR (32807 - SELP18200)
  524. '65535.20' => 'Sony FE 55mm F1.8 ZA', #JR (32808 - SEL55F18Z)
  525. '65535.21' => 'Sony FE 70-200mm F4 G OSS', #JR (32810 - SEL70200G)
  526. '65535.22' => 'Sony FE 16-35mm F4 ZA OSS', #JR (32811 - SEL1635Z)
  527. '65535.23' => 'Sony FE 28-70mm F3.5-5.6 OSS', #JR (32813 - SEL2870)
  528. '65535.24' => 'Sony FE 35mm F1.4 ZA', #JR (32814 - SEL35F14Z)
  529. '65535.25' => 'Sony FE 24-240mm F3.5-6.3 OSS', #JR (32815 - SEL24240)
  530. '65535.26' => 'Sony FE 28mm F2', #JR (32816 - SEL28F20)
  531. '65535.27' => 'Sony FE PZ 28-135mm F4 G OSS', #JR (32817 - SELP28135G)
  532. '65535.28' => 'Sony FE 21mm F2.8 (SEL28F20 + SEL075UWC)', #JR # (32826 - SEL28F20 + SEL075UWC Ultra-wide converter)
  533. '65535.29' => 'Sony FE 16mm F3.5 Fisheye (SEL28F20 + SEL057FEC)', #JR # (32827 - SEL28F20 + SEL057FEC Fisheye converter)
  534. #
  535. # 3rd party E lenses
  536. #
  537. '65535.30' => 'Sigma 19mm F2.8 [EX] DN', #JR
  538. '65535.31' => 'Sigma 30mm F2.8 [EX] DN', #JR
  539. '65535.32' => 'Sigma 60mm F2.8 DN', #JR
  540. '65535.33' => 'Tamron 18-200mm F3.5-6.3 Di III VC', #JR (Model B011)
  541. '65535.34' => 'Zeiss Batis 25mm F2', #JR
  542. '65535.35' => 'Zeiss Batis 85mm F1.8', #JR
  543. '65535.36' => 'Zeiss Loxia 21mm F2.8', #JR
  544. '65535.37' => 'Zeiss Loxia 35mm F2', #JR
  545. '65535.38' => 'Zeiss Loxia 50mm F2', #JR
  546. '65535.39' => 'Zeiss Touit 12mm F2.8', #JR
  547. '65535.40' => 'Zeiss Touit 32mm F1.8', #JR
  548. '65535.41' => 'Zeiss Touit 50mm F2.8 Macro', #JR
  549. #
  550. # other lenses
  551. #
  552. '65535.42' => 'Arax MC 35mm F2.8 Tilt+Shift', #JD
  553. '65535.43' => 'Arax MC 80mm F2.8 Tilt+Shift', #JD
  554. '65535.44' => 'Zenitar MF 16mm F2.8 Fisheye M42', #JD
  555. '65535.45' => 'Samyang 500mm Mirror F8.0', #19
  556. '65535.46' => 'Pentacon Auto 135mm F2.8', #19
  557. '65535.47' => 'Pentacon Auto 29mm F2.8', #19
  558. '65535.48' => 'Helios 44-2 58mm F2.0', #19
  559. );
  560. %minoltaTeleconverters = (
  561. 0x00 => 'None',
  562. 0x04 => 'Minolta/Sony AF 1.4x APO (D) (0x04)', # (Andy Johnson, A77 APO and APO D)
  563. 0x05 => 'Minolta/Sony AF 2x APO (D) (0x05)', # (Andy Johnson, A77 APO D)
  564. 0x48 => 'Minolta/Sony AF 2x APO (D)',
  565. # 0x48 => 'Sony 2x Teleconverter (SAL20TC)', (ref JR)
  566. 0x50 => 'Minolta AF 2x APO II',
  567. 0x60 => 'Minolta AF 2x APO',#26
  568. 0x88 => 'Minolta/Sony AF 1.4x APO (D)',
  569. # 0x88 => 'Sony 1.4x Teleconverter (SAL14TC)', (ref JR)
  570. 0x90 => 'Minolta AF 1.4x APO II',
  571. 0xa0 => 'Minolta AF 1.4x APO',#26
  572. );
  573. %minoltaColorMode = (
  574. 0 => 'Natural color',
  575. 1 => 'Black & White',
  576. 2 => 'Vivid color',
  577. 3 => 'Solarization',
  578. 4 => 'Adobe RGB',
  579. 5 => 'Sepia', #10
  580. 9 => 'Natural', #10
  581. 12 => 'Portrait', #10
  582. 13 => 'Natural sRGB',
  583. 14 => 'Natural+ sRGB',
  584. 15 => 'Landscape', #10
  585. 16 => 'Evening', #10
  586. 17 => 'Night Scene', #10
  587. 18 => 'Night Portrait', #10
  588. 0x84 => 'Embed Adobe RGB',
  589. );
  590. %sonyColorMode = ( #15
  591. 0 => 'Standard',
  592. 1 => 'Vivid', #PH
  593. 2 => 'Portrait',
  594. 3 => 'Landscape',
  595. 4 => 'Sunset',
  596. 5 => 'Night View/Portrait', #(portrait if flash is on)
  597. 6 => 'B&W',
  598. 7 => 'Adobe RGB',
  599. 12 => 'Neutral', # Sony
  600. 13 => 'Clear', #JR (NC)
  601. 14 => 'Deep', #JR
  602. 15 => 'Light', #JR (NC)
  603. 16 => 'Autumn Leaves', #JR (NC)
  604. 17 => 'Sepia', #JR
  605. 100 => 'Neutral', #JD
  606. 101 => 'Clear', #JD
  607. 102 => 'Deep', #JD
  608. 103 => 'Light', #JD
  609. 104 => 'Night View', #JD
  610. 105 => 'Autumn Leaves', #JD
  611. 0xffffffff => 'n/a', #PH
  612. );
  613. %minoltaSceneMode = (
  614. 0 => 'Standard',
  615. 1 => 'Portrait',
  616. 2 => 'Text',
  617. 3 => 'Night Scene',
  618. 4 => 'Sunset',
  619. 5 => 'Sports',
  620. 6 => 'Landscape',
  621. 7 => 'Night Portrait', #JD
  622. 8 => 'Macro',
  623. 9 => 'Super Macro',
  624. 16 => 'Auto', # (RX100 'Intelligent Auto' - PH)
  625. 17 => 'Night View/Portrait',
  626. 18 => 'Sweep Panorama', #PH (SLT-A55V)
  627. 19 => 'Handheld Night Shot', #PH
  628. 20 => 'Anti Motion Blur', #PH
  629. 21 => 'Cont. Priority AE', #PH
  630. 22 => 'Auto+',
  631. 23 => '3D Sweep Panorama', #PH (SLT-A55V)
  632. 24 => 'Superior Auto', #28
  633. 25 => 'High Sensitivity', #28
  634. 26 => 'Fireworks', #28
  635. 27 => 'Food', #28
  636. 28 => 'Pet', #28
  637. 33 => 'HDR', #JR
  638. 0xffff => 'n/a', #PH
  639. );
  640. # tag information for AFStatus tags (ref 20)
  641. %afStatusInfo = (
  642. Format => 'int16s',
  643. # 0=in focus, -32768=out of focus, -ve=front focus, +ve=back focus
  644. PrintConvColumns => 2,
  645. PrintConv => {
  646. 0 => 'In Focus',
  647. -32768 => 'Out of Focus',
  648. OTHER => sub {
  649. my ($val, $inv) = @_;
  650. $inv and $val =~ /([-+]?\d+)/, return $1;
  651. return $val < 0 ? "Front Focus ($val)" : "Back Focus (+$val)";
  652. },
  653. },
  654. );
  655. my %exposureIndicator = (
  656. 0 => 'Not Indicated',
  657. 1 => 'Under Scale',
  658. 119 => 'Bottom of Scale',
  659. 120 => '-2.0',
  660. 121 => '-1.7',
  661. 122 => '-1.5',
  662. 123 => '-1.3',
  663. 124 => '-1.0',
  664. 125 => '-0.7',
  665. 126 => '-0.5',
  666. 127 => '-0.3',
  667. 128 => '0',
  668. 129 => '+0.3',
  669. 130 => '+0.5',
  670. 131 => '+0.7',
  671. 132 => '+1.0',
  672. 133 => '+1.3',
  673. 134 => '+1.5',
  674. 135 => '+1.7',
  675. 136 => '+2.0',
  676. 253 => 'Top of Scale',
  677. 254 => 'Over Scale',
  678. );
  679. my %onOff = ( 0 => 'On', 1 => 'Off' );
  680. my %offOn = ( 0 => 'Off', 1 => 'On' );
  681. # Minolta tag table
  682. %Image::ExifTool::Minolta::Main = (
  683. WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
  684. CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
  685. WRITABLE => 1,
  686. GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
  687. 0x0000 => {
  688. Name => 'MakerNoteVersion',
  689. Writable => 'undef',
  690. Count => 4,
  691. },
  692. 0x0001 => {
  693. Name => 'MinoltaCameraSettingsOld',
  694. SubDirectory => {
  695. TagTable => 'Image::ExifTool::Minolta::CameraSettings',
  696. ByteOrder => 'BigEndian',
  697. },
  698. },
  699. 0x0003 => {
  700. Name => 'MinoltaCameraSettings',
  701. # These camera settings are different for the DiMAGE X31
  702. Condition => '$self->{Model} ne "DiMAGE X31"',
  703. SubDirectory => {
  704. TagTable => 'Image::ExifTool::Minolta::CameraSettings',
  705. ByteOrder => 'BigEndian',
  706. },
  707. },
  708. 0x0004 => { #8
  709. Name => 'MinoltaCameraSettings7D',
  710. SubDirectory => {
  711. TagTable => 'Image::ExifTool::Minolta::CameraSettings7D',
  712. ByteOrder => 'BigEndian',
  713. },
  714. },
  715. 0x0010 => { #20 (count: 256)
  716. Name => 'CameraInfoA100',
  717. Condition => '$$self{Model} eq "DSLR-A100"',
  718. SubDirectory => {
  719. TagTable => 'Image::ExifTool::Minolta::CameraInfoA100',
  720. ByteOrder => 'LittleEndian',
  721. },
  722. },
  723. # it appears that image stabilization is on if this tag exists (ref 2),
  724. # but it is an 8kB binary data block!
  725. 0x0018 => [
  726. {
  727. Name => 'ISInfoA100',
  728. Condition => '$self->{Model} eq "DSLR-A100"',
  729. SubDirectory => {
  730. TagTable => 'Image::ExifTool::Minolta::ISInfoA100',
  731. ByteOrder => 'BigEndian',
  732. },
  733. },{
  734. Name => 'ImageStabilization',
  735. Condition => '$self->{Model} =~ /^DiMAGE (A1|A2|X1)$/',
  736. Notes => q{
  737. a block of binary data which exists in DiMAGE A2 (and A1/X1?) images only if
  738. image stabilization is enabled
  739. },
  740. ValueConv => '"On"',
  741. },
  742. ],
  743. 0x0020 => {
  744. Name => 'WBInfoA100',
  745. Condition => '$$self{Model} eq "DSLR-A100"',
  746. Notes => 'currently decoded only for the Sony A100',
  747. SubDirectory => {
  748. TagTable => 'Image::ExifTool::Minolta::WBInfoA100',
  749. ByteOrder => 'BigEndian',
  750. },
  751. },
  752. 0x0040 => {
  753. Name => 'CompressedImageSize',
  754. Writable => 'int32u',
  755. },
  756. 0x0081 => {
  757. # JPEG preview found in DiMAGE 7 images
  758. %Image::ExifTool::previewImageTagInfo,
  759. Groups => { 2 => 'Preview' },
  760. Permanent => 1, # don't add this to a file
  761. },
  762. 0x0088 => {
  763. Name => 'PreviewImageStart',
  764. Flags => 'IsOffset',
  765. OffsetPair => 0x0089, # point to associated byte count
  766. DataTag => 'PreviewImage',
  767. Writable => 'int32u',
  768. Protected => 2,
  769. # Note: Sony also uses this tag in A100 ARW images, but it points
  770. # to the same data as JpgFromRaw
  771. },
  772. 0x0089 => {
  773. Name => 'PreviewImageLength',
  774. OffsetPair => 0x0088, # point to associated offset
  775. DataTag => 'PreviewImage',
  776. Writable => 'int32u',
  777. Protected => 2,
  778. },
  779. 0x0100 => { #10
  780. Name => 'SceneMode',
  781. Writable => 'int32u',
  782. PrintConv => \%minoltaSceneMode,
  783. },
  784. 0x0101 => [
  785. {
  786. Name => 'ColorMode',
  787. Condition => '$self->{Make} !~ /^SONY/',
  788. Priority => 0, # Other ColorMode is more reliable for A2
  789. Writable => 'int32u',
  790. PrintConv => \%minoltaColorMode,
  791. },
  792. { #15
  793. Name => 'ColorMode',
  794. Writable => 'int32u',
  795. Notes => 'Sony models',
  796. PrintConv => \%sonyColorMode,
  797. },
  798. ],
  799. 0x0102 => {
  800. Name => 'MinoltaQuality',
  801. Writable => 'int32u',
  802. # PrintConv strings conform with Minolta reference manual (ref 4)
  803. # (note that Minolta calls an uncompressed TIFF image "Super fine")
  804. PrintConv => {
  805. 0 => 'Raw',
  806. 1 => 'Super Fine',
  807. 2 => 'Fine',
  808. 3 => 'Standard',
  809. 4 => 'Economy',
  810. 5 => 'Extra fine',
  811. },
  812. },
  813. # (0x0103 is the same as 0x0102 above) -- this is true for some
  814. # cameras (A2/7Hi), but not others - PH
  815. 0x0103 => [
  816. {
  817. Name => 'MinoltaQuality',
  818. Writable => 'int32u',
  819. Condition => '$self->{Model} =~ /^DiMAGE (A2|7Hi)$/',
  820. Notes => 'quality for DiMAGE A2/7Hi',
  821. Priority => 0, # lower priority because this doesn't work for A200
  822. PrintConv => { #4
  823. 0 => 'Raw',
  824. 1 => 'Super Fine',
  825. 2 => 'Fine',
  826. 3 => 'Standard',
  827. 4 => 'Economy',
  828. 5 => 'Extra fine',
  829. },
  830. },
  831. { #PH
  832. Name => 'MinoltaImageSize',
  833. Writable => 'int32u',
  834. Condition => '$self->{Model} !~ /^DiMAGE A200$/',
  835. Notes => 'image size for other models except A200',
  836. PrintConv => {
  837. 1 => '1600x1200',
  838. 2 => '1280x960',
  839. 3 => '640x480',
  840. 5 => '2560x1920',
  841. 6 => '2272x1704',
  842. 7 => '2048x1536',
  843. },
  844. },
  845. ],
  846. 0x0104 => { #14
  847. Name => 'FlashExposureComp',
  848. Description => 'Flash Exposure Compensation',
  849. Writable => 'rational64s',
  850. },
  851. 0x0105 => { #10
  852. Name => 'Teleconverter',
  853. Writable => 'int32u',
  854. PrintHex => 1,
  855. PrintConv => \%minoltaTeleconverters,
  856. },
  857. 0x0107 => { #8
  858. Name => 'ImageStabilization',
  859. Writable => 'int32u',
  860. PrintConv => {
  861. 1 => 'Off',
  862. 5 => 'On',
  863. },
  864. },
  865. 0x0109 => { #20
  866. Name => 'RawAndJpgRecording',
  867. Writable => 'int32u',
  868. PrintConv => \%offOn,
  869. },
  870. 0x010a => {
  871. Name => 'ZoneMatching',
  872. Writable => 'int32u',
  873. PrintConv => {
  874. 0 => 'ISO Setting Used',
  875. 1 => 'High Key',
  876. 2 => 'Low Key',
  877. },
  878. },
  879. 0x010b => {
  880. Name => 'ColorTemperature',
  881. Writable => 'int32u',
  882. },
  883. 0x010c => { #3 (Alpha 7)
  884. Name => 'LensType',
  885. Writable => 'int32u',
  886. SeparateTable => 1,
  887. ValueConvInv => 'int($val)', # (must truncate decimal part)
  888. PrintConv => \%minoltaLensTypes,
  889. },
  890. # 0x010e - WhiteBalance according to ref #10
  891. 0x0111 => { #20
  892. Name => 'ColorCompensationFilter',
  893. Writable => 'int32s',
  894. Notes => 'ranges from -2 for green to +2 for magenta',
  895. },
  896. 0x0112 => { #PH (from Sony tags, NC)
  897. Name => 'WhiteBalanceFineTune',
  898. Format => 'int32s',
  899. Writable => 'int32u',
  900. },
  901. 0x0113 => { #PH
  902. Name => 'ImageStabilization',
  903. Condition => '$self->{Model} eq "DSLR-A100"',
  904. Notes => 'valid for Sony A100 only',
  905. Writable => 'int32u',
  906. PrintConv => \%offOn,
  907. },
  908. 0x0114 => [
  909. { #8
  910. Name => 'MinoltaCameraSettings5D',
  911. Condition => '$self->{Model} =~ /^(DYNAX 5D|MAXXUM 5D|ALPHA SWEET)/',
  912. SubDirectory => {
  913. TagTable => 'Image::ExifTool::Minolta::CameraSettings5D',
  914. ByteOrder => 'BigEndian',
  915. },
  916. },
  917. { #PH
  918. Name => 'CameraSettingsA100',
  919. Condition => '$self->{Model} eq "DSLR-A100"',
  920. SubDirectory => {
  921. TagTable => 'Image::ExifTool::Minolta::CameraSettingsA100',
  922. ByteOrder => 'BigEndian', # required because order differs for ARW and JPG images
  923. },
  924. },
  925. ],
  926. 0x0115 => { #20
  927. Name => 'WhiteBalance',
  928. Writable => 'int32u',
  929. PrintHex => 1,
  930. PrintConv => {
  931. 0x00 => 'Auto',
  932. 0x01 => 'Color Temperature/Color Filter',
  933. 0x10 => 'Daylight',
  934. 0x20 => 'Cloudy',
  935. 0x30 => 'Shade',
  936. 0x40 => 'Tungsten',
  937. 0x50 => 'Flash',
  938. 0x60 => 'Fluorescent',
  939. 0x70 => 'Custom',
  940. },
  941. },
  942. 0x0e00 => {
  943. Name => 'PrintIM',
  944. Description => 'Print Image Matching',
  945. Writable => 0,
  946. SubDirectory => {
  947. TagTable => 'Image::ExifTool::PrintIM::Main',
  948. },
  949. },
  950. 0x0f00 => {
  951. Name => 'MinoltaCameraSettings2',
  952. Writable => 0,
  953. Binary => 1,
  954. },
  955. );
  956. %Image::ExifTool::Minolta::CameraSettings = (
  957. PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
  958. WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
  959. CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
  960. WRITABLE => 1,
  961. PRIORITY => 0, # not as reliable as other tags
  962. GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
  963. FORMAT => 'int32u',
  964. FIRST_ENTRY => 0,
  965. NOTES => q{
  966. There is some variability in CameraSettings information between different
  967. models (and sometimes even between different firmware versions), so this
  968. information may not be as reliable as it should be. Because of this, tags
  969. in the following tables are set to lower priority to prevent them from
  970. superceding the values of same-named tags in other locations when duplicate
  971. tags are disabled.
  972. },
  973. 1 => {
  974. Name => 'ExposureMode',
  975. PrintConv => {
  976. 0 => 'Program',
  977. 1 => 'Aperture Priority',
  978. 2 => 'Shutter Priority',
  979. 3 => 'Manual',
  980. },
  981. },
  982. 2 => {
  983. Name => 'FlashMode',
  984. PrintConv => {
  985. 0 => 'Fill flash',
  986. 1 => 'Red-eye reduction',
  987. 2 => 'Rear flash sync',
  988. 3 => 'Wireless',
  989. 4 => 'Off?', #PH
  990. },
  991. },
  992. 3 => {
  993. Name => 'WhiteBalance',
  994. PrintConv => 'Image::ExifTool::Minolta::ConvertWhiteBalance($val)',
  995. },
  996. 4 => {
  997. Name => 'MinoltaImageSize',
  998. PrintConv => {
  999. 0 => 'Full',
  1000. 1 => '1600x1200',
  1001. 2 => '1280x960',
  1002. 3 => '640x480',
  1003. 6 => '2080x1560', #PH (A2)
  1004. 7 => '2560x1920', #PH (A2)
  1005. 8 => '3264x2176', #PH (A2)
  1006. },
  1007. },
  1008. 5 => {
  1009. Name => 'MinoltaQuality',
  1010. PrintConv => { #4
  1011. 0 => 'Raw',
  1012. 1 => 'Super Fine',
  1013. 2 => 'Fine',
  1014. 3 => 'Standard',
  1015. 4 => 'Economy',
  1016. 5 => 'Extra Fine',
  1017. },
  1018. },
  1019. 6 => {
  1020. Name => 'DriveMode',
  1021. PrintConv => {
  1022. 0 => 'Single',
  1023. 1 => 'Continuous',
  1024. 2 => 'Self-timer',
  1025. 4 => 'Bracketing',
  1026. 5 => 'Interval',
  1027. 6 => 'UHS continuous',
  1028. 7 => 'HS continuous',
  1029. },
  1030. },
  1031. 7 => {
  1032. Name => 'MeteringMode',
  1033. PrintConv => {
  1034. 0 => 'Multi-segment',
  1035. 1 => 'Center-weighted average',
  1036. 2 => 'Spot',
  1037. },
  1038. },
  1039. 8 => {
  1040. Name => 'ISO',
  1041. ValueConv => '2 ** (($val-48)/8) * 100',
  1042. ValueConvInv => '48 + 8*log($val/100)/log(2)',
  1043. PrintConv => 'int($val + 0.5)',
  1044. PrintConvInv => '$val',
  1045. },
  1046. 9 => {
  1047. Name => 'ExposureTime',
  1048. ValueConv => '2 ** ((48-$val)/8)',
  1049. ValueConvInv => '48 - 8*log($val)/log(2)',
  1050. PrintConv => 'Image::ExifTool::Exif::PrintExposureTime($val)',
  1051. PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
  1052. },
  1053. 10 => {
  1054. Name => 'FNumber',
  1055. ValueConv => '2 ** (($val-8)/16)',
  1056. ValueConvInv => '8 + 16*log($val)/log(2)',
  1057. PrintConv => 'sprintf("%.1f",$val)',
  1058. PrintConvInv => '$val',
  1059. },
  1060. 11 => {
  1061. Name => 'MacroMode',
  1062. PrintConv => {
  1063. 0 => 'Off',
  1064. 1 => 'On',
  1065. },
  1066. },
  1067. 12 => {
  1068. Name => 'DigitalZoom',
  1069. PrintConv => {
  1070. 0 => 'Off',
  1071. 1 => 'Electronic magnification',
  1072. 2 => '2x',
  1073. },
  1074. },
  1075. 13 => {
  1076. Name => 'ExposureCompensation',
  1077. ValueConv => '$val/3 - 2',
  1078. ValueConvInv => '($val + 2) * 3',
  1079. PrintConv => 'Image::ExifTool::Exif::PrintFraction($val)',
  1080. PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
  1081. },
  1082. 14 => {
  1083. Name => 'BracketStep',
  1084. PrintConv => {
  1085. 0 => '1/3 EV',
  1086. 1 => '2/3 EV',
  1087. 2 => '1 EV',
  1088. },
  1089. },
  1090. 16 => 'IntervalLength',
  1091. 17 => 'IntervalNumber',
  1092. 18 => {
  1093. Name => 'FocalLength',
  1094. ValueConv => '$val / 256',
  1095. ValueConvInv => '$val * 256',
  1096. PrintConv => 'sprintf("%.1f mm",$val)',
  1097. PrintConvInv => '$val=~s/\s*mm$//;$val',
  1098. },
  1099. 19 => {
  1100. Name => 'FocusDistance',
  1101. ValueConv => '$val / 1000',
  1102. ValueConvInv => '$val * 1000',
  1103. PrintConv => '$val ? "$val m" : "inf"',
  1104. PrintConvInv => '$val eq "inf" ? 0 : $val =~ s/\s*m$//, $val',
  1105. },
  1106. 20 => {
  1107. Name => 'FlashFired',
  1108. PrintConv => {
  1109. 0 => 'No',
  1110. 1 => 'Yes',
  1111. },
  1112. },
  1113. 21 => {
  1114. Name => 'MinoltaDate',
  1115. Groups => { 2 => 'Time' },
  1116. Shift => 'Time',
  1117. ValueConv => 'sprintf("%4d:%.2d:%.2d",$val>>16,($val&0xff00)>>8,$val&0xff)',
  1118. ValueConvInv => 'my @a=($val=~/(\d+):(\d+):(\d+)/); @a ? ($a[0]<<16)+($a[1]<<8)+$a[2] : undef',
  1119. },
  1120. 22 => {
  1121. Name => 'MinoltaTime',
  1122. Groups => { 2 => 'Time' },
  1123. Shift => 'Time',
  1124. ValueConv => 'sprintf("%.2d:%.2d:%.2d",$val>>16,($val&0xff00)>>8,$val&0xff)',
  1125. ValueConvInv => 'my @a=($val=~/(\d+):(\d+):(\d+)/); @a ? ($a[0]<<16)+($a[1]<<8)+$a[2] : undef',
  1126. },
  1127. 23 => {
  1128. Name => 'MaxAperture',
  1129. ValueConv => '2 ** (($val-8)/16)',
  1130. ValueConvInv => '8 + 16*log($val)/log(2)',
  1131. PrintConv => 'sprintf("%.1f",$val)',
  1132. PrintConvInv => '$val',
  1133. },
  1134. 26 => {
  1135. Name => 'FileNumberMemory',
  1136. PrintConv => \%offOn,
  1137. },
  1138. 27 => 'LastFileNumber',
  1139. 28 => {
  1140. Name => 'ColorBalanceRed',
  1141. ValueConv => '$val / 256',
  1142. ValueConvInv => '$val * 256',
  1143. },
  1144. 29 => {
  1145. Name => 'ColorBalanceGreen',
  1146. ValueConv => '$val / 256',
  1147. ValueConvInv => '$val * 256',
  1148. },
  1149. 30 => {
  1150. Name => 'ColorBalanceBlue',
  1151. ValueConv => '$val / 256',
  1152. ValueConvInv => '$val * 256',
  1153. },
  1154. 31 => {
  1155. Name => 'Saturation',
  1156. ValueConv => '$val - ($self->{Model}=~/DiMAGE A2/ ? 5 : 3)',
  1157. ValueConvInv => '$val + ($self->{Model}=~/DiMAGE A2/ ? 5 : 3)',
  1158. %Image::ExifTool::Exif::printParameter,
  1159. },
  1160. 32 => {
  1161. Name => 'Contrast',
  1162. ValueConv => '$val - ($self->{Model}=~/DiMAGE A2/ ? 5 : 3)',
  1163. ValueConvInv => '$val + ($self->{Model}=~/DiMAGE A2/ ? 5 : 3)',
  1164. %Image::ExifTool::Exif::printParameter,
  1165. },
  1166. 33 => {
  1167. Name => 'Sharpness',
  1168. PrintConv => {
  1169. 0 => 'Hard',
  1170. 1 => 'Normal',
  1171. 2 => 'Soft',
  1172. },
  1173. },
  1174. 34 => {
  1175. Name => 'SubjectProgram',
  1176. PrintConv => {
  1177. 0 => 'None',
  1178. 1 => 'Portrait',
  1179. 2 => 'Text',
  1180. 3 => 'Night portrait',
  1181. 4 => 'Sunset',
  1182. 5 => 'Sports action',
  1183. },
  1184. },
  1185. 35 => {
  1186. Name => 'FlashExposureComp',
  1187. Description => 'Flash Exposure Compensation',
  1188. ValueConv => '($val - 6) / 3',
  1189. ValueConvInv => '$val * 3 + 6',
  1190. PrintConv => 'Image::ExifTool::Exif::PrintFraction($val)',
  1191. PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
  1192. },
  1193. 36 => {
  1194. Name => 'ISOSetting',
  1195. PrintConv => {
  1196. 0 => 100,
  1197. 1 => 200,
  1198. 2 => 400,
  1199. 3 => 800,
  1200. 4 => 'Auto',
  1201. 5 => 64,
  1202. },
  1203. },
  1204. 37 => {
  1205. Name => 'MinoltaModelID',
  1206. PrintConv => {
  1207. 0 => 'DiMAGE 7, X1, X21 or X31',
  1208. 1 => 'DiMAGE 5',
  1209. 2 => 'DiMAGE S304',
  1210. 3 => 'DiMAGE S404',
  1211. 4 => 'DiMAGE 7i',
  1212. 5 => 'DiMAGE 7Hi',
  1213. 6 => 'DiMAGE A1',
  1214. 7 => 'DiMAGE A2 or S414',
  1215. },
  1216. },
  1217. 38 => {
  1218. Name => 'IntervalMode',
  1219. PrintConv => {
  1220. 0 => 'Still Image',
  1221. 1 => 'Time-lapse Movie',
  1222. },
  1223. },
  1224. 39 => {
  1225. Name => 'FolderName',
  1226. PrintConv => {
  1227. 0 => 'Standard Form',
  1228. 1 => 'Data Form',
  1229. },
  1230. },
  1231. 40 => {
  1232. Name => 'ColorMode',
  1233. PrintConv => {
  1234. 0 => 'Natural color',
  1235. 1 => 'Black & White',
  1236. 2 => 'Vivid color',
  1237. 3 => 'Solarization',
  1238. 4 => 'Adobe RGB',
  1239. },
  1240. },
  1241. 41 => {
  1242. Name => 'ColorFilter',
  1243. ValueConv => '$val - ($self->{Model}=~/DiMAGE A2/ ? 5 : 3)',
  1244. ValueConvInv => '$val + ($self->{Model}=~/DiMAGE A2/ ? 5 : 3)',
  1245. },
  1246. 42 => 'BWFilter',
  1247. 43 => {
  1248. Name => 'InternalFlash',
  1249. PrintConv => {
  1250. 0 => 'No',
  1251. 1 => 'Fired',
  1252. },
  1253. },
  1254. 44 => {
  1255. Name => 'Brightness',
  1256. ValueConv => '$val/8 - 6',
  1257. ValueConvInv => '($val + 6) * 8',
  1258. },
  1259. 45 => 'SpotFocusPointX',
  1260. 46 => 'SpotFocusPointY',
  1261. 47 => {
  1262. Name => 'WideFocusZone',
  1263. PrintConv => {
  1264. 0 => 'No zone',
  1265. 1 => 'Center zone (horizontal orientation)',
  1266. 2 => 'Center zone (vertical orientation)',
  1267. 3 => 'Left zone',
  1268. 4 => 'Right zone',
  1269. },
  1270. },
  1271. 48 => {
  1272. Name => 'FocusMode',
  1273. PrintConv => {
  1274. 0 => 'AF',
  1275. 1 => 'MF',
  1276. },
  1277. },
  1278. 49 => {
  1279. Name => 'FocusArea',
  1280. PrintConv => {
  1281. 0 => 'Wide Focus (normal)',
  1282. 1 => 'Spot Focus',
  1283. },
  1284. },
  1285. 50 => {
  1286. Name => 'DECPosition',
  1287. PrintConv => {
  1288. 0 => 'Exposure',
  1289. 1 => 'Contrast',
  1290. 2 => 'Saturation',
  1291. 3 => 'Filter',
  1292. },
  1293. },
  1294. # 7Hi only:
  1295. 51 => {
  1296. Name => 'ColorProfile',
  1297. Condition => '$self->{Model} eq "DiMAGE 7Hi"',
  1298. Notes => 'DiMAGE 7Hi only',
  1299. PrintConv => {
  1300. 0 => 'Not Embedded',
  1301. 1 => 'Embedded',
  1302. },
  1303. },
  1304. # (the following may be entry 51 for other models?)
  1305. 52 => {
  1306. Name => 'DataImprint',
  1307. Condition => '$self->{Model} eq "DiMAGE 7Hi"',
  1308. Notes => 'DiMAGE 7Hi only',
  1309. PrintConv => {
  1310. 0 => 'None',
  1311. 1 => 'YYYY/MM/DD',
  1312. 2 => 'MM/DD/HH:MM',
  1313. 3 => 'Text',
  1314. 4 => 'Text + ID#',
  1315. },
  1316. },
  1317. 63 => { #9
  1318. Name => 'FlashMetering',
  1319. PrintConv => {
  1320. 0 => 'ADI (Advanced Distance Integration)',
  1321. 1 => 'Pre-flash TTL',
  1322. 2 => 'Manual flash control',
  1323. },
  1324. },
  1325. );
  1326. # Camera settings used by the 7D (ref 8)
  1327. %Image::ExifTool::Minolta::CameraSettings7D = (
  1328. PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
  1329. WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
  1330. CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
  1331. WRITABLE => 1,
  1332. PRIORITY => 0,
  1333. GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
  1334. FORMAT => 'int16u',
  1335. FIRST_ENTRY => 0,
  1336. 0x00 => {
  1337. Name => 'ExposureMode',
  1338. PrintConv => {
  1339. 0 => 'Program',
  1340. 1 => 'Aperture Priority',
  1341. 2 => 'Shutter Priority',
  1342. 3 => 'Manual',
  1343. 4 => 'Auto',
  1344. 5 => 'Program-shift A',
  1345. 6 => 'Program-shift S',
  1346. },
  1347. },
  1348. 0x02 => { #PH
  1349. Name => 'MinoltaImageSize',
  1350. PrintConv => {
  1351. 0 => 'Large',
  1352. 1 => 'Medium',
  1353. 2 => 'Small',
  1354. },
  1355. },
  1356. 0x03 => {
  1357. Name => 'MinoltaQuality',
  1358. PrintConv => {
  1359. 0 => 'RAW',
  1360. 16 => 'Fine', #PH
  1361. 32 => 'Normal', #PH
  1362. 34 => 'RAW+JPEG',
  1363. 48 => 'Economy', #PH
  1364. },
  1365. },
  1366. 0x04 => {
  1367. Name => 'WhiteBalance',
  1368. PrintConv => {
  1369. 0 => 'Auto',
  1370. 1 => 'Daylight',
  1371. 2 => 'Shade',
  1372. 3 => 'Cloudy',
  1373. 4 => 'Tungsten',
  1374. 5 => 'Fluorescent',
  1375. 0x100 => 'Kelvin',
  1376. 0x200 => 'Manual',
  1377. },
  1378. },
  1379. 0x0e => {
  1380. Name => 'FocusMode',
  1381. PrintConv => {
  1382. 0 => 'AF-S',
  1383. 1 => 'AF-C',
  1384. # Note: these two are reversed in ref 8
  1385. 3 => 'Manual', #JD
  1386. 4 => 'AF-A', #JD
  1387. },
  1388. },
  1389. 0x10 => {
  1390. Name => 'AFPoints',
  1391. PrintConv => {
  1392. 0 => '(none)',
  1393. BITMASK => {
  1394. 0 => 'Center',
  1395. 1 => 'Top',
  1396. 2 => 'Top-right',
  1397. 3 => 'Right',
  1398. 4 => 'Bottom-right',
  1399. 5 => 'Bottom',
  1400. 6 => 'Bottom-left',
  1401. 7 => 'Left',
  1402. 8 => 'Top-left',
  1403. },
  1404. },
  1405. },
  1406. 0x15 => {
  1407. Name => 'Flash',
  1408. PrintConv => \%offOn,
  1409. },
  1410. 0x16 => { #10
  1411. Name => 'FlashMode',
  1412. PrintConv => {
  1413. 0 => 'Normal',
  1414. 1 => 'Red-eye reduction',
  1415. 2 => 'Rear flash sync',
  1416. },
  1417. },
  1418. 0x1c => {
  1419. Name => 'ISOSetting',
  1420. PrintConv => {
  1421. 0 => 'Auto', #10
  1422. 1 => 100,
  1423. 3 => 200,
  1424. 4 => 400,
  1425. 5 => 800,
  1426. 6 => 1600,
  1427. 7 => 3200,
  1428. },
  1429. },
  1430. 0x1e => {
  1431. Name => 'ExposureCompensation',
  1432. Format => 'int16s',
  1433. ValueConv => '$val / 24',
  1434. ValueConvInv => '$val * 24',
  1435. PrintConv => 'Image::ExifTool::Exif::PrintFraction($val)',
  1436. PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
  1437. },
  1438. 0x25 => {
  1439. Name => 'ColorSpace',
  1440. PrintConv => {
  1441. 0 => 'Natural sRGB',
  1442. 1 => 'Natural+ sRGB',
  1443. 4 => 'Adobe RGB',
  1444. },
  1445. },
  1446. 0x26 => {
  1447. Name => 'Sharpness',
  1448. ValueConv => '$val - 10',
  1449. ValueConvInv => '$val + 10',
  1450. },
  1451. 0x27 => {
  1452. Name => 'Contrast',
  1453. ValueConv => '$val - 10',
  1454. ValueConvInv => '$val + 10',
  1455. },
  1456. 0x28 => {
  1457. Name => 'Saturation',
  1458. ValueConv => '$val - 10',
  1459. ValueConvInv => '$val + 10',
  1460. },
  1461. 0x2d => 'FreeMemoryCardImages',
  1462. 0x3f => {
  1463. Format => 'int16s',
  1464. Name => 'ColorTemperature',
  1465. ValueConv => '$val * 100',
  1466. ValueConvInv => '$val / 100',
  1467. },
  1468. 0x40 => { #10
  1469. Name => 'HueAdjustment',
  1470. ValueConv => '$val - 10',
  1471. ValueConvInv => '$val + 10',
  1472. },
  1473. 0x46 => {
  1474. Name => 'Rotation',
  1475. PrintConv => {
  1476. 72 => 'Horizontal (normal)',
  1477. 76 => 'Rotate 90 CW',
  1478. 82 => 'Rotate 270 CW',
  1479. },
  1480. },
  1481. 0x47 => {
  1482. Name => 'FNumber',
  1483. ValueConv => '2 ** (($val-8)/16)',
  1484. ValueConvInv => '8 + 16*log($val)/log(2)',
  1485. PrintConv => 'sprintf("%.1f",$val)',
  1486. PrintConvInv => '$val',
  1487. },
  1488. 0x48 => {
  1489. Name => 'ExposureTime',
  1490. ValueConv => '2 ** ((48-$val)/8)',
  1491. ValueConvInv => '48 - 8*log($val)/log(2)',
  1492. PrintConv => 'Image::ExifTool::Exif::PrintExposureTime($val)',
  1493. PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
  1494. },
  1495. 0x4a => 'FreeMemoryCardImages',
  1496. 0x5e => {
  1497. Name => 'ImageNumber',
  1498. Notes => q{
  1499. this information may appear at index 98 (0x62), depending on firmware
  1500. version
  1501. },
  1502. ValueConv => '$val + 1',
  1503. ValueConvInv => '$val - 1',
  1504. },
  1505. 0x60 => {
  1506. Name => 'NoiseReduction',
  1507. PrintConv => \%offOn,
  1508. },
  1509. 0x62 => {
  1510. Name => 'ImageNumber2',
  1511. ValueConv => '$val + 1',
  1512. ValueConvInv => '$val - 1',
  1513. },
  1514. 0x71 => {
  1515. Name => 'ImageStabilization',
  1516. PrintConv => \%offOn,
  1517. },
  1518. 0x75 => {
  1519. Name => 'ZoneMatchingOn',
  1520. PrintConv => \%offOn,
  1521. },
  1522. );
  1523. # Camera settings used by the 5D (ref 8)
  1524. %Image::ExifTool::Minolta::CameraSettings5D = (
  1525. PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
  1526. WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
  1527. CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
  1528. WRITABLE => 1,
  1529. PRIORITY => 0,
  1530. GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
  1531. FORMAT => 'int16u',
  1532. FIRST_ENTRY => 0,
  1533. 0x0a => {
  1534. Name => 'ExposureMode',
  1535. PrintConv => {
  1536. 0 => 'Program',
  1537. 1 => 'Aperture Priority',
  1538. 2 => 'Shutter Priority',
  1539. 3 => 'Manual',
  1540. 4 => 'Auto?',
  1541. 4131 => 'Connected Copying?',
  1542. },
  1543. },
  1544. 0x0c => { #PH
  1545. Name => 'MinoltaImageSize',
  1546. PrintConv => {
  1547. 0 => 'Large',
  1548. 1 => 'Medium',
  1549. 2 => 'Small',
  1550. },
  1551. },
  1552. 0x0d => {
  1553. Name => 'MinoltaQuality',
  1554. PrintConv => {
  1555. 0 => 'RAW',
  1556. 16 => 'Fine', #PH
  1557. 32 => 'Normal', #PH
  1558. 34 => 'RAW+JPEG',
  1559. 48 => 'Economy', #PH
  1560. },
  1561. },
  1562. 0x0e => {
  1563. Name => 'WhiteBalance',
  1564. PrintConv => {
  1565. 0 => 'Auto',
  1566. 1 => 'Daylight',
  1567. 2 => 'Cloudy',
  1568. 3 => 'Shade',
  1569. 4 => 'Tungsten',
  1570. 5 => 'Fluorescent',
  1571. 6 => 'Flash',
  1572. 0x100 => 'Kelvin',
  1573. 0x200 => 'Manual',
  1574. },
  1575. },
  1576. # 0x0f-0x11 something to do with WB RGB levels as shot? (PH)
  1577. # 0x12-0x17 RGB levels for other WB modes (with G missing)? (PH)
  1578. 0x1f => { #PH
  1579. Name => 'Flash',
  1580. PrintConv => {
  1581. 0 => 'Did not fire',
  1582. 1 => 'Fired',
  1583. },
  1584. },
  1585. 0x20 => { #10
  1586. Name => 'FlashMode',
  1587. PrintConv => {
  1588. 0 => 'Normal',
  1589. 1 => 'Red-eye reduction',
  1590. 2 => 'Rear flash sync',
  1591. },
  1592. },
  1593. 0x25 => {
  1594. Name => 'MeteringMode',
  1595. PrintConv => {
  1596. 0 => 'Multi-segment',
  1597. 1 => 'Center-weighted average',
  1598. 2 => 'Spot',
  1599. },
  1600. },
  1601. 0x26 => {
  1602. Name => 'ISOSetting',
  1603. PrintConv => {
  1604. 0 => 'Auto',
  1605. 1 => 100,
  1606. 3 => 200,
  1607. 4 => 400,
  1608. 5 => 800,
  1609. 6 => 1600,
  1610. 7 => 3200,
  1611. 8 => '200 (Zone Matching High)',
  1612. 10 => '80 (Zone Matching Low)',
  1613. },
  1614. },
  1615. # looks wrong:
  1616. # 0x28 => { #10
  1617. # Name => 'ExposureCompensation',
  1618. # ValueConv => '$val / 24',
  1619. # ValueConvInv => '$val * 24',
  1620. # },
  1621. 0x2f => { #10
  1622. Name => 'ColorSpace',
  1623. PrintConv => {
  1624. 0 => 'Natural sRGB',
  1625. 1 => 'Natural+ sRGB',
  1626. 2 => 'Monochrome',
  1627. 4 => 'Adobe RGB (ICC)',
  1628. 5 => 'Adobe RGB',
  1629. },
  1630. },
  1631. 0x30 => {
  1632. Name => 'Sharpness',
  1633. ValueConv => '$val - 10',
  1634. ValueConvInv => '$val + 10',
  1635. },
  1636. 0x31 => {
  1637. Name => 'Contrast',
  1638. ValueConv => '$val - 10',
  1639. ValueConvInv => '$val + 10',
  1640. },
  1641. 0x32 => {
  1642. Name => 'Saturation',
  1643. ValueConv => '$val - 10',
  1644. ValueConvInv => '$val + 10',
  1645. },
  1646. 0x35 => { #PH
  1647. Name => 'ExposureTime',
  1648. ValueConv => '2 ** ((48-$val)/8)',
  1649. ValueConvInv => '48 - 8*log($val)/log(2)',
  1650. PrintConv => 'Image::ExifTool::Exif::PrintExposureTime($val)',
  1651. PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
  1652. },
  1653. 0x36 => { #PH
  1654. Name => 'FNumber',
  1655. ValueConv => '2 ** (($val-8)/16)',
  1656. ValueConvInv => '8 + 16*log($val)/log(2)',
  1657. PrintConv => 'sprintf("%.1f",$val)',
  1658. PrintConvInv => '$val',
  1659. },
  1660. 0x37 => 'FreeMemoryCardImages',
  1661. # 0x38 definitely not related to exposure comp as in ref 8 (PH)
  1662. 0x49 => { #PH
  1663. Name => 'ColorTemperature',
  1664. Format => 'int16s',
  1665. ValueConv => '$val * 100',
  1666. ValueConvInv => '$val / 100',
  1667. },
  1668. 0x4a => { #10
  1669. Name => 'HueAdjustment',
  1670. ValueConv => '$val - 10',
  1671. ValueConvInv => '$val + 10',
  1672. },
  1673. 0x50 => {
  1674. Name => 'Rotation',
  1675. PrintConv => {
  1676. 72 => 'Horizontal (normal)',
  1677. 76 => 'Rotate 90 CW',
  1678. 82 => 'Rotate 270 CW',
  1679. },
  1680. },
  1681. 0x53 => {
  1682. Name => 'ExposureCompensation',
  1683. ValueConv => '$val / 100 - 3',
  1684. ValueConvInv => '($val + 3) * 100',
  1685. PrintConv => 'Image::ExifTool::Exif::PrintFraction($val)',
  1686. PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
  1687. },
  1688. 0x54 => 'FreeMemoryCardImages',
  1689. 0x65 => { #10
  1690. Name => 'Rotation',
  1691. PrintConv => {
  1692. 0 => 'Horizontal (normal)',
  1693. 1 => 'Rotate 90 CW',
  1694. 2 => 'Rotate 270 CW',
  1695. },
  1696. },
  1697. # 0x66 maybe program mode or some setting like this? (PH)
  1698. 0x6e => { #10
  1699. Name => 'ColorTemperature',
  1700. Format => 'int16s',
  1701. ValueConv => '$val * 100',
  1702. ValueConvInv => '$val / 100',
  1703. },
  1704. 0x71 => { #10
  1705. Name => 'PictureFinish',
  1706. PrintConv => {
  1707. 0 => 'Natural',
  1708. 1 => 'Natural+',
  1709. 2 => 'Portrait',
  1710. 3 => 'Wind Scene',
  1711. 4 => 'Evening Scene',
  1712. 5 => 'Night Scene',
  1713. 6 => 'Night Portrait',
  1714. 7 => 'Monochrome',
  1715. 8 => 'Adobe RGB',
  1716. 9 => 'Adobe RGB (ICC)',
  1717. },
  1718. },
  1719. # 0x95 FlashStrength? (PH)
  1720. # 0xa4 similar information to 0x27, except with different values
  1721. 0xae => {
  1722. Name => 'ImageNumber',
  1723. ValueConv => '$val + 1',
  1724. ValueConvInv => '$val - 1',
  1725. },
  1726. 0xb0 => {
  1727. Name => 'NoiseReduction',
  1728. PrintConv => \%offOn,
  1729. },
  1730. 0xbd => {
  1731. Name => 'ImageStabilization',
  1732. PrintConv => \%offOn,
  1733. },
  1734. );
  1735. # Camera settings used by the Sony DSLR-A100 (ref 20)
  1736. %Image::ExifTool::Minolta::CameraInfoA100 = (
  1737. PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
  1738. WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
  1739. CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
  1740. NOTES => 'Camera information for the Sony DSLR-A100.',
  1741. WRITABLE => 1,
  1742. PRIORITY => 0, # may not be as reliable as other information
  1743. GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
  1744. FIRST_ENTRY => 0,
  1745. 0x01 => { #PH
  1746. Name => 'AFSensorActive',
  1747. PrintConv => {
  1748. 0 => 'Top-right',
  1749. 1 => 'Bottom-right',
  1750. 2 => 'Bottom',
  1751. 3 => 'Middle Horizontal',
  1752. 4 => 'Center Vertical',
  1753. 5 => 'Top',
  1754. 6 => 'Top-left',
  1755. 7 => 'Bottom-left',
  1756. },
  1757. },
  1758. 0x02 => {
  1759. Name => 'AFStatusActiveSensor',
  1760. %afStatusInfo,
  1761. Notes => q{
  1762. the focus status at shutter release. May not reflect the status after
  1763. focusing if the image is focused then recomposed
  1764. },
  1765. },
  1766. 0x04 => { Name => 'AFStatusTop-right', %afStatusInfo },
  1767. 0x06 => { Name => 'AFStatusBottom-right', %afStatusInfo },
  1768. 0x08 => { Name => 'AFStatusBottom', %afStatusInfo },
  1769. 0x0a => {
  1770. Name => 'AFStatusMiddleHorizontal',
  1771. %afStatusInfo,
  1772. Notes => q{
  1773. any of the three horizontal sensors at the middle of the focus frame: Left,
  1774. Center or Right
  1775. },
  1776. },
  1777. 0x0c => { Name => 'AFStatusCenterVertical', %afStatusInfo },
  1778. 0x0e => { Name => 'AFStatusTop', %afStatusInfo },
  1779. 0x10 => { Name => 'AFStatusTop-left', %afStatusInfo },
  1780. 0x12 => { Name => 'AFStatusBottom-left', %afStatusInfo },
  1781. 0x14 => {
  1782. Name => 'FocusLocked',
  1783. # (Focus can be locked in all modes other than Manual and Continuous,
  1784. # and the latter can be overridden by pushing the Spot AF button)
  1785. PrintConv => {
  1786. 0 => 'Manual Focus',
  1787. 4 => 'No',
  1788. 16 => 'Continuous Focus',
  1789. 64 => 'Yes',
  1790. },
  1791. },
  1792. 0x15 => {
  1793. Name => 'AFPoint',
  1794. PrintConvColumns => 2,
  1795. PrintConv => {
  1796. 0 => 'Auto',
  1797. 1 => 'Center',
  1798. 2 => 'Top',
  1799. 3 => 'Top-right',
  1800. 4 => 'Right',
  1801. 5 => 'Bottom-right',
  1802. 6 => 'Bottom',
  1803. 7 => 'Bottom-left',
  1804. 8 => 'Left',
  1805. 9 => 'Top-left',
  1806. },
  1807. },
  1808. 0x16 => {
  1809. Name => 'AFMode',
  1810. PrintConv => {
  1811. 0 => 'DMF',
  1812. 1 => 'AF-S',
  1813. 2 => 'AF-C',
  1814. 3 => 'AF-A',
  1815. },
  1816. },
  1817. 0x2d => { Name => 'AFStatusLeft', %afStatusInfo },
  1818. 0x2f => { Name => 'AFStatusCenterHorizontal',%afStatusInfo },
  1819. 0x31 => { Name => 'AFStatusRight', %afStatusInfo },
  1820. 0x33 => {
  1821. Name => 'AFAreaMode',
  1822. PrintConv => {
  1823. 0 => 'Wide',
  1824. 1 => 'Local',
  1825. 2 => 'Spot',
  1826. },
  1827. },
  1828. );
  1829. # Image stabilization inforamtion used by the Sony DSLR-A100 (ref 20)
  1830. %Image::ExifTool::Minolta::ISInfoA100 = (
  1831. PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
  1832. WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
  1833. CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
  1834. NOTES => 'Image stabilization information for the Sony DSLR-A100.',
  1835. WRITABLE => 1,
  1836. PRIORITY => 0, # may not be as reliable as other information
  1837. GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
  1838. FIRST_ENTRY => 0,
  1839. 0 => {
  1840. Name => 'ImageStabilization',
  1841. Format => 'int16u',
  1842. PrintHex => 1,
  1843. PrintConv => {
  1844. 0x0000 => 'Off',
  1845. 0x2784 => 'On',
  1846. },
  1847. },
  1848. );
  1849. # Camera settings used by the Sony DSLR-A100 (ref PH)
  1850. %Image::ExifTool::Minolta::CameraSettingsA100 = (
  1851. PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
  1852. WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
  1853. CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
  1854. NOTES => 'Camera settings information for the Sony DSLR-A100.',
  1855. WRITABLE => 1,
  1856. PRIORITY => 0, # may not be as reliable as other information
  1857. GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
  1858. FORMAT => 'int16u',
  1859. FIRST_ENTRY => 0,
  1860. 0x00 => { #15
  1861. Name => 'ExposureMode',
  1862. PrintHex => 1,
  1863. PrintConv => {
  1864. 0 => 'Program',
  1865. 1 => 'Aperture Priority',
  1866. 2 => 'Shutter Priority',
  1867. 3 => 'Manual',
  1868. 4 => 'Auto',
  1869. 5 => 'Program Shift A', #20
  1870. 6 => 'Program Shift S', #20
  1871. 0x1013 => 'Portrait',
  1872. 0x1023 => 'Sports', #20
  1873. 0x1033 => 'Sunset', #20
  1874. 0x1043 => 'Night View/Portrait', #20
  1875. 0x1053 => 'Landscape',
  1876. 0x1083 => 'Macro', #20
  1877. },
  1878. },
  1879. 0x01 => { #15
  1880. Name => 'ExposureCompensationSetting',
  1881. # (differs from ExposureCompensation for exposure bracketing shots, ref 20)
  1882. ValueConv => '$val / 100 - 3',
  1883. ValueConvInv => 'int(($val + 3) * 100 + 0.5)',
  1884. },
  1885. 0x05 => { #20 (requires external flash)
  1886. Name => 'HighSpeedSync',
  1887. PrintConv => \%offOn,
  1888. },
  1889. 0x06 => { #20
  1890. Name => 'ShutterSpeedSetting',
  1891. Notes => 'used only in M and S exposure modes',
  1892. ValueConv => '$val ? 2 ** (6 - $val/8) : 0',
  1893. ValueConvInv => '$val ? int((6 - log($val) / log(2)) * 8 + 0.5) : 0',
  1894. PrintConv => '$val ? Image::ExifTool::Exif::PrintExposureTime($val) : "Bulb"',
  1895. PrintConvInv => 'lc($val) eq "bulb" ? 0 : Image::ExifTool::Exif::ConvertFraction($val)',
  1896. },
  1897. 0x07 => { #20
  1898. Name => 'ApertureSetting',
  1899. Notes => 'used only in M and A exposure modes',
  1900. ValueConv => '2 ** (($val/8 - 1) / 2)',
  1901. ValueConvInv => 'int((log($val) * 2 / log(2) + 1) * 8 + 0.5)',
  1902. PrintConv => 'Image::ExifTool::Exif::PrintFNumber($val)',
  1903. PrintConvInv => '$val',
  1904. },
  1905. 0x08 => { #20
  1906. Name => 'ExposureTime',
  1907. ValueConv => '$val ? 2 ** (6 - $val/8) : 0',
  1908. ValueConvInv => '$val ? int((6 - log($val) / log(2)) * 8 + 0.5) : 0',
  1909. PrintConv => '$val ? Image::ExifTool::Exif::PrintExposureTime($val) : "Bulb"',
  1910. PrintConvInv => 'lc($val) eq "bulb" ? 0 : Image::ExifTool::Exif::ConvertFraction($val)',
  1911. },
  1912. 0x09 => { #15/20
  1913. Name => 'FNumber',
  1914. ValueConv => '2 ** (($val/8 - 1) / 2)',
  1915. ValueConvInv => 'int((log($val) * 2 / log(2) + 1) * 8 + 0.5)',
  1916. PrintConv => 'Image::ExifTool::Exif::PrintFNumber($val)',
  1917. PrintConvInv => '$val',
  1918. },
  1919. 0x0a => { #20
  1920. Name => 'DriveMode2', # (one of these is probably DriveModeSetting like Sony - PH)
  1921. PrintHex => 1,
  1922. PrintConv => {
  1923. 0x000 => 'Self-timer 10 sec',
  1924. 0x001 => 'Continuous',
  1925. 0x302 => 'Single-frame Bracketing Low',
  1926. 0x702 => 'Single-frame Bracketing High',
  1927. 0x303 => 'Continous Bracketing Low',
  1928. 0x703 => 'Continuous Bracketing High',
  1929. 0x004 => 'Self-timer 2 sec',
  1930. 0x005 => 'Single Frame',
  1931. 0x008 => 'White Balance Bracketing Low',
  1932. 0x009 => 'White Balance Bracketing High',
  1933. },
  1934. },
  1935. 0x0b => { #15
  1936. Name => 'WhiteBalance',
  1937. PrintHex => 1,
  1938. PrintConv => {
  1939. 0 => 'Auto',
  1940. 1 => 'Daylight',
  1941. 2 => 'Cloudy',
  1942. 3 => 'Shade',
  1943. 4 => 'Tungsten',
  1944. 5 => 'Fluorescent',
  1945. 6 => 'Flash',
  1946. 0x100 => 'Kelvin',
  1947. 0x200 => 'Manual',
  1948. },
  1949. },
  1950. 0x0c => { #20
  1951. Name => 'FocusMode',
  1952. PrintConv => {
  1953. 0 => 'AF-S',
  1954. 1 => 'AF-C',
  1955. 4 => 'AF-A',
  1956. 5 => 'Manual',
  1957. 6 => 'DMF',
  1958. },
  1959. },
  1960. 0x0d => { #20
  1961. Name => 'AFPointSelected', # (v8.88: renamed from LocalAFAreaPoint)
  1962. # (9-point centre-cross AF system, ref JR)
  1963. PrintConv => {
  1964. 1 => 'Center',
  1965. 2 => 'Top',
  1966. 3 => 'Top-right',
  1967. 4 => 'Right',
  1968. 5 => 'Bottom-right',
  1969. 6 => 'Bottom',
  1970. 7 => 'Bottom-left',
  1971. 8 => 'Left',
  1972. 9 => 'Top-left',
  1973. },
  1974. },
  1975. 0x0e => { #20
  1976. Name => 'AFAreaMode',
  1977. PrintConv => {
  1978. 0 => 'Wide',
  1979. 1 => 'Local',
  1980. 2 => 'Spot',
  1981. },
  1982. },
  1983. 0x0f => { #20
  1984. Name => 'FlashMode',
  1985. PrintConv => {
  1986. 0 => 'Auto',
  1987. 2 => 'Rear Sync',
  1988. 3 => 'Wireless',
  1989. 4 => 'Fill Flash',
  1990. },
  1991. },
  1992. 0x10 => { #20
  1993. Name => 'FlashExposureCompSet',
  1994. Description => 'Flash Exposure Comp. Setting',
  1995. # (may differ from FlashExposureComp for flash bracketing shots)
  1996. ValueConv => '$val / 100 - 3',
  1997. ValueConvInv => 'int(($val + 3) * 100 + 0.5)',
  1998. },
  1999. 0x12 => { #15/20
  2000. Name => 'MeteringMode',
  2001. PrintConv => {
  2002. 0 => 'Multi-segment',
  2003. 1 => 'Center-weighted average',
  2004. 2 => 'Spot',
  2005. },
  2006. },
  2007. 0x13 => { #15/20
  2008. Name => 'ISOSetting',
  2009. PrintConv => {
  2010. 0 => 'Auto',
  2011. 48 => 100,
  2012. 56 => 200,
  2013. 64 => 400,
  2014. 72 => 800,
  2015. 80 => 1600,
  2016. 174 => '80 (Zone Matching Low)',
  2017. 184 => '200 (Zone Matching High)',
  2018. },
  2019. },
  2020. 0x14 => { #15/20
  2021. Name => 'ZoneMatchingMode',
  2022. PrintConv => {
  2023. 0 => 'Off',
  2024. 1 => 'Standard',
  2025. 2 => 'Advanced',
  2026. },
  2027. },
  2028. 0x15 => { #15/20
  2029. Name => 'DynamicRangeOptimizer',
  2030. # this and the Sony tag 0xb025 DynamicRangeOptimizer give the actual mode
  2031. # applied to the image. The Minolta CameraSettingsA100 0x0027 tag gives
  2032. # the setting. There is a longish list of scenarios in which, regardless
  2033. # of the latter, DRO is not applied (ref 20)
  2034. Notes => 'as applied to image',
  2035. PrintConv => {
  2036. 0 => 'Off',
  2037. 1 => 'Standard',
  2038. 2 => 'Advanced',
  2039. },
  2040. },
  2041. 0x16 => { #15
  2042. Name => 'ColorMode',
  2043. PrintConv => {
  2044. 0 => 'Standard',
  2045. 1 => 'Vivid',
  2046. 2 => 'Portrait',
  2047. 3 => 'Landscape',
  2048. 4 => 'Sunset',
  2049. 5 => 'Night Scene',
  2050. 7 => 'B&W',
  2051. 8 => 'Adobe RGB',
  2052. },
  2053. },
  2054. 0x17 => { # 15/20
  2055. Name => 'ColorSpace',
  2056. PrintConv => {
  2057. 0 => 'sRGB',
  2058. 2 => 'B&W', #PH (A100)
  2059. 5 => 'Adobe RGB',
  2060. },
  2061. },
  2062. 0x18 => { #15
  2063. Name => 'Sharpness',
  2064. ValueConv => '$val - 10',
  2065. ValueConvInv => '$val + 10',
  2066. %Image::ExifTool::Exif::printParameter,
  2067. },
  2068. 0x19 => { #15
  2069. Name => 'Contrast',
  2070. ValueConv => '$val - 10',
  2071. ValueConvInv => '$val + 10',
  2072. %Image::ExifTool::Exif::printParameter,
  2073. },
  2074. 0x1a => { #15
  2075. Name => 'Saturation',
  2076. ValueConv => '$val - 10',
  2077. ValueConvInv => '$val + 10',
  2078. %Image::ExifTool::Exif::printParameter,
  2079. },
  2080. 0x1c => { #20
  2081. Name => 'FlashMetering',
  2082. PrintConv => {
  2083. 0 => 'ADI (Advanced Distance Integration)',
  2084. 1 => 'Pre-flash TTL',
  2085. },
  2086. },
  2087. 0x1d => { #20
  2088. Name => 'PrioritySetupShutterRelease',
  2089. PrintConv => {
  2090. 0 => 'AF',
  2091. 1 => 'Release',
  2092. },
  2093. },
  2094. 0x1e => { #PH
  2095. Name => 'DriveMode',
  2096. PrintConv => {
  2097. 0 => 'Single Frame',
  2098. 1 => 'Continuous',
  2099. 2 => 'Self-timer',
  2100. 3 => 'Continuous Bracketing',
  2101. 4 => 'Single-Frame Bracketing',
  2102. 5 => 'White Balance Bracketing',
  2103. },
  2104. },
  2105. 0x1f => { #20
  2106. Name => 'SelfTimerTime',
  2107. PrintConv => {
  2108. 0 => '10 s',
  2109. 4 => '2 s',
  2110. },
  2111. },
  2112. 0x20 => { #20
  2113. Name => 'ContinuousBracketing',
  2114. PrintHex => 1,
  2115. PrintConv => {
  2116. 0x303 => 'Low',
  2117. 0x703 => 'High',
  2118. },
  2119. },
  2120. 0x21 => { #20
  2121. Name => 'SingleFrameBracketing',
  2122. PrintHex => 1,
  2123. PrintConv => {
  2124. 0x302 => 'Low',
  2125. 0x702 => 'High',
  2126. },
  2127. },
  2128. 0x22 => { #20
  2129. Name => 'WhiteBalanceBracketing',
  2130. PrintHex => 1,
  2131. PrintConv => {
  2132. 0x08 => 'Low',
  2133. 0x09 => 'High',
  2134. },
  2135. },
  2136. 0x023 => { #20
  2137. Name => 'WhiteBalanceSetting',
  2138. PrintHex => 1,
  2139. # (not sure what bit 0x8000 indicates)
  2140. PrintConv => {
  2141. 0 => 'Auto',
  2142. 1 => 'Preset',
  2143. 2 => 'Custom',
  2144. 3 => 'Color Temperature/Color Filter',
  2145. 0x8001 => 'Preset',
  2146. 0x8002 => 'Custom',
  2147. 0x8003 => 'Color Temperature/Color Filter',
  2148. },
  2149. },
  2150. 0x24 => { #20
  2151. Name => 'PresetWhiteBalance',
  2152. PrintConv => {
  2153. 1 => 'Daylight',
  2154. 2 => 'Cloudy',
  2155. 3 => 'Shade',
  2156. 4 => 'Tungsten',
  2157. 5 => 'Fluorescent',
  2158. 6 => 'Flash',
  2159. },
  2160. },
  2161. 0x25 => { #20
  2162. Name => 'ColorTemperatureSetting',
  2163. PrintConv => {
  2164. 0 => 'Temperature',
  2165. 2 => 'Color Filter',
  2166. },
  2167. },
  2168. 0x26 => { #20
  2169. Name => 'CustomWBSetting',
  2170. PrintConv => {
  2171. 0 => 'Setup',
  2172. 1 => 'Recall',
  2173. },
  2174. },
  2175. 0x27 => { #20
  2176. Name => 'DynamicRangeOptimizerSetting',
  2177. Notes => 'as set in camera',
  2178. PrintConv => {
  2179. 0 => 'Off',
  2180. 1 => 'Standard',
  2181. 2 => 'Advanced',
  2182. },
  2183. },
  2184. 0x32 => 'FreeMemoryCardImages', #20
  2185. 0x34 => 'CustomWBRedLevel', #20
  2186. 0x35 => 'CustomWBGreenLevel', #20
  2187. 0x36 => 'CustomWBBlueLevel', #20
  2188. 0x37 => { #20
  2189. Name => 'CustomWBError',
  2190. PrintConv => {
  2191. 0 => 'OK',
  2192. 1 => 'Error',
  2193. },
  2194. },
  2195. 0x38 => { #20
  2196. Name => 'WhiteBalanceFineTune',
  2197. Format => 'int16s',
  2198. },
  2199. 0x39 => { #20
  2200. Name => 'ColorTemperature',
  2201. ValueConv => '$val * 100',
  2202. ValueConvInv => '$val / 100',
  2203. },
  2204. 0x3a => { #20
  2205. Name => 'ColorCompensationFilter',
  2206. Format => 'int16s',
  2207. Notes => 'ranges from -2 for green to +2 for magenta',
  2208. },
  2209. 0x3b => { #20
  2210. Name => 'SonyImageSize',
  2211. PrintConv => {
  2212. 0 => 'Standard',
  2213. 1 => 'Medium',
  2214. 2 => 'Small',
  2215. },
  2216. },
  2217. 0x3c => { #20
  2218. Name => 'SonyQuality',
  2219. PrintConv => {
  2220. 0 => 'RAW',
  2221. 32 => 'Fine',
  2222. 34 => 'RAW + JPEG',
  2223. 48 => 'Standard',
  2224. },
  2225. },
  2226. 0x3d => { #20
  2227. Name => 'InstantPlaybackTime',
  2228. PrintConv => '"$val s"',
  2229. PrintConvInv => '$val=~s/\s*s//; $val',
  2230. },
  2231. 0x3e => { #20
  2232. Name => 'InstantPlaybackSetup',
  2233. PrintConv => {
  2234. 0 => 'Image and Information',
  2235. 1 => 'Image Only',
  2236. # 2 appears to be unused
  2237. 3 => 'Image and Histogram',
  2238. },
  2239. },
  2240. 0x3f => { #PH
  2241. Name => 'NoiseReduction',
  2242. PrintConv => \%offOn,
  2243. },
  2244. 0x40 => { #20
  2245. Name => 'EyeStartAF',
  2246. PrintConv => \%onOff,
  2247. },
  2248. 0x41 => { #20
  2249. Name => 'RedEyeReduction',
  2250. PrintConv => \%offOn,
  2251. },
  2252. 0x42 => { #20
  2253. Name => 'FlashDefault',
  2254. PrintConv => {
  2255. 0 => 'Auto',
  2256. 1 => 'Fill Flash',
  2257. },
  2258. },
  2259. 0x43 => { #20
  2260. Name => 'AutoBracketOrder',
  2261. PrintConv => {
  2262. 0 => '0 - +',
  2263. 1 => '- 0 +',
  2264. },
  2265. },
  2266. 0x44 => { #20
  2267. Name => 'FocusHoldButton',
  2268. PrintConv => {
  2269. 0 => 'Focus Hold',
  2270. 1 => 'DOF Preview',
  2271. },
  2272. },
  2273. 0x45 => { #20
  2274. Name => 'AELButton',
  2275. PrintConv => {
  2276. 0 => 'Hold',
  2277. 1 => 'Toggle',
  2278. 2 => 'Spot Hold',
  2279. 3 => 'Spot Toggle',
  2280. },
  2281. },
  2282. 0x46 => { #20
  2283. Name => 'ControlDialSet',
  2284. PrintConv => {
  2285. 0 => 'Shutter Speed',
  2286. 1 => 'Aperture',
  2287. },
  2288. },
  2289. 0x47 => { #20
  2290. Name => 'ExposureCompensationMode',
  2291. PrintConv => {
  2292. 0 => 'Ambient and Flash',
  2293. 1 => 'Ambient Only',
  2294. },
  2295. },
  2296. 0x48 => { #20
  2297. Name => 'AFAssist',
  2298. PrintConv => \%onOff,
  2299. },
  2300. 0x49 => { #20
  2301. Name => 'CardShutterLock',
  2302. PrintConv => \%onOff,
  2303. },
  2304. 0x4a => { #20
  2305. Name => 'LensShutterLock',
  2306. PrintConv => \%onOff,
  2307. },
  2308. 0x4b => { #20
  2309. Name => 'AFAreaIllumination',
  2310. PrintConv => {
  2311. 0 => '0.3 s',
  2312. 1 => '0.6 s',
  2313. 2 => 'Off',
  2314. },
  2315. },
  2316. 0x4c => { #20
  2317. Name => 'MonitorDisplayOff',
  2318. PrintConv => {
  2319. 0 => 'Automatic',
  2320. 1 => 'Manual',
  2321. },
  2322. },
  2323. 0x4d => { #20
  2324. Name => 'RecordDisplay',
  2325. PrintConv => {
  2326. 0 => 'Auto Rotate',
  2327. 1 => 'Horizontal',
  2328. },
  2329. },
  2330. 0x4e => { #20
  2331. Name => 'PlayDisplay',
  2332. PrintConv => {
  2333. 0 => 'Auto Rotate',
  2334. 1 => 'Manual Rotate',
  2335. },
  2336. },
  2337. 0x50 => { #20
  2338. Name => 'ExposureIndicator',
  2339. SeparateTable => 'ExposureIndicator',
  2340. PrintConv => \%exposureIndicator,
  2341. },
  2342. 0x51 => { #20
  2343. Name => 'AELExposureIndicator',
  2344. Notes => 'also indicates exposure for next shot when bracketing',
  2345. SeparateTable => 'ExposureIndicator',
  2346. PrintConv => \%exposureIndicator,
  2347. },
  2348. 0x52 => { #20
  2349. Name => 'ExposureBracketingIndicatorLast',
  2350. Notes => 'indicator for last shot when bracketing',
  2351. SeparateTable => 'ExposureIndicator',
  2352. PrintConv => \%exposureIndicator,
  2353. },
  2354. 0x53 => { #20
  2355. Name => 'MeteringOffScaleIndicator',
  2356. Notes => 'two flashing triangles when under or over metering scale',
  2357. PrintConv => {
  2358. 0 => 'Within Range',
  2359. 1 => 'Under/Over Range',
  2360. 255 => 'Out of Range',
  2361. },
  2362. },
  2363. 0x54 => { #20
  2364. Name => 'FlashExposureIndicator',
  2365. SeparateTable => 'ExposureIndicator',
  2366. PrintConv => \%exposureIndicator,
  2367. },
  2368. 0x55 => { #20
  2369. Name => 'FlashExposureIndicatorNext',
  2370. Notes => 'indicator for next shot when bracketing',
  2371. SeparateTable => 'ExposureIndicator',
  2372. PrintConv => \%exposureIndicator,
  2373. },
  2374. 0x56 => { #20
  2375. Name => 'FlashExposureIndicatorLast',
  2376. Notes => 'indicator for last shot when bracketing',
  2377. SeparateTable => 'ExposureIndicator',
  2378. PrintConv => \%exposureIndicator,
  2379. },
  2380. 0x58 => { #20
  2381. Name => 'FocusModeSwitch',
  2382. PrintConv => {
  2383. 0 => 'AF',
  2384. 1 => 'MF',
  2385. },
  2386. },
  2387. 0x59 => { #20
  2388. Name => 'FlashType',
  2389. PrintConv => {
  2390. 0 => 'Off',
  2391. 1 => 'Built-in', # (also when built-in flash is a trigger in wireless mode)
  2392. 2 => 'External',
  2393. },
  2394. },
  2395. 0x5a => { #15
  2396. Name => 'Rotation',
  2397. PrintConv => {
  2398. 0 => 'Horizontal (Normal)',
  2399. 1 => 'Rotate 270 CW',
  2400. 2 => 'Rotate 90 CW',
  2401. },
  2402. },
  2403. 0x5b => { #20
  2404. Name => 'AELock',
  2405. PrintConv => \%offOn,
  2406. },
  2407. 0x57 => { #15
  2408. Name => 'ImageStabilization',
  2409. PrintConv => \%offOn,
  2410. },
  2411. 0x5e => { #15
  2412. Name => 'ColorTemperature',
  2413. ValueConv => '$val * 100',
  2414. ValueConvInv => '$val / 100',
  2415. },
  2416. 0x5f => { #20
  2417. Name => 'ColorCompensationFilter',
  2418. Format => 'int16s',
  2419. Notes => 'ranges from -2 for green to +2 for magenta',
  2420. },
  2421. 0x60 => { #20
  2422. Name => 'BatteryState',
  2423. PrintConv => {
  2424. 3 => 'Very Low',
  2425. 4 => 'Low',
  2426. 5 => 'Half Full',
  2427. 6 => 'Sufficient Power Remaining',
  2428. },
  2429. },
  2430. );
  2431. # white balance information stored by the Sony DSLR-A100 (ref 20)
  2432. %Image::ExifTool::Minolta::WBInfoA100 = (
  2433. PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
  2434. WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
  2435. CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
  2436. NOTES => 'White balance information for the Sony DSLR-A100.',
  2437. WRITABLE => 1,
  2438. GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
  2439. FIRST_ENTRY => 0,
  2440. PRIORITY => 0,
  2441. 0x0e => {
  2442. Name => 'DriveMode',
  2443. PrintConv => {
  2444. 0 => 'Self-timer 10 sec',
  2445. 1 => 'Continuous',
  2446. 2 => 'Single-frame Exposure Bracketing',
  2447. 3 => 'Continuous Exposure Bracketing',
  2448. 4 => 'Self-Timer 2 sec',
  2449. 5 => 'Single Frame',
  2450. 8 => 'White Balance Bracketing Low',
  2451. 9 => 'White Balance Bracketing High',
  2452. },
  2453. },
  2454. 0x10 => {
  2455. Name => 'Rotation',
  2456. PrintConv => {
  2457. 0 => 'Horizontal (normal)',
  2458. 1 => 'Rotate 270 CW',
  2459. 2 => 'Rotate 90 CW',
  2460. },
  2461. },
  2462. 0x14 => {
  2463. Name => 'ImageStabilizationSetting',
  2464. PrintConv => { 0 => 'Off', 1 => 'On' },
  2465. },
  2466. 0x15 => {
  2467. Name => 'DynamicRangeOptimizerMode',
  2468. PrintConv => {
  2469. 0 => 'Off',
  2470. 1 => 'Standard',
  2471. 2 => 'Advanced',
  2472. },
  2473. },
  2474. 0x2a => {
  2475. Name => 'ExposureCompensationMode',
  2476. PrintConv => {
  2477. 0 => 'Ambient and Flash',
  2478. 1 => 'Ambient Only',
  2479. },
  2480. },
  2481. 0x2b => 'WBBracketShotNumber',
  2482. 0x2c => {
  2483. Name => 'WhiteBalanceBracketing',
  2484. PrintConv => {
  2485. 0 => 'Off',
  2486. 1 => 'Low',
  2487. 2 => 'High',
  2488. },
  2489. },
  2490. 0x2d => 'ExposureBracketShotNumber',
  2491. 0x31 => {
  2492. Name => 'FlashFunction',
  2493. Format => 'int16u',
  2494. PrintHex => 1,
  2495. PrintConv => {
  2496. 0x0000 => 'No flash',
  2497. 0x0300 => 'Built-in flash',
  2498. # (the following refers to an external flash)
  2499. 0x1205 => 'Manual',
  2500. 0x120e => 'Strobe',
  2501. #0x122e => ?
  2502. 0x128e => 'Fill flash, Pre-flash TTL',
  2503. 0x12ae => 'Bounce flash',
  2504. 0x140e => 'Rear sync, ADI',
  2505. 0x148e => 'Fill flash, ADI',
  2506. 0x1580 => 'Wireless',
  2507. # 0x17ae => ?
  2508. 0x178e => 'HSS',
  2509. },
  2510. },
  2511. 0x34 => {
  2512. Name => 'ExposureMode',
  2513. Format => 'int16u',
  2514. PrintHex => 1,
  2515. PrintConvColumns => 2,
  2516. PrintConv => {
  2517. 0x0000 => 'Program',
  2518. 0x0001 => 'Aperture Priority',
  2519. 0x0002 => 'Shutter Priority',
  2520. 0x0003 => 'Manual',
  2521. 0x0004 => 'Auto',
  2522. 0x0005 => 'Program Shift A',
  2523. 0x0006 => 'Program Shift S',
  2524. 0x1013 => 'Portrait',
  2525. 0x1023 => 'Sports',
  2526. 0x1033 => 'Sunset',
  2527. 0x1043 => 'Night View/Portrait',
  2528. 0x1053 => 'Landscape',
  2529. 0x1083 => 'Macro',
  2530. },
  2531. },
  2532. 0x36 => {
  2533. Name => 'ColorMode',
  2534. Format => 'int16u',
  2535. PrintConv => {
  2536. 0x00 => 'Standard',
  2537. 0x01 => 'Vivid',
  2538. 0x02 => 'Portrait',
  2539. 0x03 => 'Landscape',
  2540. 0x04 => 'Sunset',
  2541. 0x05 => 'Night View',
  2542. 0x07 => 'B&W',
  2543. 0x08 => 'Adobe RGB',
  2544. },
  2545. },
  2546. 0x38 => {
  2547. Name => 'AverageLV',
  2548. Format => 'int16u',
  2549. Notes => 'arithmetic mean of the readings from the 40 honeycomb segments',
  2550. ValueConv => '($val-106)/8',
  2551. ValueConvInv => '$val * 8 + 106',
  2552. },
  2553. # 0x3a - int16u: Approx FocusDistance in metres (0x0f50=inf)
  2554. 0x3c => {
  2555. Name => 'FrameNumber',
  2556. # Numbers > 1 appear in continuous and continuous bracketing drive modes,
  2557. # as well as WB bracketing.
  2558. },
  2559. 0x96 => { Name => 'WB_RGBLevels', Format => 'int16u[3]' },
  2560. 0xae => { Name => 'WB_GBRGLevels', Format => 'int16u[4]' },
  2561. 0xc0 => {
  2562. Name => 'WB_RedLevelsTungsten',
  2563. Notes => '7 values for adjustments of -3 through +3',
  2564. Format => 'int16u[7]',
  2565. },
  2566. 0xce => { Name => 'WB_BlueLevelsTungsten', Format => 'int16u[7]' },
  2567. 0xdc => { Name => 'WB_RedLevelsDaylight', Format => 'int16u[7]' },
  2568. 0xea => { Name => 'WB_BlueLevelsDaylight', Format => 'int16u[7]' },
  2569. 0xf8 => { Name => 'WB_RedLevelsCloudy', Format => 'int16u[7]' },
  2570. 0x106 => { Name => 'WB_BlueLevelsCloudy', Format => 'int16u[7]' },
  2571. 0x114 => { Name => 'WB_RedLevelsFlash', Format => 'int16u[7]' },
  2572. 0x122 => { Name => 'WB_BlueLevelsFlash', Format => 'int16u[7]' },
  2573. 0x14c => {
  2574. Name => 'WB_RedLevelsFluorescent',
  2575. Format => 'int16u[7]',
  2576. Notes => q{
  2577. white balance red presets for fluorescent -2 through +4: -2=Fluorescent,
  2578. -1=WhiteFluorescent, 0=CoolWhiteFluorescent, +1=DayWhiteFluorescent and
  2579. +3=DaylightFluorescent
  2580. },
  2581. },
  2582. 0x15a => { Name => 'WB_BlueLevelsFluorescent', Format => 'int16u[7]' },
  2583. 0x168 => { Name => 'WB_RedLevelsShade', Format => 'int16u[7]' },
  2584. 0x176 => { Name => 'WB_BlueLevelsShade', Format => 'int16u[7]' },
  2585. 0x188 => { Name => 'WB_RedLevel6500K', Format => 'int16u' },
  2586. 0x18a => { Name => 'WB_BlueLevel6500K', Format => 'int16u' },
  2587. 0x18c => { Name => 'WB_RedLevelCustom', Format => 'int16u' },
  2588. 0x18e => { Name => 'WB_BlueLevelCustom', Format => 'int16u' },
  2589. 0x198 => { Name => 'WB_RedLevel3500K', Format => 'int16u' },
  2590. 0x19a => { Name => 'WB_BlueLevel3500K', Format => 'int16u' },
  2591. 0x1be => {
  2592. Name => 'WB_RedLevelsKelvin',
  2593. Format => 'int16u[75]',
  2594. Notes => 'values for 2500-9900 K, in increments of 100 K',
  2595. },
  2596. 0x254 => { Name => 'WB_BlueLevelsKelvin', Format => 'int16u[75]' },
  2597. 0x304 => { Name => 'WB_RBLevelsFlash', Format => 'int16u[2]' },
  2598. 0x308 => { Name => 'WB_RBLevelsCoolWhiteF', Format => 'int16u[2]' },
  2599. 0x3e8 => { Name => 'WB_RBLevelsTungsten', Format => 'int16u[2]' },
  2600. 0x3ec => { Name => 'WB_RBLevelsDaylight', Format => 'int16u[2]' },
  2601. 0x3f0 => { Name => 'WB_RBLevelsCloudy', Format => 'int16u[2]' },
  2602. 0x3f4 => { Name => 'WB_RBLevelsFlash', Format => 'int16u[2]' },
  2603. 0x3fc => { Name => 'WB_RedLevelsFluorescent', Format => 'int16u[7]' },
  2604. 0x40a => { Name => 'WB_BlueLevelsFluorescent', Format => 'int16u[7]' },
  2605. 0x418 => { Name => 'WB_RBLevelsShade', Format => 'int16u[2]' },
  2606. 0x420 => { Name => 'WB_RBLevels6500K', Format => 'int16u[2]' },
  2607. 0x424 => { Name => 'WB_RBLevelsCustom', Format => 'int16u[2]' },
  2608. 0x430 => { Name => 'WB_RBLevels3500K', Format => 'int16u[2]' },
  2609. 0x528 => { Name => 'WB_RBLevelsDaylight', Format => 'int16u[2]' },
  2610. 0x546 => { Name => 'WB_RGBLevels', Format => 'int16u[3]' },
  2611. 0x628 => {
  2612. Name => 'AEMeteringSegments',
  2613. Format => 'int8u[40]',
  2614. Notes => q{
  2615. metering values from the 40 honeycomb segments, converted to LV. The first
  2616. value is for the outer cell, then the values are given row by row, from top
  2617. to bottom, with each row scanned left-to-right. The 21st value is the
  2618. middle cell, which gives the spot metering
  2619. },
  2620. ValueConv => sub { join ' ', map( { ($_ - 106) / 8 } split(' ',$_[0]) ) },
  2621. ValueConvInv => sub { join ' ', map( { int($_ * 8 + 106.5) } split(' ',$_[0]) ) },
  2622. },
  2623. 0x690 => {
  2624. Name => 'MeasuredLV',
  2625. Notes => 'measured light value based on MeteringMode',
  2626. ValueConv => '($val-106)/8',
  2627. ValueConvInv => '$val * 8 + 106',
  2628. },
  2629. 0x691 => {
  2630. Name => 'BrightnessValue',
  2631. ValueConv => '($val-106)/8',
  2632. ValueConvInv => '$val * 8 + 106',
  2633. },
  2634. # 0x87f - int8u: 33mm Equivalent magnification (FocusDistance = (1.5 * $val + 1) * FocalLength) (255=inf)
  2635. 0x104c => { # (9600 bytes: 4 sets of 40x30 int16u values in the range 0-8191)
  2636. Name => 'TiffMeteringImage',
  2637. Format => 'undef[9600]',
  2638. Notes => q{
  2639. 13-bit RBGG (?) 40x30 pixels, presumably metering info, converted to a 16-bit
  2640. TIFF image;
  2641. },
  2642. ValueConv => sub {
  2643. my ($val, $et) = @_;
  2644. return undef unless length $val >= 9600;
  2645. return \ "Binary data 7404 bytes" unless $et->Options('Binary');
  2646. my @dat = unpack('n*', $val); # for Big-endian
  2647. # TIFF header for a 16-bit RGB 10dpi 40x30 image
  2648. $val = Image::ExifTool::Sony::MakeTiffHeader(40,30,3,16,10);
  2649. # re-order data to RGB pixels
  2650. my ($i, @val);
  2651. for ($i=0; $i<40*30; ++$i) {
  2652. # data is 13-bit (max 8191), shift left to fill 16 bits
  2653. # (typically, this gives a very dark image since the data should
  2654. # really be anti-logged to convert from EV to perceived brightness)
  2655. # push @val, $dat[$i]<<3, $dat[$i+2400]<<3, $dat[$i+1200]<<3;
  2656. push @val, int(5041.1*log($dat[$i]+1)/log(2)), int(5041.1*log($dat[$i+2400]+1)/log(2)), int(5041.1*log($dat[$i+1200]+1)/log(2));
  2657. }
  2658. $val .= pack('v*', @val); # add TIFF strip data
  2659. return \$val;
  2660. },
  2661. },
  2662. 0x49b8 => {
  2663. Name => 'ExposureTime',
  2664. ValueConv => '$val ? 2 ** (6 - $val/8) : 0',
  2665. ValueConvInv => '$val ? int((6 - log($val) / log(2)) * 8 + 0.5) : 0',
  2666. PrintConv => '$val ? Image::ExifTool::Exif::PrintExposureTime($val) : "Bulb"',
  2667. PrintConvInv => 'lc($val) eq "bulb" ? 0 : Image::ExifTool::Exif::ConvertFraction($val)',
  2668. },
  2669. 0x49ba => {
  2670. Name => 'ISO',
  2671. ValueConv => '2 ** (($val-48)/8) * 100',
  2672. ValueConvInv => '48 + 8*log($val/100)/log(2)',
  2673. PrintConv => 'int($val + 0.5)',
  2674. PrintConvInv => '$val',
  2675. },
  2676. 0x49bb => { # (http://u88.n24.queensu.ca/exiftool/forum/index.php/topic,3688.0.html)
  2677. # if this value is the 35mm equivalent magnification, then the formula could
  2678. # be (1.5 * 2**($val/16-5)+1) * FocalLength, but this tends to underestimate
  2679. # distance by about 18% (ref 20) (255=inf)
  2680. Name => 'FocusDistance',
  2681. ValueConv => '2**(($val-126)/16)',
  2682. ValueConvInv => 'log($val)/log(2)*16+126',
  2683. PrintConv => '$val > 266 ? "inf" : sprintf("%.2f m", $val)',
  2684. PrintConvInv => '$val=~s/ ?m//; $val=~/inf/i ? 267 : $val',
  2685. },
  2686. 0x49bd => {
  2687. Name => 'LensType',
  2688. Format => 'int16uRev',
  2689. SeparateTable => 1,
  2690. ValueConvInv => 'int($val)', # (must truncate decimal part)
  2691. PrintConv => \%minoltaLensTypes,
  2692. },
  2693. 0x49c0 => {
  2694. Name => 'ExposureCompensation', # (in exposure bracketing, this is the actual value used)
  2695. Format => 'int8s',
  2696. ValueConv => '$val / 8',
  2697. ValueConvInv => '$val * 8',
  2698. PrintConv => '$val ? sprintf("%+.1f",$val) : $val',
  2699. PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
  2700. },
  2701. 0x49c1 => {
  2702. Name => 'FlashExposureComp',
  2703. Description => 'Flash Exposure Compensation',
  2704. Format => 'int8s',
  2705. ValueConv => '$val / 8',
  2706. ValueConvInv => '$val * 8',
  2707. PrintConv => '$val ? sprintf("%+.1f",$val) : $val',
  2708. PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
  2709. },
  2710. 0x49c2 => {
  2711. Name => 'ImageStabilization',
  2712. PrintConv => \%offOn,
  2713. },
  2714. 0x49c3 => {
  2715. Name => 'BrightnessValue',
  2716. ValueConv => '($val-106)/8',
  2717. ValueConvInv => '$val * 8 + 106',
  2718. },
  2719. 0x49c5 => {
  2720. Name => 'MaxAperture',
  2721. ValueConv => '2 ** (($val-8)/16)',
  2722. ValueConvInv => '8 + 16*log($val)/log(2)',
  2723. PrintConv => 'sprintf("%.1f",$val)',
  2724. PrintConvInv => '$val',
  2725. },
  2726. # 0x49c6 - gives focal length using same formula as 0x49bb
  2727. 0x49c7 => {
  2728. Name => 'FNumber',
  2729. ValueConv => '2 ** (($val-8)/16)',
  2730. ValueConvInv => '8 + 16*log($val)/log(2)',
  2731. PrintConv => 'sprintf("%.1f",$val)',
  2732. PrintConvInv => '$val',
  2733. },
  2734. 0x49dc => {
  2735. Name => 'InternalSerialNumber',
  2736. Format => 'string[12]',
  2737. },
  2738. );
  2739. # tags in Konica Minolta MOV videos (ref PH)
  2740. # (similar information in Kodak,Minolta,Nikon,Olympus,Pentax and Sanyo videos)
  2741. %Image::ExifTool::Minolta::MOV1 = (
  2742. PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
  2743. GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
  2744. FIRST_ENTRY => 0,
  2745. NOTES => q{
  2746. This information is found in MOV videos from some Konica Minolta models such
  2747. as the DiMage Z10 and X50.
  2748. },
  2749. 0 => {
  2750. Name => 'Make',
  2751. Format => 'string[32]',
  2752. },
  2753. 0x20 => {
  2754. Name => 'ModelType',
  2755. Format => 'string[8]',
  2756. },
  2757. # (01 00 at offset 0x28)
  2758. 0x2e => {
  2759. Name => 'ExposureTime',
  2760. Format => 'int32u',
  2761. ValueConv => '$val ? 10 / $val : 0',
  2762. PrintConv => 'Image::ExifTool::Exif::PrintExposureTime($val)',
  2763. },
  2764. 0x32 => {
  2765. Name => 'FNumber',
  2766. Format => 'rational64u',
  2767. PrintConv => 'sprintf("%.1f",$val)',
  2768. },
  2769. 0x3a => {
  2770. Name => 'ExposureCompensation',
  2771. Format => 'rational64s',
  2772. PrintConv => 'Image::ExifTool::Exif::PrintFraction($val)',
  2773. },
  2774. # 0x4c => 'WhiteBalance', ?
  2775. 0x50 => {
  2776. Name => 'FocalLength',
  2777. Format => 'rational64u',
  2778. PrintConv => 'sprintf("%.1f mm",$val)',
  2779. },
  2780. );
  2781. # tags in Minolta MOV videos (ref PH)
  2782. # (similar information in Kodak,Minolta,Nikon,Olympus,Pentax and Sanyo videos)
  2783. %Image::ExifTool::Minolta::MOV2 = (
  2784. PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
  2785. GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
  2786. FIRST_ENTRY => 0,
  2787. NOTES => q{
  2788. This information is found in MOV videos from some Minolta models such as the
  2789. DiMAGE X and Xt.
  2790. },
  2791. 0 => {
  2792. Name => 'Make',
  2793. Format => 'string[32]',
  2794. },
  2795. 0x18 => {
  2796. Name => 'ModelType',
  2797. Format => 'string[8]',
  2798. },
  2799. # (01 00 at offset 0x20)
  2800. 0x26 => {
  2801. Name => 'ExposureTime',
  2802. Format => 'int32u',
  2803. ValueConv => '$val ? 10 / $val : 0',
  2804. PrintConv => 'Image::ExifTool::Exif::PrintExposureTime($val)',
  2805. },
  2806. 0x2a => {
  2807. Name => 'FNumber',
  2808. Format => 'rational64u',
  2809. PrintConv => 'sprintf("%.1f",$val)',
  2810. },
  2811. 0x32 => {
  2812. Name => 'ExposureCompensation',
  2813. Format => 'rational64s',
  2814. PrintConv => 'Image::ExifTool::Exif::PrintFraction($val)',
  2815. },
  2816. # 0x44 => 'WhiteBalance', ?
  2817. 0x48 => {
  2818. Name => 'FocalLength',
  2819. Format => 'rational64u',
  2820. PrintConv => 'sprintf("%.1f mm",$val)',
  2821. },
  2822. );
  2823. # more tags in Minolta MOV videos (ref PH)
  2824. %Image::ExifTool::Minolta::MMA = (
  2825. PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
  2826. GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
  2827. NOTES => q{
  2828. This information is found in MOV videos from Minolta models such as the
  2829. DiMAGE A2, S414 and 7Hi.
  2830. },
  2831. 0 => {
  2832. Name => 'Make',
  2833. Format => 'string[20]',
  2834. },
  2835. 20 => {
  2836. Name => 'SoftwareVersion',
  2837. Format => 'string[16]',
  2838. },
  2839. );
  2840. # basic Minolta white balance lookup
  2841. my %minoltaWhiteBalance = (
  2842. 0 => 'Auto',
  2843. 1 => 'Daylight',
  2844. 2 => 'Cloudy',
  2845. 3 => 'Tungsten',
  2846. 5 => 'Custom',
  2847. 7 => 'Fluorescent',
  2848. 8 => 'Fluorescent 2',
  2849. 11 => 'Custom 2',
  2850. 12 => 'Custom 3',
  2851. # the following come from tests with the A2 (ref 2)
  2852. 0x0800000 => 'Auto',
  2853. 0x1800000 => 'Daylight',
  2854. 0x2800000 => 'Cloudy',
  2855. 0x3800000 => 'Tungsten',
  2856. 0x4800000 => 'Flash',
  2857. 0x5800000 => 'Fluorescent',
  2858. 0x6800000 => 'Shade',
  2859. 0x7800000 => 'Custom1',
  2860. 0x8800000 => 'Custom2',
  2861. 0x9800000 => 'Custom3',
  2862. );
  2863. #------------------------------------------------------------------------------
  2864. # PrintConv for Minolta white balance
  2865. sub ConvertWhiteBalance($)
  2866. {
  2867. my $val = shift;
  2868. my $printConv = $minoltaWhiteBalance{$val};
  2869. unless (defined $printConv) {
  2870. if ($val & 0xffff0000) {
  2871. # the A2 values can be shifted by += 3 settings, where
  2872. # each setting adds or subtracts 0x0010000 (ref 2)
  2873. my $type = ($val & 0xff000000) + 0x800000;
  2874. if ($minoltaWhiteBalance{$type}) {
  2875. $printConv = $minoltaWhiteBalance{$type} .
  2876. sprintf("%+.8g", ($val - $type) / 0x10000);
  2877. } else {
  2878. $printConv = sprintf("Unknown (0x%x)", $val);
  2879. }
  2880. } else {
  2881. $printConv = sprintf("Unknown ($val)");
  2882. }
  2883. }
  2884. return $printConv;
  2885. }
  2886. 1; # end
  2887. __END__
  2888. =head1 NAME
  2889. Image::ExifTool::Minolta - Minolta EXIF maker notes tags
  2890. =head1 SYNOPSIS
  2891. This module is loaded automatically by Image::ExifTool when required.
  2892. =head1 DESCRIPTION
  2893. This module contains definitions required by Image::ExifTool to interpret
  2894. Minolta and Konica-Minolta maker notes in EXIF information, and to read
  2895. and write Minolta RAW (MRW) images.
  2896. =head1 AUTHOR
  2897. Copyright 2003-2016, Phil Harvey (phil at owl.phy.queensu.ca)
  2898. This library is free software; you can redistribute it and/or modify it
  2899. under the same terms as Perl itself.
  2900. =head1 REFERENCES
  2901. =over 4
  2902. =item L<http://www.dalibor.cz/minolta/makernote.htm>
  2903. =item L<http://www.cybercom.net/~dcoffin/dcraw/>
  2904. =back
  2905. =head1 ACKNOWLEDGEMENTS
  2906. Thanks to Jay Al-Saadi, Niels Kristian Bech Jensen, Shingo Noguchi, Pedro
  2907. Corte-Real, Jeffery Small, Jens Duttke, Thomas Kassner, Mladen Sever, Olaf
  2908. Ulrich, Lukasz Stelmach, Igal Milchtaich, Jos Roost and Michael Reitinger
  2909. for the information they provided, and for everyone who helped with the
  2910. LensType list.
  2911. =head1 SEE ALSO
  2912. L<Image::ExifTool::TagNames/Minolta Tags>,
  2913. L<Image::ExifTool(3pm)|Image::ExifTool>
  2914. =cut