source: main/trunk/greenstone2/perllib/cpan/Image/ExifTool/Minolta.pm@ 34921

Last change on this file since 34921 was 34921, checked in by anupama, 3 years ago

Committing the improvements to EmbeddedMetaPlugin's processing of Keywords vs other metadata fields. Keywords were literally stored as arrays of words rather than phrases in PDFs (at least in Diego's sample PDF), whereas other meta fields like Subjects and Creators stored them as arrays of phrases. To get both to work, Kathy updated EXIF to a newer version, to retrieve the actual EXIF values stored in the PDF. And Kathy and Dr Bainbridge came up with a new option that I added called apply_join_before_split_to_metafields that's a regex which can list the metadata fields to apply the join_before_split to and whcih previously always got applied to all metadata fields. Now it's applied to any *Keywords metafields by default, as that's the metafield we have experience of that behaves differently to the others, as it stores by word instead of phrases. Tested on Diego's sample PDF. Diego has double-checked it to works on his sample PDF too, setting the split char to ; and turning on the join_before_split and leaving apply_join_before_split_to_metafields at its default of .*Keywords. File changes are strings.properties for the tooltip, the plugin introducing the option and working with it and Kathy's EXIF updates affecting cpan/File and cpan/Image.

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