1 | #------------------------------------------------------------------------------
|
---|
2 | # File: Sigma.pm
|
---|
3 | #
|
---|
4 | # Description: Sigma/Foveon EXIF maker notes tags
|
---|
5 | #
|
---|
6 | # Revisions: 04/06/2004 - P. Harvey Created
|
---|
7 | # 02/20/2007 - PH added SD14 tags
|
---|
8 | # 24/06/2010 - PH decode some SD15 tags
|
---|
9 | #
|
---|
10 | # References: 1) http://www.x3f.info/technotes/FileDocs/MakerNoteDoc.html
|
---|
11 | # IB) Iliah Borg private communication (LibRaw)
|
---|
12 | # NJ) Niels Kristian Bech Jensen
|
---|
13 | # JR) Jos Roost
|
---|
14 | #------------------------------------------------------------------------------
|
---|
15 |
|
---|
16 | package Image::ExifTool::Sigma;
|
---|
17 |
|
---|
18 | use strict;
|
---|
19 | use vars qw($VERSION %sigmaLensTypes);
|
---|
20 | use Image::ExifTool::Exif;
|
---|
21 |
|
---|
22 | $VERSION = '1.31';
|
---|
23 |
|
---|
24 | # sigma LensType lookup (ref IB)
|
---|
25 | %sigmaLensTypes = (
|
---|
26 | Notes => q{
|
---|
27 | Sigma LensType values are hexadecimal numbers stored as a string (without
|
---|
28 | the leading "0x"). Decimal values have been added to differentiate lenses
|
---|
29 | which would otherwise have the same LensType, and are used by the Composite
|
---|
30 | LensID tag when attempting to identify the specific lens model.
|
---|
31 | },
|
---|
32 | # 0x0 => 'Sigma 50mm F2.8 EX Macro', (0x0 used for other lenses too)
|
---|
33 | # 0x8 - 18-125mm LENSARANGE@18mm=22-4
|
---|
34 | 0x10, 'Sigma 50mm F2.8 EX DG MACRO',
|
---|
35 | # (0x10 = 16)
|
---|
36 | 16.1 => 'Sigma 70mm F2.8 EX DG Macro',
|
---|
37 | 16.2 => 'Sigma 105mm F2.8 EX DG Macro',
|
---|
38 | 0x16 => 'Sigma 18-50mm F3.5-5.6 DC', #PH
|
---|
39 | 0x103 => 'Sigma 180mm F3.5 EX IF HSM APO Macro',
|
---|
40 | 0x104 => 'Sigma 150mm F2.8 EX DG HSM APO Macro',
|
---|
41 | 0x105 => 'Sigma 180mm F3.5 EX DG HSM APO Macro',
|
---|
42 | 0x106 => 'Sigma 150mm F2.8 EX DG OS HSM APO Macro',
|
---|
43 | 0x107 => 'Sigma 180mm F2.8 EX DG OS HSM APO Macro',
|
---|
44 | # (0x129 = 297)
|
---|
45 | 0x129 => 'Sigma Lens (0x129)', #PH
|
---|
46 | 297.1 => 'Sigma 14mm F2.8 EX Aspherical', #PH
|
---|
47 | 297.2 => 'Sigma 30mm F1.4',
|
---|
48 | # (0x131 = 305)
|
---|
49 | 0x131 => 'Sigma Lens (0x131)',
|
---|
50 | 305.1 => 'Sigma 17-70mm F2.8-4.5 DC Macro', #PH
|
---|
51 | 305.2 => 'Sigma 70-200mm F2.8 APO EX HSM',
|
---|
52 | 305.3 => 'Sigma 120-300mm F2.8 APO EX IF HSM',
|
---|
53 | 0x134 => 'Sigma 100-300mm F4 EX DG HSM APO',
|
---|
54 | 0x135 => 'Sigma 120-300mm F2.8 EX DG HSM APO',
|
---|
55 | 0x136 => 'Sigma 120-300mm F2.8 EX DG OS HSM APO',
|
---|
56 | 0x137 => 'Sigma 120-300mm F2.8 DG OS HSM | S',
|
---|
57 | 0x143 => 'Sigma 600mm F8 Mirror',
|
---|
58 | # (0x145 = 325)
|
---|
59 | 0x145 => 'Sigma Lens (0x145)', #PH
|
---|
60 | 325.1 => 'Sigma 15-30mm F3.5-4.5 EX DG Aspherical', #PH
|
---|
61 | 325.2 => 'Sigma 18-50mm F2.8 EX DG', #PH (NC)
|
---|
62 | 325.3 => 'Sigma 20-40mm F2.8 EX DG', #PH
|
---|
63 | 0x150 => 'Sigma 30mm F1.4 DC HSM',
|
---|
64 | # (0x152 = 338)
|
---|
65 | 0x152 => 'Sigma Lens (0x152)',
|
---|
66 | 338.1 => 'Sigma APO 800mm F5.6 EX DG HSM',
|
---|
67 | 338.2 => 'Sigma 12-24mm F4.5-5.6 EX DG ASP HSM',
|
---|
68 | 338.3 => 'Sigma 10-20mm F4-5.6 EX DC HSM',
|
---|
69 | 0x165 => 'Sigma 70-200mm F2.8 EX', # ...but what specific model?:
|
---|
70 | # 70-200mm F2.8 EX APO - Original version, minimum focus distance 1.8m (1999)
|
---|
71 | # 70-200mm F2.8 EX DG - Adds 'digitally optimized' lens coatings to reduce flare (2005)
|
---|
72 | # 70-200mm F2.8 EX DG Macro (HSM) - Minimum focus distance reduced to 1m (2006)
|
---|
73 | # 70-200mm F2.8 EX DG Macro HSM II - Improved optical performance (2007)
|
---|
74 | 0x169 => 'Sigma 18-50mm F2.8 EX DC', #PH (NC)
|
---|
75 | 0x183 => 'Sigma 500mm F4.5 EX HSM APO',
|
---|
76 | 0x184 => 'Sigma 500mm F4.5 EX DG HSM APO',
|
---|
77 | 0x185 => 'Sigma 500mm F4 DG OS HSM | S', #JR (NC; based on product number) (016)
|
---|
78 | 0x194 => 'Sigma 300mm F2.8 EX HSM APO',
|
---|
79 | 0x195 => 'Sigma 300mm F2.8 EX DG HSM APO',
|
---|
80 | 0x200 => 'Sigma 12-24mm F4.5-5.6 EX DG ASP HSM',
|
---|
81 | 0x201 => 'Sigma 10-20mm F4-5.6 EX DC HSM',
|
---|
82 | 0x202 => 'Sigma 10-20mm F3.5 EX DC HSM',
|
---|
83 | 0x203 => 'Sigma 8-16mm F4.5-5.6 DC HSM',
|
---|
84 | 0x204 => 'Sigma 12-24mm F4.5-5.6 DG HSM II',
|
---|
85 | 0x205 => 'Sigma 12-24mm F4 DG HSM | A', #JR (NC; based on product number) (016)
|
---|
86 | 0x210 => 'Sigma 18-35mm F1.8 DC HSM | A',
|
---|
87 | 0x240 => 'Sigma 135mm F1.8 DG HSM | A', #JR (NC; based on product number) (017)
|
---|
88 | 0x256 => 'Sigma 105mm F2.8 EX Macro',
|
---|
89 | 0x257 => 'Sigma 105mm F2.8 EX DG Macro',
|
---|
90 | 0x258 => 'Sigma 105mm F2.8 EX DG OS HSM Macro',
|
---|
91 | 0x259 => 'Sigma 105mm F1.4 DG HSM | A', #IB (A018)
|
---|
92 | 0x270 => 'Sigma 70mm F2.8 EX DG Macro', #NJ (SD1)
|
---|
93 | 0x271 => 'Sigma 70mm F2.8 DG Macro | A', #IB (A018)
|
---|
94 | 0x300 => 'Sigma 30mm F1.4 EX DC HSM',
|
---|
95 | 0x301 => 'Sigma 30mm F1.4 DC HSM | A',
|
---|
96 | 0x302 => 'Sigma 30mm F1.4 DC DN | C', #JR (DN lenses are only for Sony E or MFT mount)
|
---|
97 | 0x310 => 'Sigma 50mm F1.4 EX DG HSM',
|
---|
98 | 0x311 => 'Sigma 50mm F1.4 DG HSM | A',
|
---|
99 | 0x320 => 'Sigma 85mm F1.4 EX DG HSM',
|
---|
100 | 0x321 => 'Sigma 85mm F1.4 DG HSM | A', #JR (NC; based on product number) (016)
|
---|
101 | 0x330 => 'Sigma 30mm F2.8 EX DN',
|
---|
102 | 0x340 => 'Sigma 35mm F1.4 DG HSM',
|
---|
103 | 0x345 => 'Sigma 50mm F2.8 EX Macro',
|
---|
104 | 0x346 => 'Sigma 50mm F2.8 EX DG Macro',
|
---|
105 | 0x350 => 'Sigma 60mm F2.8 DN | A',
|
---|
106 | 0x400 => 'Sigma 19mm F2.8 EX DN',
|
---|
107 | 0x401 => 'Sigma 24mm F1.4 DG HSM | A',
|
---|
108 | 0x411 => 'Sigma 20mm F1.8 EX DG ASP RF',
|
---|
109 | 0x412 => 'Sigma 20mm F1.4 DG HSM | A',
|
---|
110 | 0x432 => 'Sigma 24mm F1.8 EX DG ASP Macro',
|
---|
111 | 0x440 => 'Sigma 28mm F1.8 EX DG ASP Macro',
|
---|
112 | 0x450 => 'Sigma 14mm F1.8 DH HSM | A', #JR (NC; based on product number) (017)
|
---|
113 | 0x461 => 'Sigma 14mm F2.8 EX ASP HSM',
|
---|
114 | 0x475 => 'Sigma 15mm F2.8 EX Diagonal FishEye',
|
---|
115 | 0x476 => 'Sigma 15mm F2.8 EX DG Diagonal Fisheye',
|
---|
116 | 0x477 => 'Sigma 10mm F2.8 EX DC HSM Fisheye',
|
---|
117 | 0x483 => 'Sigma 8mm F4 EX Circular Fisheye',
|
---|
118 | 0x484 => 'Sigma 8mm F4 EX DG Circular Fisheye',
|
---|
119 | 0x485 => 'Sigma 8mm F3.5 EX DG Circular Fisheye',
|
---|
120 | 0x486 => 'Sigma 4.5mm F2.8 EX DC HSM Circular Fisheye',
|
---|
121 | 0x504 => 'Sigma 70-300mm F4-5.6 Macro Super', #IB
|
---|
122 | 0x505 => 'Sigma APO 70-300mm F4-5.6 Macro Super', #IB
|
---|
123 | 0x506 => 'Sigma 70-300mm F4-5.6 APO Macro Super II',
|
---|
124 | 0x507 => 'Sigma 70-300mm F4-5.6 DL Macro Super II',
|
---|
125 | 0x508 => 'Sigma 70-300mm F4-5.6 DG APO Macro',
|
---|
126 | 0x509 => 'Sigma 70-300mm F4-5.6 DG Macro',
|
---|
127 | 0x510 => 'Sigma 17-35 F2.8-4 EX DG ASP',
|
---|
128 | 0x512 => 'Sigma 15-30mm F3.5-4.5 EX DG ASP DF',
|
---|
129 | 0x513 => 'Sigma 20-40mm F2.8 EX DG',
|
---|
130 | 0x519 => 'Sigma 17-35 F2.8-4 EX ASP HSM',
|
---|
131 | 0x520 => 'Sigma 100-300mm F4.5-6.7 DL',
|
---|
132 | 0x521 => 'Sigma 18-50mm F3.5-5.6 DC Macro',
|
---|
133 | 0x527 => 'Sigma 100-300mm F4 EX IF HSM',
|
---|
134 | 0x529 => 'Sigma 120-300mm F2.8 EX HSM IF APO',
|
---|
135 | 0x545 => 'Sigma 28-70mm F2.8 EX ASP DF', #IB
|
---|
136 | 0x547 => 'Sigma 24-60mm F2.8 EX DG',
|
---|
137 | 0x548 => 'Sigma 24-70mm F2.8 EX DG Macro',
|
---|
138 | 0x549 => 'Sigma 28-70mm F2.8 EX DG',
|
---|
139 | 0x566 => 'Sigma 70-200mm F2.8 EX IF APO',
|
---|
140 | 0x567 => 'Sigma 70-200mm F2.8 EX IF HSM APO',
|
---|
141 | 0x568 => 'Sigma 70-200mm F2.8 EX DG IF HSM APO',
|
---|
142 | 0x569 => 'Sigma 70-200 F2.8 EX DG HSM APO Macro',
|
---|
143 | 0x571 => 'Sigma 24-70mm F2.8 IF EX DG HSM',
|
---|
144 | 0x572 => 'Sigma 70-300mm F4-5.6 DG OS',
|
---|
145 | 0x576 => 'Sigma 24-70mm F2.8 DG OS HSM | A', #JR (NC; based on product number) (017)
|
---|
146 | 0x579 => 'Sigma 70-200mm F2.8 EX DG HSM APO Macro', # (also II version)
|
---|
147 | 0x580 => 'Sigma 18-50mm F2.8 EX DC',
|
---|
148 | 0x581 => 'Sigma 18-50mm F2.8 EX DC Macro', #PH (SD1)
|
---|
149 | 0x582 => 'Sigma 18-50mm F2.8 EX DC HSM Macro',
|
---|
150 | 0x583 => 'Sigma 17-50mm F2.8 EX DC OS HSM', #PH (also SD1 Kit, is this HSM? - PH)
|
---|
151 | 0x588 => 'Sigma 24-35mm F2 DG HSM | A',
|
---|
152 | 0x589 => 'Sigma APO 70-200mm F2.8 EX DG OS HSM',
|
---|
153 | 0x594 => 'Sigma 300-800mm F5.6 EX HSM IF APO',
|
---|
154 | 0x595 => 'Sigma 300-800mm F5.6 EX DG APO HSM',
|
---|
155 | 0x597 => 'Sigma 200-500mm F2.8 APO EX DG',
|
---|
156 | 0x5A8 => 'Sigma 70-300mm F4-5.6 APO DG Macro (Motorized)',
|
---|
157 | 0x5A9 => 'Sigma 70-300mm F4-5.6 DG Macro (Motorized)',
|
---|
158 | 0x605 => 'Sigma 24-70mm F3.5-5.6 ASP HF', #IB
|
---|
159 | 0x633 => 'Sigma 28-70mm F2.8-4 HS',
|
---|
160 | 0x634 => 'Sigma 28-70mm F2.8-4 DG',
|
---|
161 | 0x635 => 'Sigma 24-105mm F4 DG OS HSM | A',
|
---|
162 | 0x644 => 'Sigma 28-80mm F3.5-5.6 ASP HF Macro',
|
---|
163 | 0x659 => 'Sigma 28-80mm F3.5-5.6 Mini Zoom Macro II ASP',
|
---|
164 | 0x661 => 'Sigma 28-105mm F2.8-4 IF ASP',
|
---|
165 | 0x663 => 'Sigma 28-105mm F3.8-5.6 IF UC-III ASP',
|
---|
166 | 0x664 => 'Sigma 28-105mm F2.8-4 IF DG ASP',
|
---|
167 | 0x667 => 'Sigma 24-135mm F2.8-4.5 IF ASP',
|
---|
168 | 0x668 => 'Sigma 17-70mm F2.8-4 DC Macro OS HSM',
|
---|
169 | 0x669 => 'Sigma 17-70mm F2.8-4.5 DC HSM Macro',
|
---|
170 | 0x684 => 'Sigma 55-200mm F4-5.6 DC',
|
---|
171 | 0x686 => 'Sigma 50-200mm F4-5.6 DC OS HSM',
|
---|
172 | 0x689 => 'Sigma 17-70mm F2.8-4.5 DC Macro',
|
---|
173 | 0x690 => 'Sigma 50-150mm F2.8 EX DC HSM APO',
|
---|
174 | 0x691 => 'Sigma 50-150mm F2.8 EX DC APO HSM II',
|
---|
175 | 0x692 => 'Sigma APO 50-150mm F2.8 EX DC OS HSM',
|
---|
176 | 0x693 => 'Sigma 50-100mm F1.8 DC HSM | A', #JR (NC; based on product number) (016)
|
---|
177 | 0x709 => 'Sigma 28-135mm F3.8-5.6 IF ASP Macro',
|
---|
178 | 0x723 => 'Sigma 135-400mm F4.5-5.6 ASP APO',
|
---|
179 | 0x725 => 'Sigma 80-400mm F4.5-5.6 EX OS',
|
---|
180 | 0x726 => 'Sigma 80-400mm F4.5-5.6 EX DG OS APO',
|
---|
181 | 0x727 => 'Sigma 135-400mm F4.5-5.6 DG ASP APO',
|
---|
182 | 0x728 => 'Sigma 120-400mm F4.5-5.6 DG APO OS HSM',
|
---|
183 | 0x729 => 'Sigma 100-400mm F5-6.3 DG OS HSM | C', #JR (017)
|
---|
184 | 0x730 => 'Sigma 60-600mm F4.5-6.3 DG OS HSM | S', #IB (S018)
|
---|
185 | 0x733 => 'Sigma 170-500mm F5-6.3 ASP APO',
|
---|
186 | 0x734 => 'Sigma 170-500mm F5-6.3 DG ASP APO',
|
---|
187 | 0x735 => 'Sigma 50-500mm F4-6.3 EX RF HSM APO',
|
---|
188 | 0x736 => 'Sigma 50-500mm F4-6.3 EX DG HSM APO',
|
---|
189 | 0x737 => 'Sigma 150-500mm F5-6.3 APO DG OS HSM',
|
---|
190 | 0x738 => 'Sigma 50-500mm F4.5-6.3 APO DG OS HSM',
|
---|
191 | 0x740 => 'Sigma 150-600mm F5-6.3 DG OS HSM | S',
|
---|
192 | 0x745 => 'Sigma 150-600mm F5-6.3 DG OS HSM | C',
|
---|
193 | 0x777 => 'Sigma 18-200mm F3.5-6.3 DC',
|
---|
194 | 0x77D => 'Sigma 18-200mm F3.5-6.3 DC (Motorized)',
|
---|
195 | 0x785 => 'Sigma 28-200mm F3.5-5.6 DL ASP IF HZM Macro', #IB
|
---|
196 | 0x787 => 'Sigma 28-200mm F3.5-5.6 Compact ASP HZ Macro',
|
---|
197 | 0x789 => 'Sigma 18-125mm F3.5-5.6 DC',
|
---|
198 | 0x790 => 'Sigma 28-300mm F3.5-6.3 DL ASP IF HZM', #IB
|
---|
199 | 0x793 => 'Sigma 28-300mm F3.5-6.3 Macro',
|
---|
200 | 0x794 => 'Sigma 28-200mm F3.5-5.6 DG Compact ASP HZ Macro',
|
---|
201 | 0x795 => 'Sigma 28-300mm F3.5-6.3 DG Macro',
|
---|
202 | 0x823 => 'Sigma 1.4X TC EX APO',
|
---|
203 | 0x824 => 'Sigma 1.4X Teleconverter EX APO DG',
|
---|
204 | 0x853 => 'Sigma 18-125mm F3.8-5.6 DC OS HSM',
|
---|
205 | 0x861 => 'Sigma 18-50mm F2.8-4.5 DC OS HSM', #NJ (SD1)
|
---|
206 | 0x870 => 'Sigma 2.0X Teleconverter TC-2001', #JR
|
---|
207 | 0x875 => 'Sigma 2.0X TC EX APO',
|
---|
208 | 0x876 => 'Sigma 2.0X Teleconverter EX APO DG',
|
---|
209 | 0x879 => 'Sigma 1.4X Teleconverter TC-1401', #JR
|
---|
210 | 0x880 => 'Sigma 18-250mm F3.5-6.3 DC OS HSM',
|
---|
211 | 0x882 => 'Sigma 18-200mm F3.5-6.3 II DC OS HSM',
|
---|
212 | 0x883 => 'Sigma 18-250mm F3.5-6.3 DC Macro OS HSM',
|
---|
213 | 0x884 => 'Sigma 17-70mm F2.8-4 DC OS HSM Macro | C',
|
---|
214 | 0x885 => 'Sigma 18-200mm F3.5-6.3 DC OS HSM Macro | C',
|
---|
215 | 0x886 => 'Sigma 18-300mm F3.5-6.3 DC OS HSM Macro | C',
|
---|
216 | 0x888 => 'Sigma 18-200mm F3.5-6.3 DC OS',
|
---|
217 | 0x890 => 'Sigma Mount Converter MC-11', #JR
|
---|
218 | 0x929 => 'Sigma 19mm F2.8 DN | A',
|
---|
219 | 0x929 => 'Sigma 30mm F2.8 DN | A',
|
---|
220 | 0x929 => 'Sigma 60mm F2.8 DN | A',
|
---|
221 | 0x1003 => 'Sigma 19mm F2.8', #PH (DP1 Merrill kit)
|
---|
222 | 0x1004 => 'Sigma 30mm F2.8', #PH (DP2 Merrill kit)
|
---|
223 | 0x1005 => 'Sigma 50mm F2.8 Macro', #PH (DP3 Merrill kit)
|
---|
224 | 0x1006 => 'Sigma 19mm F2.8', #NJ (DP1 Quattro kit)
|
---|
225 | 0x1007 => 'Sigma 30mm F2.8', #PH (DP2 Quattro kit)
|
---|
226 | 0x1008 => 'Sigma 50mm F2.8 Macro', #NJ (DP3 Quattro kit)
|
---|
227 | 0x1009 => 'Sigma 14mm F4', #NJ (DP0 Quattro kit)
|
---|
228 | # L-mount lenses?:
|
---|
229 | 0x6001 => 'Sigma 150-600mm F5-6.3 DG OS HSM | S', #PH (NC, fp)
|
---|
230 | 0x6003 => 'Sigma 45mm F2.8 DG DN | C', #PH (NC, fp)
|
---|
231 | 0x6006 => 'Sigma 50mm F1.4 DG HSM | A', #IB (014)
|
---|
232 | 0x8005 => 'Sigma 35mm F1.4 DG HSM | A', #PH (012)
|
---|
233 | 0x8009 => 'Sigma 18-35mm F1.8 DC HSM | A', #PH
|
---|
234 | 0x8900 => 'Sigma 70-300mm F4-5.6 DG OS', #PH (SD15)
|
---|
235 | 0xA100 => 'Sigma 24-70mm F2.8 DG Macro', #PH (SD15)
|
---|
236 | # 'FFFF' - seen this for a 28-70mm F2.8 lens - PH
|
---|
237 | );
|
---|
238 |
|
---|
239 | %Image::ExifTool::Sigma::Main = (
|
---|
240 | WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
|
---|
241 | CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
|
---|
242 | WRITABLE => 'string',
|
---|
243 | GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
---|
244 | NOTES => q{
|
---|
245 | These tags are written by Sigma/Foveon cameras. In the early days Sigma was
|
---|
246 | a class leader by releasing their maker note specification to the public,
|
---|
247 | but since then they have deviated from this standard and newer camera models
|
---|
248 | are less than consistent about their metadata formats.
|
---|
249 | },
|
---|
250 | 0x0002 => 'SerialNumber',
|
---|
251 | 0x0003 => 'DriveMode',
|
---|
252 | 0x0004 => 'ResolutionMode',
|
---|
253 | 0x0005 => 'AFMode',
|
---|
254 | 0x0006 => 'FocusSetting',
|
---|
255 | 0x0007 => 'WhiteBalance',
|
---|
256 | 0x0008 => {
|
---|
257 | Name => 'ExposureMode',
|
---|
258 | PrintConv => { #PH
|
---|
259 | A => 'Aperture-priority AE',
|
---|
260 | M => 'Manual',
|
---|
261 | P => 'Program AE',
|
---|
262 | S => 'Shutter speed priority AE',
|
---|
263 | },
|
---|
264 | },
|
---|
265 | 0x0009 => {
|
---|
266 | Name => 'MeteringMode',
|
---|
267 | PrintConv => { #PH
|
---|
268 | A => 'Average',
|
---|
269 | C => 'Center-weighted average',
|
---|
270 | 8 => 'Multi-segment',
|
---|
271 | },
|
---|
272 | },
|
---|
273 | 0x000a => 'LensFocalRange',
|
---|
274 | 0x000b => 'ColorSpace',
|
---|
275 | # SIGMA PhotoPro writes these tags as strings, but some cameras (at least) write them as rational
|
---|
276 | 0x000c => [
|
---|
277 | {
|
---|
278 | Name => 'ExposureCompensation',
|
---|
279 | Condition => '$format eq "string"',
|
---|
280 | ValueConv => '$val =~ s/Expo:\s*//, $val',
|
---|
281 | ValueConvInv => 'IsFloat($val) ? sprintf("Expo:%+.1f",$val) : undef',
|
---|
282 | },
|
---|
283 | { #PH
|
---|
284 | Name => 'ExposureAdjust',
|
---|
285 | Writable => 'rational64s',
|
---|
286 | Unknown => 1,
|
---|
287 | },
|
---|
288 | ],
|
---|
289 | 0x000d => [
|
---|
290 | {
|
---|
291 | Name => 'Contrast',
|
---|
292 | Condition => '$format eq "string"',
|
---|
293 | ValueConv => '$val =~ s/Cont:\s*//, $val',
|
---|
294 | ValueConvInv => 'IsFloat($val) ? sprintf("Cont:%+.1f",$val) : undef',
|
---|
295 | },
|
---|
296 | { #PH
|
---|
297 | Name => 'Contrast',
|
---|
298 | Writable => 'rational64s',
|
---|
299 | Priority => 0,
|
---|
300 | },
|
---|
301 | ],
|
---|
302 | 0x000e => [
|
---|
303 | {
|
---|
304 | Name => 'Shadow',
|
---|
305 | Condition => '$format eq "string"',
|
---|
306 | ValueConv => '$val =~ s/Shad:\s*//, $val',
|
---|
307 | ValueConvInv => 'IsFloat($val) ? sprintf("Shad:%+.1f",$val) : undef',
|
---|
308 | },
|
---|
309 | { #PH (may be incorrect for the SD1)
|
---|
310 | Name => 'Shadow',
|
---|
311 | Writable => 'rational64s',
|
---|
312 | Priority => 0,
|
---|
313 | },
|
---|
314 | ],
|
---|
315 | 0x000f => [
|
---|
316 | {
|
---|
317 | Name => 'Highlight',
|
---|
318 | Condition => '$format eq "string"',
|
---|
319 | ValueConv => '$val =~ s/High:\s*//, $val',
|
---|
320 | ValueConvInv => 'IsFloat($val) ? sprintf("High:%+.1f",$val) : undef',
|
---|
321 | },
|
---|
322 | { #PH (may be incorrect for the SD1)
|
---|
323 | Name => 'Highlight',
|
---|
324 | Writable => 'rational64s',
|
---|
325 | Priority => 0,
|
---|
326 | },
|
---|
327 | ],
|
---|
328 | 0x0010 => [
|
---|
329 | {
|
---|
330 | Name => 'Saturation',
|
---|
331 | Condition => '$format eq "string"',
|
---|
332 | ValueConv => '$val =~ s/Satu:\s*//, $val',
|
---|
333 | ValueConvInv => 'IsFloat($val) ? sprintf("Satu:%+.1f",$val) : undef',
|
---|
334 | },
|
---|
335 | { #PH (may be incorrect for the SD1)
|
---|
336 | Name => 'Saturation',
|
---|
337 | Writable => 'rational64s',
|
---|
338 | Priority => 0,
|
---|
339 | },
|
---|
340 | ],
|
---|
341 | 0x0011 => [
|
---|
342 | {
|
---|
343 | Name => 'Sharpness',
|
---|
344 | Condition => '$format eq "string"',
|
---|
345 | ValueConv => '$val =~ s/Shar:\s*//, $val',
|
---|
346 | ValueConvInv => 'IsFloat($val) ? sprintf("Shar:%+.1f",$val) : undef',
|
---|
347 | },
|
---|
348 | { #PH (may be incorrect for the SD1)
|
---|
349 | Name => 'Sharpness',
|
---|
350 | Writable => 'rational64s',
|
---|
351 | Priority => 0,
|
---|
352 | },
|
---|
353 | ],
|
---|
354 | 0x0012 => [
|
---|
355 | {
|
---|
356 | Name => 'X3FillLight',
|
---|
357 | Condition => '$format eq "string"',
|
---|
358 | ValueConv => '$val =~ s/Fill:\s*//, $val',
|
---|
359 | ValueConvInv => 'IsFloat($val) ? sprintf("Fill:%+.1f",$val) : undef',
|
---|
360 | },
|
---|
361 | { #PH
|
---|
362 | Name => 'X3FillLight',
|
---|
363 | Writable => 'rational64s',
|
---|
364 | },
|
---|
365 | ],
|
---|
366 | 0x0014 => [
|
---|
367 | {
|
---|
368 | Name => 'ColorAdjustment',
|
---|
369 | Condition => '$format eq "string"',
|
---|
370 | ValueConv => '$val =~ s/CC:\s*//, $val',
|
---|
371 | ValueConvInv => 'IsInt($val) ? "CC:$val" : undef',
|
---|
372 | },
|
---|
373 | { #PH
|
---|
374 | Name => 'ColorAdjustment',
|
---|
375 | Writable => 'rational64s',
|
---|
376 | Count => 3,
|
---|
377 | },
|
---|
378 | ],
|
---|
379 | 0x0015 => 'AdjustmentMode',
|
---|
380 | 0x0016 => {
|
---|
381 | Name => 'Quality',
|
---|
382 | ValueConv => '$val =~ s/Qual:\s*//, $val',
|
---|
383 | ValueConvInv => 'IsInt($val) ? "Qual:$val" : undef',
|
---|
384 | },
|
---|
385 | 0x0017 => 'Firmware',
|
---|
386 | 0x0018 => {
|
---|
387 | Name => 'Software',
|
---|
388 | Priority => 0,
|
---|
389 | },
|
---|
390 | 0x0019 => 'AutoBracket',
|
---|
391 | 0x001a => [ #PH
|
---|
392 | {
|
---|
393 | Name => 'PreviewImageStart',
|
---|
394 | Condition => '$format eq "int32u"',
|
---|
395 | Notes => q{
|
---|
396 | Sigma Photo Pro writes ChrominanceNoiseReduction here, but various
|
---|
397 | models use this for PreviewImageStart
|
---|
398 | },
|
---|
399 | IsOffset => 1,
|
---|
400 | OffsetPair => 0x001b,
|
---|
401 | DataTag => 'PreviewImage',
|
---|
402 | Writable => 'int32u',
|
---|
403 | WriteGroup => 'MakerNotes',
|
---|
404 | Protected => 2,
|
---|
405 | },{ # (written by Sigma Photo Pro)
|
---|
406 | Name => 'ChrominanceNoiseReduction',
|
---|
407 | Condition => '$format eq "string"',
|
---|
408 | ValueConv => '$val =~ s/Chro:\s*//, $val',
|
---|
409 | ValueConvInv => 'IsFloat($val) ? sprintf("Chro:%+.1f",$val) : undef',
|
---|
410 | },
|
---|
411 | # the SD1 writes something else here (rational64s, value 0/10)
|
---|
412 | # (but we can't test by model because Sigma Photo Pro writes this too)
|
---|
413 | ],
|
---|
414 | 0x001b => [ #PH
|
---|
415 | {
|
---|
416 | Name => 'PreviewImageLength',
|
---|
417 | Condition => '$format eq "int32u"',
|
---|
418 | Notes => q{
|
---|
419 | Sigma Photo Pro writes LuminanceNoiseReduction here, but various models use
|
---|
420 | this for PreviewImageLength
|
---|
421 | },
|
---|
422 | OffsetPair => 0x001a,
|
---|
423 | DataTag => 'PreviewImage',
|
---|
424 | Writable => 'int32u',
|
---|
425 | WriteGroup => 'MakerNotes',
|
---|
426 | Protected => 2,
|
---|
427 | },{ # (written by Sigma Photo Pro)
|
---|
428 | Name => 'LuminanceNoiseReduction',
|
---|
429 | Condition => '$format eq "string"',
|
---|
430 | ValueConv => '$val =~ s/Luma:\s*//, $val',
|
---|
431 | ValueConvInv => 'IsFloat($val) ? sprintf("Luma:%+.1f",$val) : undef',
|
---|
432 | },
|
---|
433 | # the SD1 writes something else here (rational64s, value 0/10)
|
---|
434 | ],
|
---|
435 | 0x001c => [ #PH
|
---|
436 | {
|
---|
437 | Name => 'PreviewImageSize',
|
---|
438 | Condition => '$$self{MakerNoteSigmaVer} < 3',
|
---|
439 | Notes => q{
|
---|
440 | PreviewImageStart for the SD1 and Merrill/Quattro models, and
|
---|
441 | PreviewImageSize for others
|
---|
442 | },
|
---|
443 | Writable => 'int16u',
|
---|
444 | Count => 2,
|
---|
445 | PrintConv => '$val =~ tr/ /x/; $val',
|
---|
446 | PrintConvInv => '$val =~ tr/x/ /; $val',
|
---|
447 | },{
|
---|
448 | Name => 'PreviewImageStart',
|
---|
449 | Condition => '$format eq "int32u"',
|
---|
450 | IsOffset => 1,
|
---|
451 | OffsetPair => 0x001d,
|
---|
452 | DataTag => 'PreviewImage',
|
---|
453 | Writable => 'int32u',
|
---|
454 | WriteGroup => 'MakerNotes',
|
---|
455 | Protected => 2,
|
---|
456 | },
|
---|
457 | ],
|
---|
458 | 0x001d => [ #PH
|
---|
459 | {
|
---|
460 | Name => 'MakerNoteVersion',
|
---|
461 | Condition => '$$self{MakerNoteSigmaVer} < 3',
|
---|
462 | Notes => q{
|
---|
463 | PreviewImageLength for the SD1 and Merrill/Quattro models, and
|
---|
464 | MakerNoteVersion for others
|
---|
465 | },
|
---|
466 | Writable => 'undef',
|
---|
467 | },{
|
---|
468 | Name => 'PreviewImageLength',
|
---|
469 | Condition => '$format eq "int32u"',
|
---|
470 | OffsetPair => 0x001c,
|
---|
471 | DataTag => 'PreviewImage',
|
---|
472 | Writable => 'int32u',
|
---|
473 | WriteGroup => 'MakerNotes',
|
---|
474 | Protected => 2,
|
---|
475 | },
|
---|
476 | ],
|
---|
477 | # 0x001e - int16u: 0, 4, 13 - flash mode for other models?
|
---|
478 | 0x001e => { #PH
|
---|
479 | Name => 'PreviewImageSize',
|
---|
480 | Condition => '$$self{MakerNoteSigmaVer} >= 3',
|
---|
481 | Notes => 'only valid for some models',
|
---|
482 | Writable => 'int16u',
|
---|
483 | Count => 2,
|
---|
484 | PrintConv => '$val =~ tr/ /x/; $val',
|
---|
485 | PrintConvInv => '$val =~ tr/x/ /; $val',
|
---|
486 | },
|
---|
487 | 0x001f => [ #PH
|
---|
488 | {
|
---|
489 | Name => 'AFPoint', # (NC -- invalid for SD9,SD14?)
|
---|
490 | Condition => '$$self{MakerNoteSigmaVer} < 3',
|
---|
491 | Notes => q{
|
---|
492 | MakerNoteVersion for the SD1 and Merrill/Quattro models, and AFPoint for
|
---|
493 | others
|
---|
494 | },
|
---|
495 | # values: "", "Center", "Center,Center", "Right,Right"
|
---|
496 | },{
|
---|
497 | Name => 'MakerNoteVersion',
|
---|
498 | Writable => 'undef',
|
---|
499 | },
|
---|
500 | ],
|
---|
501 | # 0x0020 - string: " " for most models, or int16u: 4 for the DP3 Merrill
|
---|
502 | # 0x0021 - string: " " for most models, or int8u[2]: '3 3' for the DP3 Merrill
|
---|
503 | 0x0022 => { #PH (NC)
|
---|
504 | Name => 'FileFormat',
|
---|
505 | Condition => '$$self{MakerNoteSigmaVer} < 3',
|
---|
506 | Notes => 'models other than the SD1 and Merrill/Quattro models',
|
---|
507 | # values: "JPG", "JPG-S", "JPG-P", "X3F", "X3F-S"
|
---|
508 | },
|
---|
509 | # 0x0023 - string: "", 10, 83, 131, 145, 150, 152, 169
|
---|
510 | 0x0024 => { # (invalid for SD9,SD14?)
|
---|
511 | Name => 'Calibration',
|
---|
512 | Condition => '$$self{MakerNoteSigmaVer} < 3',
|
---|
513 | Notes => 'models other than the SD1 and Merrill/Quattro models',
|
---|
514 | },
|
---|
515 | # 0x0025 - string: "", "0.70", "0.90"
|
---|
516 | # 0x0026-2b - int32u: 0
|
---|
517 | 0x0026 => { #PH (NC)
|
---|
518 | Name => 'FileFormat',
|
---|
519 | Condition => '$$self{MakerNoteSigmaVer} >= 3',
|
---|
520 | Notes => 'some newer models only',
|
---|
521 | # (also Sigma fp)
|
---|
522 | },
|
---|
523 | 0x0027 => [{ #PH
|
---|
524 | Name => 'LensType',
|
---|
525 | Condition => '$$self{MakerNoteSigmaVer} >= 3 and $format eq "string"',
|
---|
526 | Notes => 'some newer models only',
|
---|
527 | ValueConv => '$val =~ /^[0-9a-f]+$/i ? hex($val) : $val',
|
---|
528 | # (truncate decimal part and convert hex)
|
---|
529 | ValueConvInv => '$val=~s/\.\d+$//;$val=~/^0x/ and $val=hex($val);IsInt($val) ? sprintf("%x",$val) : $val',
|
---|
530 | SeparateTable => 'LensType',
|
---|
531 | PrintHex => 1,
|
---|
532 | PrintConv => \%sigmaLensTypes,
|
---|
533 | },{ #PH
|
---|
534 | Name => 'LensType',
|
---|
535 | Condition => '$$self{MakerNoteSigmaVer} >= 3',
|
---|
536 | Notes => 'some other models like the fp',
|
---|
537 | Writable => 'int16u',
|
---|
538 | SeparateTable => 'LensType',
|
---|
539 | PrintHex => 1,
|
---|
540 | PrintConv => \%sigmaLensTypes,
|
---|
541 | }],
|
---|
542 | 0x002a => { #PH
|
---|
543 | Name => 'LensFocalRange',
|
---|
544 | Condition => '$$self{MakerNoteSigmaVer} >= 3',
|
---|
545 | Notes => 'some newer models only',
|
---|
546 | Writable => 'rational64u',
|
---|
547 | Count => 2,
|
---|
548 | PrintConv => '$val=~s/ / to /; $val',
|
---|
549 | PrintConvInv => '$val=~s/to //; $val',
|
---|
550 | },
|
---|
551 | 0x002b => { #PH
|
---|
552 | Name => 'LensMaxApertureRange',
|
---|
553 | # for most models this gives the max aperture at the long/short focal lengths,
|
---|
554 | # but for some models this gives the min/max aperture
|
---|
555 | Condition => '$$self{MakerNoteSigmaVer} >= 3',
|
---|
556 | Notes => 'some newer models only',
|
---|
557 | Writable => 'rational64u',
|
---|
558 | Count => 2,
|
---|
559 | PrintConv => '$val=~s/ / to /; $val',
|
---|
560 | PrintConvInv => '$val=~s/to /; $val',
|
---|
561 | },
|
---|
562 | # 0x002c is rational64u for some models, with a value that may be related to FNumber - PH
|
---|
563 | 0x002c => { #PH
|
---|
564 | Name => 'ColorMode',
|
---|
565 | Condition => '$format eq "int32u"',
|
---|
566 | Notes => 'not valid for some models',
|
---|
567 | Writable => 'int32u',
|
---|
568 | # this tag written by Sigma Photo Pro even for cameras that write 'n/a' here
|
---|
569 | PrintConv => {
|
---|
570 | 0 => 'n/a',
|
---|
571 | 1 => 'Sepia',
|
---|
572 | 2 => 'B&W',
|
---|
573 | 3 => 'Standard',
|
---|
574 | 4 => 'Vivid',
|
---|
575 | 5 => 'Neutral',
|
---|
576 | 6 => 'Portrait',
|
---|
577 | 7 => 'Landscape',
|
---|
578 | 8 => 'FOV Classic Blue',
|
---|
579 | },
|
---|
580 | },
|
---|
581 | # 0x002d - int32u: 0
|
---|
582 | # 0x002e - rational64s: (the negative of FlashExposureComp, but why?)
|
---|
583 | # 0x002f - int32u: 0, 1
|
---|
584 | 0x0030 => [ #PH
|
---|
585 | {
|
---|
586 | Name => 'LensApertureRange',
|
---|
587 | Condition => '$$self{MakerNoteSigmaVer} < 3',
|
---|
588 | Notes => q{
|
---|
589 | Calibration for the SD1 and Merrill/Quattro models, and LensApertureRange
|
---|
590 | for others. Note that LensApertureRange changes with focal length, and some
|
---|
591 | models report the maximum aperture here
|
---|
592 | },
|
---|
593 | },{
|
---|
594 | Name => 'Calibration',
|
---|
595 | },
|
---|
596 | ],
|
---|
597 | 0x0031 => { #PH
|
---|
598 | Name => 'FNumber',
|
---|
599 | Condition => '$$self{MakerNoteSigmaVer} < 3',
|
---|
600 | Notes => 'models other than the SD1 and Merrill/Quattro models',
|
---|
601 | Writable => 'rational64u',
|
---|
602 | PrintConv => 'sprintf("%.1f",$val)',
|
---|
603 | PrintConvInv => '$val',
|
---|
604 | Priority => 0,
|
---|
605 | },
|
---|
606 | 0x0032 => { #PH
|
---|
607 | Name => 'ExposureTime',
|
---|
608 | Condition => '$$self{MakerNoteSigmaVer} < 3',
|
---|
609 | Notes => 'models other than the SD1 and Merrill/Quattro models',
|
---|
610 | Writable => 'rational64u',
|
---|
611 | PrintConv => 'Image::ExifTool::Exif::PrintExposureTime($val)',
|
---|
612 | PrintConvInv => '$val',
|
---|
613 | Priority => 0,
|
---|
614 | },
|
---|
615 | 0x0033 => { #PH
|
---|
616 | Name => 'ExposureTime2',
|
---|
617 | Condition => '$$self{Model} !~ / (SD1|SD9|SD15|Merrill|Quattro|fp)$/',
|
---|
618 | Notes => 'models other than the SD1, SD9, SD15 and Merrill/Quattro models',
|
---|
619 | ValueConv => '$val * 1e-6',
|
---|
620 | ValueConvInv => 'int($val * 1e6 + 0.5)',
|
---|
621 | PrintConv => 'Image::ExifTool::Exif::PrintExposureTime($val)',
|
---|
622 | PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
|
---|
623 | },
|
---|
624 | 0x0034 => { #PH
|
---|
625 | Name => 'BurstShot',
|
---|
626 | Condition => '$$self{MakerNoteSigmaVer} < 3',
|
---|
627 | Notes => 'models other than the SD1 and Merrill/Quattro models',
|
---|
628 | Writable => 'int32u',
|
---|
629 | },
|
---|
630 | # 0x0034 - int32u: 0,1,2,3 or 4
|
---|
631 | 0x0035 => { #PH
|
---|
632 | Name => 'ExposureCompensation',
|
---|
633 | Condition => '$$self{MakerNoteSigmaVer} < 3',
|
---|
634 | Notes => 'models other than the SD1 and Merrill/Quattro models',
|
---|
635 | Writable => 'rational64s',
|
---|
636 | # add a '+' sign to positive values
|
---|
637 | PrintConv => '$val and $val =~ s/^(\d)/\+$1/; $val',
|
---|
638 | PrintConvInv => '$val',
|
---|
639 | },
|
---|
640 | # 0x0036 - string: " "
|
---|
641 | # 0x0037-38 - string: ""
|
---|
642 | 0x0039 => { #PH (invalid for SD9, SD14?)
|
---|
643 | Name => 'SensorTemperature',
|
---|
644 | Condition => '$$self{MakerNoteSigmaVer} < 3',
|
---|
645 | Notes => 'models other than the SD1 and Merrill/Quattro models',
|
---|
646 | # (string format)
|
---|
647 | PrintConv => 'IsInt($val) ? "$val C" : $val',
|
---|
648 | PrintConvInv => '$val=~s/ ?C$//; $val',
|
---|
649 | },
|
---|
650 | 0x003a => { #PH
|
---|
651 | Name => 'FlashExposureComp',
|
---|
652 | Condition => '$$self{MakerNoteSigmaVer} < 3',
|
---|
653 | Notes => 'models other than the SD1 and Merrill/Quattro models',
|
---|
654 | Writable => 'rational64s',
|
---|
655 | },
|
---|
656 | 0x003b => { #PH (how is this different from other Firmware?)
|
---|
657 | Name => 'Firmware',
|
---|
658 | Condition => '$$self{MakerNoteSigmaVer} < 3',
|
---|
659 | Notes => 'models other than the SD1 and Merrill/Quattro models',
|
---|
660 | Priority => 0,
|
---|
661 | },
|
---|
662 | 0x003c => { #PH
|
---|
663 | Name => 'WhiteBalance',
|
---|
664 | Condition => '$$self{MakerNoteSigmaVer} < 3',
|
---|
665 | Notes => 'models other than the SD1 and Merrill/Quattro models',
|
---|
666 | Priority => 0,
|
---|
667 | },
|
---|
668 | 0x003d => { #PH (new for SD15 and SD1)
|
---|
669 | Name => 'PictureMode',
|
---|
670 | Notes => 'same as ColorMode, but "Standard" when ColorMode is Sepia or B&W',
|
---|
671 | },
|
---|
672 | 0x0048 => { #PH
|
---|
673 | Name => 'LensApertureRange',
|
---|
674 | Condition => '$$self{MakerNoteSigmaVer} >= 3',
|
---|
675 | Notes => 'some newer models only',
|
---|
676 | },
|
---|
677 | 0x0049 => { #PH
|
---|
678 | Name => 'FNumber',
|
---|
679 | Condition => '$$self{MakerNoteSigmaVer} >= 3',
|
---|
680 | Notes => 'some newer models only',
|
---|
681 | Writable => 'rational64u',
|
---|
682 | PrintConv => 'sprintf("%.1f",$val)',
|
---|
683 | PrintConvInv => '$val',
|
---|
684 | Priority => 0,
|
---|
685 | },
|
---|
686 | 0x004a => { #PH
|
---|
687 | Name => 'ExposureTime',
|
---|
688 | Condition => '$$self{MakerNoteSigmaVer} >= 3',
|
---|
689 | Notes => 'some newer models only',
|
---|
690 | Writable => 'rational64u',
|
---|
691 | PrintConv => 'Image::ExifTool::Exif::PrintExposureTime($val)',
|
---|
692 | PrintConvInv => '$val',
|
---|
693 | Priority => 0,
|
---|
694 | },
|
---|
695 | 0x004b => [{ #PH
|
---|
696 | Name => 'ExposureTime2',
|
---|
697 | Condition => '$$self{Model} =~ /^SIGMA (SD1( Merrill)?|DP\d Merrill)$/',
|
---|
698 | Notes => 'SD1 and DP Merrill models only',
|
---|
699 | PrintConv => 'Image::ExifTool::Exif::PrintExposureTime($val)',
|
---|
700 | PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
|
---|
701 | },{ #PH
|
---|
702 | Name => 'ExposureTime2',
|
---|
703 | Condition => '$$self{Model} =~ /^SIGMA dp\d Quattro$/i',
|
---|
704 | Notes => 'DP Quattro models only',
|
---|
705 | ValueConv => '$val / 1000000',
|
---|
706 | ValueConvInv => '$val * 1000000',
|
---|
707 | PrintConv => 'Image::ExifTool::Exif::PrintExposureTime($val)',
|
---|
708 | PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
|
---|
709 | }],
|
---|
710 | 0x004d => { #PH
|
---|
711 | Name => 'ExposureCompensation',
|
---|
712 | Condition => '$$self{MakerNoteSigmaVer} >= 3',
|
---|
713 | Notes => 'some newer models only',
|
---|
714 | Writable => 'rational64s',
|
---|
715 | # add a '+' sign to positive values
|
---|
716 | PrintConv => '$val and $val =~ s/^(\d)/\+$1/; $val',
|
---|
717 | PrintConvInv => '$val',
|
---|
718 | },
|
---|
719 | # 0x0054 - string: "F20","F23"
|
---|
720 | 0x0055 => { #PH
|
---|
721 | Name => 'SensorTemperature',
|
---|
722 | Condition => '$$self{MakerNoteSigmaVer} >= 3',
|
---|
723 | Notes => 'some newer models only',
|
---|
724 | # (string format)
|
---|
725 | PrintConv => 'IsInt($val) ? "$val C" : $val',
|
---|
726 | PrintConvInv => '$val=~s/ ?C$//; $val',
|
---|
727 | },
|
---|
728 | 0x0056 => { #PH (NC)
|
---|
729 | Name => 'FlashExposureComp',
|
---|
730 | Condition => '$$self{MakerNoteSigmaVer} >= 3',
|
---|
731 | Notes => 'some newer models only',
|
---|
732 | Writable => 'rational64s',
|
---|
733 | },
|
---|
734 | 0x0057 => { #PH (how is this different from other Firmware?)
|
---|
735 | Name => 'Firmware2',
|
---|
736 | Condition => '$format eq "string"',
|
---|
737 | Notes => 'some newer models only',
|
---|
738 | Priority => 0,
|
---|
739 | },
|
---|
740 | 0x0058 => { #PH
|
---|
741 | Name => 'WhiteBalance',
|
---|
742 | Condition => '$$self{MakerNoteSigmaVer} >= 3',
|
---|
743 | Notes => 'some newer models only',
|
---|
744 | Priority => 0,
|
---|
745 | },
|
---|
746 | 0x0059 => { #PH
|
---|
747 | Name => 'DigitalFilter',
|
---|
748 | Condition => '$$self{MakerNoteSigmaVer} >= 3',
|
---|
749 | Notes => 'some newer models only',
|
---|
750 | # seen: Standard,Landscape,Monochrome,Neutral,Portrait,Sepia,Vivid
|
---|
751 | },
|
---|
752 | # 0x005a/b/c - rational64s: 0/10 for the SD1
|
---|
753 | 0x0084 => { #PH (Quattro models and fp)
|
---|
754 | Name => 'Model',
|
---|
755 | Description => 'Camera Model Name',
|
---|
756 | },
|
---|
757 | # 0x0085
|
---|
758 | 0x0086 => { #PH (Quattro models)
|
---|
759 | Name => 'ISO',
|
---|
760 | Writable => 'int16u',
|
---|
761 | },
|
---|
762 | 0x0087 => 'ResolutionMode', #PH (Quattro models)
|
---|
763 | 0x0088 => 'WhiteBalance', #PH (Quattro models)
|
---|
764 | 0x008c => 'Firmware', #PH (Quattro models)
|
---|
765 | 0x011f => { #IB (FP DNG images)
|
---|
766 | Name => 'CameraCalibration',
|
---|
767 | Writable => 'float',
|
---|
768 | Count => 9,
|
---|
769 | },
|
---|
770 | 0x0120 => { #IB (FP DNG images)
|
---|
771 | Name => 'WBSettings',
|
---|
772 | SubDirectory => { TagTable => 'Image::ExifTool::Sigma::WBSettings' },
|
---|
773 | },
|
---|
774 | 0x0121 => { #IB (FP DNG images)
|
---|
775 | Name => 'WBSettings2',
|
---|
776 | SubDirectory => { TagTable => 'Image::ExifTool::Sigma::WBSettings2' },
|
---|
777 | },
|
---|
778 | );
|
---|
779 |
|
---|
780 | # WB settings (ref IB)
|
---|
781 | %Image::ExifTool::Sigma::WBSettings = (
|
---|
782 | PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
|
---|
783 | WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
|
---|
784 | CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
|
---|
785 | WRITABLE => 1,
|
---|
786 | FORMAT => 'float',
|
---|
787 | GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
---|
788 | 0 => { Name => 'WB_RGBLevelsAuto', Format => 'float[3]' },
|
---|
789 | 3 => { Name => 'WB_RGBLevelsDaylight', Format => 'float[3]' },
|
---|
790 | 6 => { Name => 'WB_RGBLevelsShade', Format => 'float[3]' },
|
---|
791 | 9 => { Name => 'WB_RGBLevelsOvercast', Format => 'float[3]' },
|
---|
792 | 12 => { Name => 'WB_RGBLevelsIncandescent', Format => 'float[3]' },
|
---|
793 | 15 => { Name => 'WB_RGBLevelsFluorescent', Format => 'float[3]' },
|
---|
794 | 18 => { Name => 'WB_RGBLevelsFlash', Format => 'float[3]' },
|
---|
795 | 21 => { Name => 'WB_RGBLevelsCustom1', Format => 'float[3]' },
|
---|
796 | 24 => { Name => 'WB_RGBLevelsCustom2', Format => 'float[3]' },
|
---|
797 | 27 => { Name => 'WB_RGBLevelsCustom3', Format => 'float[3]' },
|
---|
798 | );
|
---|
799 |
|
---|
800 | # WB settings (ref IB)
|
---|
801 | %Image::ExifTool::Sigma::WBSettings2 = (
|
---|
802 | PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
|
---|
803 | WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
|
---|
804 | CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
|
---|
805 | WRITABLE => 1,
|
---|
806 | FORMAT => 'float',
|
---|
807 | GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
---|
808 | 0 => { Name => 'WB_RGBLevelsUnknown0', Unknown => 1, Format => 'float[3]' },
|
---|
809 | 3 => { Name => 'WB_RGBLevelsUnknown1', Unknown => 1, Format => 'float[3]' },
|
---|
810 | 6 => { Name => 'WB_RGBLevelsUnknown2', Unknown => 1, Format => 'float[3]' },
|
---|
811 | 9 => { Name => 'WB_RGBLevelsUnknown3', Unknown => 1, Format => 'float[3]' },
|
---|
812 | 12 => { Name => 'WB_RGBLevelsUnknown4', Unknown => 1, Format => 'float[3]' },
|
---|
813 | 15 => { Name => 'WB_RGBLevelsUnknown5', Unknown => 1, Format => 'float[3]' },
|
---|
814 | 18 => { Name => 'WB_RGBLevelsUnknown6', Unknown => 1, Format => 'float[3]' },
|
---|
815 | 21 => { Name => 'WB_RGBLevelsUnknown7', Unknown => 1, Format => 'float[3]' },
|
---|
816 | 24 => { Name => 'WB_RGBLevelsUnknown8', Unknown => 1, Format => 'float[3]' },
|
---|
817 | 27 => { Name => 'WB_RGBLevelsUnknown9', Unknown => 1, Format => 'float[3]' },
|
---|
818 | );
|
---|
819 |
|
---|
820 |
|
---|
821 | 1; # end
|
---|
822 |
|
---|
823 | __END__
|
---|
824 |
|
---|
825 | =head1 NAME
|
---|
826 |
|
---|
827 | Image::ExifTool::Sigma - Sigma/Foveon EXIF maker notes tags
|
---|
828 |
|
---|
829 | =head1 SYNOPSIS
|
---|
830 |
|
---|
831 | This module is loaded automatically by Image::ExifTool when required.
|
---|
832 |
|
---|
833 | =head1 DESCRIPTION
|
---|
834 |
|
---|
835 | This module contains definitions required by Image::ExifTool to interpret
|
---|
836 | Sigma and Foveon maker notes in EXIF information.
|
---|
837 |
|
---|
838 | =head1 AUTHOR
|
---|
839 |
|
---|
840 | Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
---|
841 |
|
---|
842 | This library is free software; you can redistribute it and/or modify it
|
---|
843 | under the same terms as Perl itself.
|
---|
844 |
|
---|
845 | =head1 REFERENCES
|
---|
846 |
|
---|
847 | =over 4
|
---|
848 |
|
---|
849 | =item L<http://www.x3f.info/technotes/FileDocs/MakerNoteDoc.html>
|
---|
850 |
|
---|
851 | =back
|
---|
852 |
|
---|
853 | =head1 SEE ALSO
|
---|
854 |
|
---|
855 | L<Image::ExifTool::TagNames/Sigma Tags>,
|
---|
856 | L<Image::ExifTool(3pm)|Image::ExifTool>
|
---|
857 |
|
---|
858 | =cut
|
---|