1 | /*
|
---|
2 | * Copyright 2002-2017 Drew Noakes
|
---|
3 | *
|
---|
4 | * Licensed under the Apache License, Version 2.0 (the "License");
|
---|
5 | * you may not use this file except in compliance with the License.
|
---|
6 | * You may obtain a copy of the License at
|
---|
7 | *
|
---|
8 | * http://www.apache.org/licenses/LICENSE-2.0
|
---|
9 | *
|
---|
10 | * Unless required by applicable law or agreed to in writing, software
|
---|
11 | * distributed under the License is distributed on an "AS IS" BASIS,
|
---|
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
---|
13 | * See the License for the specific language governing permissions and
|
---|
14 | * limitations under the License.
|
---|
15 | *
|
---|
16 | * More information about this project is available at:
|
---|
17 | *
|
---|
18 | * https://drewnoakes.com/code/exif/
|
---|
19 | * https://github.com/drewnoakes/metadata-extractor
|
---|
20 | */
|
---|
21 | package com.drew.metadata.exif.makernotes;
|
---|
22 |
|
---|
23 | import com.drew.lang.SequentialByteArrayReader;
|
---|
24 | import com.drew.lang.annotations.NotNull;
|
---|
25 | import com.drew.metadata.Directory;
|
---|
26 |
|
---|
27 | import java.io.IOException;
|
---|
28 | import java.util.HashMap;
|
---|
29 |
|
---|
30 | /**
|
---|
31 | * The Olympus makernote is used by many manufacturers (Epson, Konica, Minolta and Agfa...), and as such contains some tags
|
---|
32 | * that appear specific to those manufacturers.
|
---|
33 | *
|
---|
34 | * @author Drew Noakes https://drewnoakes.com
|
---|
35 | */
|
---|
36 | @SuppressWarnings("WeakerAccess")
|
---|
37 | public class OlympusMakernoteDirectory extends Directory
|
---|
38 | {
|
---|
39 | /** Used by Konica / Minolta cameras. */
|
---|
40 | public static final int TAG_MAKERNOTE_VERSION = 0x0000;
|
---|
41 | /** Used by Konica / Minolta cameras. */
|
---|
42 | public static final int TAG_CAMERA_SETTINGS_1 = 0x0001;
|
---|
43 | /** Alternate Camera Settings Tag. Used by Konica / Minolta cameras. */
|
---|
44 | public static final int TAG_CAMERA_SETTINGS_2 = 0x0003;
|
---|
45 | /** Used by Konica / Minolta cameras. */
|
---|
46 | public static final int TAG_COMPRESSED_IMAGE_SIZE = 0x0040;
|
---|
47 | /** Used by Konica / Minolta cameras. */
|
---|
48 | public static final int TAG_MINOLTA_THUMBNAIL_OFFSET_1 = 0x0081;
|
---|
49 | /** Alternate Thumbnail Offset. Used by Konica / Minolta cameras. */
|
---|
50 | public static final int TAG_MINOLTA_THUMBNAIL_OFFSET_2 = 0x0088;
|
---|
51 | /** Length of thumbnail in bytes. Used by Konica / Minolta cameras. */
|
---|
52 | public static final int TAG_MINOLTA_THUMBNAIL_LENGTH = 0x0089;
|
---|
53 |
|
---|
54 | public static final int TAG_THUMBNAIL_IMAGE = 0x0100;
|
---|
55 |
|
---|
56 | /**
|
---|
57 | * Used by Konica / Minolta cameras
|
---|
58 | * 0 = Natural Colour
|
---|
59 | * 1 = Black & White
|
---|
60 | * 2 = Vivid colour
|
---|
61 | * 3 = Solarization
|
---|
62 | * 4 = AdobeRGB
|
---|
63 | */
|
---|
64 | public static final int TAG_COLOUR_MODE = 0x0101;
|
---|
65 |
|
---|
66 | /**
|
---|
67 | * Used by Konica / Minolta cameras.
|
---|
68 | * 0 = Raw
|
---|
69 | * 1 = Super Fine
|
---|
70 | * 2 = Fine
|
---|
71 | * 3 = Standard
|
---|
72 | * 4 = Extra Fine
|
---|
73 | */
|
---|
74 | public static final int TAG_IMAGE_QUALITY_1 = 0x0102;
|
---|
75 |
|
---|
76 | /**
|
---|
77 | * Not 100% sure about this tag.
|
---|
78 | * <p>
|
---|
79 | * Used by Konica / Minolta cameras.
|
---|
80 | * 0 = Raw
|
---|
81 | * 1 = Super Fine
|
---|
82 | * 2 = Fine
|
---|
83 | * 3 = Standard
|
---|
84 | * 4 = Extra Fine
|
---|
85 | */
|
---|
86 | public static final int TAG_IMAGE_QUALITY_2 = 0x0103;
|
---|
87 |
|
---|
88 | public static final int TAG_BODY_FIRMWARE_VERSION = 0x0104;
|
---|
89 |
|
---|
90 | /**
|
---|
91 | * Three values:
|
---|
92 | * Value 1: 0=Normal, 2=Fast, 3=Panorama
|
---|
93 | * Value 2: Sequence Number Value 3:
|
---|
94 | * 1 = Panorama Direction: Left to Right
|
---|
95 | * 2 = Panorama Direction: Right to Left
|
---|
96 | * 3 = Panorama Direction: Bottom to Top
|
---|
97 | * 4 = Panorama Direction: Top to Bottom
|
---|
98 | */
|
---|
99 | public static final int TAG_SPECIAL_MODE = 0x0200;
|
---|
100 |
|
---|
101 | /**
|
---|
102 | * 1 = Standard Quality
|
---|
103 | * 2 = High Quality
|
---|
104 | * 3 = Super High Quality
|
---|
105 | */
|
---|
106 | public static final int TAG_JPEG_QUALITY = 0x0201;
|
---|
107 |
|
---|
108 | /**
|
---|
109 | * 0 = Normal (Not Macro)
|
---|
110 | * 1 = Macro
|
---|
111 | */
|
---|
112 | public static final int TAG_MACRO_MODE = 0x0202;
|
---|
113 |
|
---|
114 | /**
|
---|
115 | * 0 = Off, 1 = On
|
---|
116 | */
|
---|
117 | public static final int TAG_BW_MODE = 0x0203;
|
---|
118 |
|
---|
119 | /** Zoom Factor (0 or 1 = normal) */
|
---|
120 | public static final int TAG_DIGITAL_ZOOM = 0x0204;
|
---|
121 | public static final int TAG_FOCAL_PLANE_DIAGONAL = 0x0205;
|
---|
122 | public static final int TAG_LENS_DISTORTION_PARAMETERS = 0x0206;
|
---|
123 | public static final int TAG_CAMERA_TYPE = 0x0207;
|
---|
124 | public static final int TAG_PICT_INFO = 0x0208;
|
---|
125 | public static final int TAG_CAMERA_ID = 0x0209;
|
---|
126 |
|
---|
127 | /**
|
---|
128 | * Used by Epson cameras
|
---|
129 | * Units = pixels
|
---|
130 | */
|
---|
131 | public static final int TAG_IMAGE_WIDTH = 0x020B;
|
---|
132 |
|
---|
133 | /**
|
---|
134 | * Used by Epson cameras
|
---|
135 | * Units = pixels
|
---|
136 | */
|
---|
137 | public static final int TAG_IMAGE_HEIGHT = 0x020C;
|
---|
138 |
|
---|
139 | /** A string. Used by Epson cameras. */
|
---|
140 | public static final int TAG_ORIGINAL_MANUFACTURER_MODEL = 0x020D;
|
---|
141 |
|
---|
142 | public static final int TAG_PREVIEW_IMAGE = 0x0280;
|
---|
143 | public static final int TAG_PRE_CAPTURE_FRAMES = 0x0300;
|
---|
144 | public static final int TAG_WHITE_BOARD = 0x0301;
|
---|
145 | public static final int TAG_ONE_TOUCH_WB = 0x0302;
|
---|
146 | public static final int TAG_WHITE_BALANCE_BRACKET = 0x0303;
|
---|
147 | public static final int TAG_WHITE_BALANCE_BIAS = 0x0304;
|
---|
148 | public static final int TAG_SCENE_MODE = 0x0403;
|
---|
149 | public static final int TAG_SERIAL_NUMBER_1 = 0x0404;
|
---|
150 | public static final int TAG_FIRMWARE = 0x0405;
|
---|
151 |
|
---|
152 | /**
|
---|
153 | * See the PIM specification here:
|
---|
154 | * http://www.ozhiker.com/electronics/pjmt/jpeg_info/pim.html
|
---|
155 | */
|
---|
156 | public static final int TAG_PRINT_IMAGE_MATCHING_INFO = 0x0E00;
|
---|
157 |
|
---|
158 | public static final int TAG_DATA_DUMP_1 = 0x0F00;
|
---|
159 | public static final int TAG_DATA_DUMP_2 = 0x0F01;
|
---|
160 |
|
---|
161 | public static final int TAG_SHUTTER_SPEED_VALUE = 0x1000;
|
---|
162 | public static final int TAG_ISO_VALUE = 0x1001;
|
---|
163 | public static final int TAG_APERTURE_VALUE = 0x1002;
|
---|
164 | public static final int TAG_BRIGHTNESS_VALUE = 0x1003;
|
---|
165 | public static final int TAG_FLASH_MODE = 0x1004;
|
---|
166 | public static final int TAG_FLASH_DEVICE = 0x1005;
|
---|
167 | public static final int TAG_BRACKET = 0x1006;
|
---|
168 | public static final int TAG_SENSOR_TEMPERATURE = 0x1007;
|
---|
169 | public static final int TAG_LENS_TEMPERATURE = 0x1008;
|
---|
170 | public static final int TAG_LIGHT_CONDITION = 0x1009;
|
---|
171 | public static final int TAG_FOCUS_RANGE = 0x100A;
|
---|
172 | public static final int TAG_FOCUS_MODE = 0x100B;
|
---|
173 | public static final int TAG_FOCUS_DISTANCE = 0x100C;
|
---|
174 | public static final int TAG_ZOOM = 0x100D;
|
---|
175 | public static final int TAG_MACRO_FOCUS = 0x100E;
|
---|
176 | public static final int TAG_SHARPNESS = 0x100F;
|
---|
177 | public static final int TAG_FLASH_CHARGE_LEVEL = 0x1010;
|
---|
178 | public static final int TAG_COLOUR_MATRIX = 0x1011;
|
---|
179 | public static final int TAG_BLACK_LEVEL = 0x1012;
|
---|
180 | public static final int TAG_COLOR_TEMPERATURE_BG = 0x1013;
|
---|
181 | public static final int TAG_COLOR_TEMPERATURE_RG = 0x1014;
|
---|
182 | public static final int TAG_WB_MODE = 0x1015;
|
---|
183 | // public static final int TAG_ = 0x1016;
|
---|
184 | public static final int TAG_RED_BALANCE = 0x1017;
|
---|
185 | public static final int TAG_BLUE_BALANCE = 0x1018;
|
---|
186 | public static final int TAG_COLOR_MATRIX_NUMBER = 0x1019;
|
---|
187 | public static final int TAG_SERIAL_NUMBER_2 = 0x101A;
|
---|
188 |
|
---|
189 | public static final int TAG_EXTERNAL_FLASH_AE1_0 = 0x101B;
|
---|
190 | public static final int TAG_EXTERNAL_FLASH_AE2_0 = 0x101C;
|
---|
191 | public static final int TAG_INTERNAL_FLASH_AE1_0 = 0x101D;
|
---|
192 | public static final int TAG_INTERNAL_FLASH_AE2_0 = 0x101E;
|
---|
193 | public static final int TAG_EXTERNAL_FLASH_AE1 = 0x101F;
|
---|
194 | public static final int TAG_EXTERNAL_FLASH_AE2 = 0x1020;
|
---|
195 | public static final int TAG_INTERNAL_FLASH_AE1 = 0x1021;
|
---|
196 | public static final int TAG_INTERNAL_FLASH_AE2 = 0x1022;
|
---|
197 |
|
---|
198 | public static final int TAG_FLASH_BIAS = 0x1023;
|
---|
199 | public static final int TAG_INTERNAL_FLASH_TABLE = 0x1024;
|
---|
200 | public static final int TAG_EXTERNAL_FLASH_G_VALUE = 0x1025;
|
---|
201 | public static final int TAG_EXTERNAL_FLASH_BOUNCE = 0x1026;
|
---|
202 | public static final int TAG_EXTERNAL_FLASH_ZOOM = 0x1027;
|
---|
203 | public static final int TAG_EXTERNAL_FLASH_MODE = 0x1028;
|
---|
204 | public static final int TAG_CONTRAST = 0x1029;
|
---|
205 | public static final int TAG_SHARPNESS_FACTOR = 0x102A;
|
---|
206 | public static final int TAG_COLOUR_CONTROL = 0x102B;
|
---|
207 | public static final int TAG_VALID_BITS = 0x102C;
|
---|
208 | public static final int TAG_CORING_FILTER = 0x102D;
|
---|
209 | public static final int TAG_OLYMPUS_IMAGE_WIDTH = 0x102E;
|
---|
210 | public static final int TAG_OLYMPUS_IMAGE_HEIGHT = 0x102F;
|
---|
211 | public static final int TAG_SCENE_DETECT = 0x1030;
|
---|
212 | public static final int TAG_SCENE_AREA = 0x1031;
|
---|
213 | // public static final int TAG_ = 0x1032;
|
---|
214 | public static final int TAG_SCENE_DETECT_DATA = 0x1033;
|
---|
215 | public static final int TAG_COMPRESSION_RATIO = 0x1034;
|
---|
216 | public static final int TAG_PREVIEW_IMAGE_VALID = 0x1035;
|
---|
217 | public static final int TAG_PREVIEW_IMAGE_START = 0x1036;
|
---|
218 | public static final int TAG_PREVIEW_IMAGE_LENGTH = 0x1037;
|
---|
219 | public static final int TAG_AF_RESULT = 0x1038;
|
---|
220 | public static final int TAG_CCD_SCAN_MODE = 0x1039;
|
---|
221 | public static final int TAG_NOISE_REDUCTION = 0x103A;
|
---|
222 | public static final int TAG_INFINITY_LENS_STEP = 0x103B;
|
---|
223 | public static final int TAG_NEAR_LENS_STEP = 0x103C;
|
---|
224 | public static final int TAG_LIGHT_VALUE_CENTER = 0x103D;
|
---|
225 | public static final int TAG_LIGHT_VALUE_PERIPHERY = 0x103E;
|
---|
226 | public static final int TAG_FIELD_COUNT = 0x103F;
|
---|
227 | public static final int TAG_EQUIPMENT = 0x2010;
|
---|
228 | public static final int TAG_CAMERA_SETTINGS = 0x2020;
|
---|
229 | public static final int TAG_RAW_DEVELOPMENT = 0x2030;
|
---|
230 | public static final int TAG_RAW_DEVELOPMENT_2 = 0x2031;
|
---|
231 | public static final int TAG_IMAGE_PROCESSING = 0x2040;
|
---|
232 | public static final int TAG_FOCUS_INFO = 0x2050;
|
---|
233 | public static final int TAG_RAW_INFO = 0x3000;
|
---|
234 | public static final int TAG_MAIN_INFO = 0x4000;
|
---|
235 |
|
---|
236 | public final static class CameraSettings
|
---|
237 | {
|
---|
238 | // These 'sub'-tag values have been created for consistency -- they don't exist within the Makernote IFD
|
---|
239 | private static final int OFFSET = 0xF000;
|
---|
240 |
|
---|
241 | public static final int TAG_EXPOSURE_MODE = OFFSET + 2;
|
---|
242 | public static final int TAG_FLASH_MODE = OFFSET + 3;
|
---|
243 | public static final int TAG_WHITE_BALANCE = OFFSET + 4;
|
---|
244 | public static final int TAG_IMAGE_SIZE = OFFSET + 5;
|
---|
245 | public static final int TAG_IMAGE_QUALITY = OFFSET + 6;
|
---|
246 | public static final int TAG_SHOOTING_MODE = OFFSET + 7;
|
---|
247 | public static final int TAG_METERING_MODE = OFFSET + 8;
|
---|
248 | public static final int TAG_APEX_FILM_SPEED_VALUE = OFFSET + 9;
|
---|
249 | public static final int TAG_APEX_SHUTTER_SPEED_TIME_VALUE = OFFSET + 10;
|
---|
250 | public static final int TAG_APEX_APERTURE_VALUE = OFFSET + 11;
|
---|
251 | public static final int TAG_MACRO_MODE = OFFSET + 12;
|
---|
252 | public static final int TAG_DIGITAL_ZOOM = OFFSET + 13;
|
---|
253 | public static final int TAG_EXPOSURE_COMPENSATION = OFFSET + 14;
|
---|
254 | public static final int TAG_BRACKET_STEP = OFFSET + 15;
|
---|
255 | // 16 missing
|
---|
256 | public static final int TAG_INTERVAL_LENGTH = OFFSET + 17;
|
---|
257 | public static final int TAG_INTERVAL_NUMBER = OFFSET + 18;
|
---|
258 | public static final int TAG_FOCAL_LENGTH = OFFSET + 19;
|
---|
259 | public static final int TAG_FOCUS_DISTANCE = OFFSET + 20;
|
---|
260 | public static final int TAG_FLASH_FIRED = OFFSET + 21;
|
---|
261 | public static final int TAG_DATE = OFFSET + 22;
|
---|
262 | public static final int TAG_TIME = OFFSET + 23;
|
---|
263 | public static final int TAG_MAX_APERTURE_AT_FOCAL_LENGTH = OFFSET + 24;
|
---|
264 | // 25, 26 missing
|
---|
265 | public static final int TAG_FILE_NUMBER_MEMORY = OFFSET + 27;
|
---|
266 | public static final int TAG_LAST_FILE_NUMBER = OFFSET + 28;
|
---|
267 | public static final int TAG_WHITE_BALANCE_RED = OFFSET + 29;
|
---|
268 | public static final int TAG_WHITE_BALANCE_GREEN = OFFSET + 30;
|
---|
269 | public static final int TAG_WHITE_BALANCE_BLUE = OFFSET + 31;
|
---|
270 | public static final int TAG_SATURATION = OFFSET + 32;
|
---|
271 | public static final int TAG_CONTRAST = OFFSET + 33;
|
---|
272 | public static final int TAG_SHARPNESS = OFFSET + 34;
|
---|
273 | public static final int TAG_SUBJECT_PROGRAM = OFFSET + 35;
|
---|
274 | public static final int TAG_FLASH_COMPENSATION = OFFSET + 36;
|
---|
275 | public static final int TAG_ISO_SETTING = OFFSET + 37;
|
---|
276 | public static final int TAG_CAMERA_MODEL = OFFSET + 38;
|
---|
277 | public static final int TAG_INTERVAL_MODE = OFFSET + 39;
|
---|
278 | public static final int TAG_FOLDER_NAME = OFFSET + 40;
|
---|
279 | public static final int TAG_COLOR_MODE = OFFSET + 41;
|
---|
280 | public static final int TAG_COLOR_FILTER = OFFSET + 42;
|
---|
281 | public static final int TAG_BLACK_AND_WHITE_FILTER = OFFSET + 43;
|
---|
282 | public static final int TAG_INTERNAL_FLASH = OFFSET + 44;
|
---|
283 | public static final int TAG_APEX_BRIGHTNESS_VALUE = OFFSET + 45;
|
---|
284 | public static final int TAG_SPOT_FOCUS_POINT_X_COORDINATE = OFFSET + 46;
|
---|
285 | public static final int TAG_SPOT_FOCUS_POINT_Y_COORDINATE = OFFSET + 47;
|
---|
286 | public static final int TAG_WIDE_FOCUS_ZONE = OFFSET + 48;
|
---|
287 | public static final int TAG_FOCUS_MODE = OFFSET + 49;
|
---|
288 | public static final int TAG_FOCUS_AREA = OFFSET + 50;
|
---|
289 | public static final int TAG_DEC_SWITCH_POSITION = OFFSET + 51;
|
---|
290 | }
|
---|
291 |
|
---|
292 | @NotNull
|
---|
293 | protected static final HashMap<Integer, String> _tagNameMap = new HashMap<Integer, String>();
|
---|
294 |
|
---|
295 | static {
|
---|
296 | _tagNameMap.put(TAG_MAKERNOTE_VERSION, "Makernote Version");
|
---|
297 | _tagNameMap.put(TAG_CAMERA_SETTINGS_1, "Camera Settings");
|
---|
298 | _tagNameMap.put(TAG_CAMERA_SETTINGS_2, "Camera Settings");
|
---|
299 | _tagNameMap.put(TAG_COMPRESSED_IMAGE_SIZE, "Compressed Image Size");
|
---|
300 | _tagNameMap.put(TAG_MINOLTA_THUMBNAIL_OFFSET_1, "Thumbnail Offset");
|
---|
301 | _tagNameMap.put(TAG_MINOLTA_THUMBNAIL_OFFSET_2, "Thumbnail Offset");
|
---|
302 | _tagNameMap.put(TAG_MINOLTA_THUMBNAIL_LENGTH, "Thumbnail Length");
|
---|
303 | _tagNameMap.put(TAG_THUMBNAIL_IMAGE, "Thumbnail Image");
|
---|
304 | _tagNameMap.put(TAG_COLOUR_MODE, "Colour Mode");
|
---|
305 | _tagNameMap.put(TAG_IMAGE_QUALITY_1, "Image Quality");
|
---|
306 | _tagNameMap.put(TAG_IMAGE_QUALITY_2, "Image Quality");
|
---|
307 | _tagNameMap.put(TAG_BODY_FIRMWARE_VERSION, "Body Firmware Version");
|
---|
308 | _tagNameMap.put(TAG_SPECIAL_MODE, "Special Mode");
|
---|
309 | _tagNameMap.put(TAG_JPEG_QUALITY, "JPEG Quality");
|
---|
310 | _tagNameMap.put(TAG_MACRO_MODE, "Macro");
|
---|
311 | _tagNameMap.put(TAG_BW_MODE, "BW Mode");
|
---|
312 | _tagNameMap.put(TAG_DIGITAL_ZOOM, "Digital Zoom");
|
---|
313 | _tagNameMap.put(TAG_FOCAL_PLANE_DIAGONAL, "Focal Plane Diagonal");
|
---|
314 | _tagNameMap.put(TAG_LENS_DISTORTION_PARAMETERS, "Lens Distortion Parameters");
|
---|
315 | _tagNameMap.put(TAG_CAMERA_TYPE, "Camera Type");
|
---|
316 | _tagNameMap.put(TAG_PICT_INFO, "Pict Info");
|
---|
317 | _tagNameMap.put(TAG_CAMERA_ID, "Camera Id");
|
---|
318 | _tagNameMap.put(TAG_IMAGE_WIDTH, "Image Width");
|
---|
319 | _tagNameMap.put(TAG_IMAGE_HEIGHT, "Image Height");
|
---|
320 | _tagNameMap.put(TAG_ORIGINAL_MANUFACTURER_MODEL, "Original Manufacturer Model");
|
---|
321 | _tagNameMap.put(TAG_PREVIEW_IMAGE, "Preview Image");
|
---|
322 | _tagNameMap.put(TAG_PRE_CAPTURE_FRAMES, "Pre Capture Frames");
|
---|
323 | _tagNameMap.put(TAG_WHITE_BOARD, "White Board");
|
---|
324 | _tagNameMap.put(TAG_ONE_TOUCH_WB, "One Touch WB");
|
---|
325 | _tagNameMap.put(TAG_WHITE_BALANCE_BRACKET, "White Balance Bracket");
|
---|
326 | _tagNameMap.put(TAG_WHITE_BALANCE_BIAS, "White Balance Bias");
|
---|
327 | _tagNameMap.put(TAG_SCENE_MODE, "Scene Mode");
|
---|
328 | _tagNameMap.put(TAG_SERIAL_NUMBER_1, "Serial Number");
|
---|
329 | _tagNameMap.put(TAG_FIRMWARE, "Firmware");
|
---|
330 | _tagNameMap.put(TAG_PRINT_IMAGE_MATCHING_INFO, "Print Image Matching (PIM) Info");
|
---|
331 | _tagNameMap.put(TAG_DATA_DUMP_1, "Data Dump");
|
---|
332 | _tagNameMap.put(TAG_DATA_DUMP_2, "Data Dump 2");
|
---|
333 | _tagNameMap.put(TAG_SHUTTER_SPEED_VALUE, "Shutter Speed Value");
|
---|
334 | _tagNameMap.put(TAG_ISO_VALUE, "ISO Value");
|
---|
335 | _tagNameMap.put(TAG_APERTURE_VALUE, "Aperture Value");
|
---|
336 | _tagNameMap.put(TAG_BRIGHTNESS_VALUE, "Brightness Value");
|
---|
337 | _tagNameMap.put(TAG_FLASH_MODE, "Flash Mode");
|
---|
338 | _tagNameMap.put(TAG_FLASH_DEVICE, "Flash Device");
|
---|
339 | _tagNameMap.put(TAG_BRACKET, "Bracket");
|
---|
340 | _tagNameMap.put(TAG_SENSOR_TEMPERATURE, "Sensor Temperature");
|
---|
341 | _tagNameMap.put(TAG_LENS_TEMPERATURE, "Lens Temperature");
|
---|
342 | _tagNameMap.put(TAG_LIGHT_CONDITION, "Light Condition");
|
---|
343 | _tagNameMap.put(TAG_FOCUS_RANGE, "Focus Range");
|
---|
344 | _tagNameMap.put(TAG_FOCUS_MODE, "Focus Mode");
|
---|
345 | _tagNameMap.put(TAG_FOCUS_DISTANCE, "Focus Distance");
|
---|
346 | _tagNameMap.put(TAG_ZOOM, "Zoom");
|
---|
347 | _tagNameMap.put(TAG_MACRO_FOCUS, "Macro Focus");
|
---|
348 | _tagNameMap.put(TAG_SHARPNESS, "Sharpness");
|
---|
349 | _tagNameMap.put(TAG_FLASH_CHARGE_LEVEL, "Flash Charge Level");
|
---|
350 | _tagNameMap.put(TAG_COLOUR_MATRIX, "Colour Matrix");
|
---|
351 | _tagNameMap.put(TAG_BLACK_LEVEL, "Black Level");
|
---|
352 | _tagNameMap.put(TAG_COLOR_TEMPERATURE_BG, "Color Temperature BG");
|
---|
353 | _tagNameMap.put(TAG_COLOR_TEMPERATURE_RG, "Color Temperature RG");
|
---|
354 | _tagNameMap.put(TAG_WB_MODE, "White Balance Mode");
|
---|
355 | _tagNameMap.put(TAG_RED_BALANCE, "Red Balance");
|
---|
356 | _tagNameMap.put(TAG_BLUE_BALANCE, "Blue Balance");
|
---|
357 | _tagNameMap.put(TAG_COLOR_MATRIX_NUMBER, "Color Matrix Number");
|
---|
358 | _tagNameMap.put(TAG_SERIAL_NUMBER_2, "Serial Number");
|
---|
359 | _tagNameMap.put(TAG_EXTERNAL_FLASH_AE1_0, "External Flash AE1 0");
|
---|
360 | _tagNameMap.put(TAG_EXTERNAL_FLASH_AE2_0, "External Flash AE2 0");
|
---|
361 | _tagNameMap.put(TAG_INTERNAL_FLASH_AE1_0, "Internal Flash AE1 0");
|
---|
362 | _tagNameMap.put(TAG_INTERNAL_FLASH_AE2_0, "Internal Flash AE2 0");
|
---|
363 | _tagNameMap.put(TAG_EXTERNAL_FLASH_AE1, "External Flash AE1");
|
---|
364 | _tagNameMap.put(TAG_EXTERNAL_FLASH_AE2, "External Flash AE2");
|
---|
365 | _tagNameMap.put(TAG_INTERNAL_FLASH_AE1, "Internal Flash AE1");
|
---|
366 | _tagNameMap.put(TAG_INTERNAL_FLASH_AE2, "Internal Flash AE2");
|
---|
367 | _tagNameMap.put(TAG_FLASH_BIAS, "Flash Bias");
|
---|
368 | _tagNameMap.put(TAG_INTERNAL_FLASH_TABLE, "Internal Flash Table");
|
---|
369 | _tagNameMap.put(TAG_EXTERNAL_FLASH_G_VALUE, "External Flash G Value");
|
---|
370 | _tagNameMap.put(TAG_EXTERNAL_FLASH_BOUNCE, "External Flash Bounce");
|
---|
371 | _tagNameMap.put(TAG_EXTERNAL_FLASH_ZOOM, "External Flash Zoom");
|
---|
372 | _tagNameMap.put(TAG_EXTERNAL_FLASH_MODE, "External Flash Mode");
|
---|
373 | _tagNameMap.put(TAG_CONTRAST, "Contrast");
|
---|
374 | _tagNameMap.put(TAG_SHARPNESS_FACTOR, "Sharpness Factor");
|
---|
375 | _tagNameMap.put(TAG_COLOUR_CONTROL, "Colour Control");
|
---|
376 | _tagNameMap.put(TAG_VALID_BITS, "Valid Bits");
|
---|
377 | _tagNameMap.put(TAG_CORING_FILTER, "Coring Filter");
|
---|
378 | _tagNameMap.put(TAG_OLYMPUS_IMAGE_WIDTH, "Olympus Image Width");
|
---|
379 | _tagNameMap.put(TAG_OLYMPUS_IMAGE_HEIGHT, "Olympus Image Height");
|
---|
380 | _tagNameMap.put(TAG_SCENE_DETECT, "Scene Detect");
|
---|
381 | _tagNameMap.put(TAG_SCENE_AREA, "Scene Area");
|
---|
382 | _tagNameMap.put(TAG_SCENE_DETECT_DATA, "Scene Detect Data");
|
---|
383 | _tagNameMap.put(TAG_COMPRESSION_RATIO, "Compression Ratio");
|
---|
384 | _tagNameMap.put(TAG_PREVIEW_IMAGE_VALID, "Preview Image Valid");
|
---|
385 | _tagNameMap.put(TAG_PREVIEW_IMAGE_START, "Preview Image Start");
|
---|
386 | _tagNameMap.put(TAG_PREVIEW_IMAGE_LENGTH, "Preview Image Length");
|
---|
387 | _tagNameMap.put(TAG_AF_RESULT, "AF Result");
|
---|
388 | _tagNameMap.put(TAG_CCD_SCAN_MODE, "CCD Scan Mode");
|
---|
389 | _tagNameMap.put(TAG_NOISE_REDUCTION, "Noise Reduction");
|
---|
390 | _tagNameMap.put(TAG_INFINITY_LENS_STEP, "Infinity Lens Step");
|
---|
391 | _tagNameMap.put(TAG_NEAR_LENS_STEP, "Near Lens Step");
|
---|
392 | _tagNameMap.put(TAG_LIGHT_VALUE_CENTER, "Light Value Center");
|
---|
393 | _tagNameMap.put(TAG_LIGHT_VALUE_PERIPHERY, "Light Value Periphery");
|
---|
394 | _tagNameMap.put(TAG_FIELD_COUNT, "Field Count");
|
---|
395 | _tagNameMap.put(TAG_EQUIPMENT, "Equipment");
|
---|
396 | _tagNameMap.put(TAG_CAMERA_SETTINGS, "Camera Settings");
|
---|
397 | _tagNameMap.put(TAG_RAW_DEVELOPMENT, "Raw Development");
|
---|
398 | _tagNameMap.put(TAG_RAW_DEVELOPMENT_2, "Raw Development 2");
|
---|
399 | _tagNameMap.put(TAG_IMAGE_PROCESSING, "Image Processing");
|
---|
400 | _tagNameMap.put(TAG_FOCUS_INFO, "Focus Info");
|
---|
401 | _tagNameMap.put(TAG_RAW_INFO, "Raw Info");
|
---|
402 | _tagNameMap.put(TAG_MAIN_INFO, "Main Info");
|
---|
403 |
|
---|
404 | _tagNameMap.put(CameraSettings.TAG_EXPOSURE_MODE, "Exposure Mode");
|
---|
405 | _tagNameMap.put(CameraSettings.TAG_FLASH_MODE, "Flash Mode");
|
---|
406 | _tagNameMap.put(CameraSettings.TAG_WHITE_BALANCE, "White Balance");
|
---|
407 | _tagNameMap.put(CameraSettings.TAG_IMAGE_SIZE, "Image Size");
|
---|
408 | _tagNameMap.put(CameraSettings.TAG_IMAGE_QUALITY, "Image Quality");
|
---|
409 | _tagNameMap.put(CameraSettings.TAG_SHOOTING_MODE, "Shooting Mode");
|
---|
410 | _tagNameMap.put(CameraSettings.TAG_METERING_MODE, "Metering Mode");
|
---|
411 | _tagNameMap.put(CameraSettings.TAG_APEX_FILM_SPEED_VALUE, "Apex Film Speed Value");
|
---|
412 | _tagNameMap.put(CameraSettings.TAG_APEX_SHUTTER_SPEED_TIME_VALUE, "Apex Shutter Speed Time Value");
|
---|
413 | _tagNameMap.put(CameraSettings.TAG_APEX_APERTURE_VALUE, "Apex Aperture Value");
|
---|
414 | _tagNameMap.put(CameraSettings.TAG_MACRO_MODE, "Macro Mode");
|
---|
415 | _tagNameMap.put(CameraSettings.TAG_DIGITAL_ZOOM, "Digital Zoom");
|
---|
416 | _tagNameMap.put(CameraSettings.TAG_EXPOSURE_COMPENSATION, "Exposure Compensation");
|
---|
417 | _tagNameMap.put(CameraSettings.TAG_BRACKET_STEP, "Bracket Step");
|
---|
418 |
|
---|
419 | _tagNameMap.put(CameraSettings.TAG_INTERVAL_LENGTH, "Interval Length");
|
---|
420 | _tagNameMap.put(CameraSettings.TAG_INTERVAL_NUMBER, "Interval Number");
|
---|
421 | _tagNameMap.put(CameraSettings.TAG_FOCAL_LENGTH, "Focal Length");
|
---|
422 | _tagNameMap.put(CameraSettings.TAG_FOCUS_DISTANCE, "Focus Distance");
|
---|
423 | _tagNameMap.put(CameraSettings.TAG_FLASH_FIRED, "Flash Fired");
|
---|
424 | _tagNameMap.put(CameraSettings.TAG_DATE, "Date");
|
---|
425 | _tagNameMap.put(CameraSettings.TAG_TIME, "Time");
|
---|
426 | _tagNameMap.put(CameraSettings.TAG_MAX_APERTURE_AT_FOCAL_LENGTH, "Max Aperture at Focal Length");
|
---|
427 |
|
---|
428 | _tagNameMap.put(CameraSettings.TAG_FILE_NUMBER_MEMORY, "File Number Memory");
|
---|
429 | _tagNameMap.put(CameraSettings.TAG_LAST_FILE_NUMBER, "Last File Number");
|
---|
430 | _tagNameMap.put(CameraSettings.TAG_WHITE_BALANCE_RED, "White Balance Red");
|
---|
431 | _tagNameMap.put(CameraSettings.TAG_WHITE_BALANCE_GREEN, "White Balance Green");
|
---|
432 | _tagNameMap.put(CameraSettings.TAG_WHITE_BALANCE_BLUE, "White Balance Blue");
|
---|
433 | _tagNameMap.put(CameraSettings.TAG_SATURATION, "Saturation");
|
---|
434 | _tagNameMap.put(CameraSettings.TAG_CONTRAST, "Contrast");
|
---|
435 | _tagNameMap.put(CameraSettings.TAG_SHARPNESS, "Sharpness");
|
---|
436 | _tagNameMap.put(CameraSettings.TAG_SUBJECT_PROGRAM, "Subject Program");
|
---|
437 | _tagNameMap.put(CameraSettings.TAG_FLASH_COMPENSATION, "Flash Compensation");
|
---|
438 | _tagNameMap.put(CameraSettings.TAG_ISO_SETTING, "ISO Setting");
|
---|
439 | _tagNameMap.put(CameraSettings.TAG_CAMERA_MODEL, "Camera Model");
|
---|
440 | _tagNameMap.put(CameraSettings.TAG_INTERVAL_MODE, "Interval Mode");
|
---|
441 | _tagNameMap.put(CameraSettings.TAG_FOLDER_NAME, "Folder Name");
|
---|
442 | _tagNameMap.put(CameraSettings.TAG_COLOR_MODE, "Color Mode");
|
---|
443 | _tagNameMap.put(CameraSettings.TAG_COLOR_FILTER, "Color Filter");
|
---|
444 | _tagNameMap.put(CameraSettings.TAG_BLACK_AND_WHITE_FILTER, "Black and White Filter");
|
---|
445 | _tagNameMap.put(CameraSettings.TAG_INTERNAL_FLASH, "Internal Flash");
|
---|
446 | _tagNameMap.put(CameraSettings.TAG_APEX_BRIGHTNESS_VALUE, "Apex Brightness Value");
|
---|
447 | _tagNameMap.put(CameraSettings.TAG_SPOT_FOCUS_POINT_X_COORDINATE, "Spot Focus Point X Coordinate");
|
---|
448 | _tagNameMap.put(CameraSettings.TAG_SPOT_FOCUS_POINT_Y_COORDINATE, "Spot Focus Point Y Coordinate");
|
---|
449 | _tagNameMap.put(CameraSettings.TAG_WIDE_FOCUS_ZONE, "Wide Focus Zone");
|
---|
450 | _tagNameMap.put(CameraSettings.TAG_FOCUS_MODE, "Focus Mode");
|
---|
451 | _tagNameMap.put(CameraSettings.TAG_FOCUS_AREA, "Focus Area");
|
---|
452 | _tagNameMap.put(CameraSettings.TAG_DEC_SWITCH_POSITION, "DEC Switch Position");
|
---|
453 | }
|
---|
454 |
|
---|
455 | public OlympusMakernoteDirectory()
|
---|
456 | {
|
---|
457 | this.setDescriptor(new OlympusMakernoteDescriptor(this));
|
---|
458 | }
|
---|
459 |
|
---|
460 | @Override
|
---|
461 | @NotNull
|
---|
462 | public String getName()
|
---|
463 | {
|
---|
464 | return "Olympus Makernote";
|
---|
465 | }
|
---|
466 |
|
---|
467 | @Override
|
---|
468 | public void setByteArray(int tagType, @NotNull byte[] bytes)
|
---|
469 | {
|
---|
470 | if (tagType == TAG_CAMERA_SETTINGS_1 || tagType == TAG_CAMERA_SETTINGS_2) {
|
---|
471 | processCameraSettings(bytes);
|
---|
472 | } else {
|
---|
473 | super.setByteArray(tagType, bytes);
|
---|
474 | }
|
---|
475 | }
|
---|
476 |
|
---|
477 | private void processCameraSettings(byte[] bytes)
|
---|
478 | {
|
---|
479 | SequentialByteArrayReader reader = new SequentialByteArrayReader(bytes);
|
---|
480 | reader.setMotorolaByteOrder(true);
|
---|
481 |
|
---|
482 | int count = bytes.length / 4;
|
---|
483 |
|
---|
484 | try {
|
---|
485 | for (int i = 0; i < count; i++) {
|
---|
486 | int value = reader.getInt32();
|
---|
487 | setInt(CameraSettings.OFFSET + i, value);
|
---|
488 | }
|
---|
489 | } catch (IOException e) {
|
---|
490 | // Should never happen, given that we check the length of the bytes beforehand.
|
---|
491 | e.printStackTrace();
|
---|
492 | }
|
---|
493 | }
|
---|
494 |
|
---|
495 | public boolean isIntervalMode()
|
---|
496 | {
|
---|
497 | Long value = getLongObject(CameraSettings.TAG_SHOOTING_MODE);
|
---|
498 | return value != null && value == 5;
|
---|
499 | }
|
---|
500 |
|
---|
501 | @Override
|
---|
502 | @NotNull
|
---|
503 | protected HashMap<Integer, String> getTagNameMap()
|
---|
504 | {
|
---|
505 | return _tagNameMap;
|
---|
506 | }
|
---|
507 |
|
---|
508 | // <summary>
|
---|
509 | // These values are currently decoded only for Olympus models. Models with
|
---|
510 | // Olympus-style maker notes from other brands such as Acer, BenQ, Hitachi, HP,
|
---|
511 | // Premier, Konica-Minolta, Maginon, Ricoh, Rollei, SeaLife, Sony, Supra,
|
---|
512 | // Vivitar are not listed.
|
---|
513 | // </summary>
|
---|
514 | // <remarks>
|
---|
515 | // Converted from Exiftool version 10.33 created by Phil Harvey
|
---|
516 | // http://www.sno.phy.queensu.ca/~phil/exiftool/
|
---|
517 | // lib\Image\ExifTool\Olympus.pm
|
---|
518 | // </remarks>
|
---|
519 | public static final HashMap<String, String> OlympusCameraTypes = new HashMap<String, String>();
|
---|
520 |
|
---|
521 | static {
|
---|
522 | OlympusCameraTypes.put("D4028", "X-2,C-50Z");
|
---|
523 | OlympusCameraTypes.put("D4029", "E-20,E-20N,E-20P");
|
---|
524 | OlympusCameraTypes.put("D4034", "C720UZ");
|
---|
525 | OlympusCameraTypes.put("D4040", "E-1");
|
---|
526 | OlympusCameraTypes.put("D4041", "E-300");
|
---|
527 | OlympusCameraTypes.put("D4083", "C2Z,D520Z,C220Z");
|
---|
528 | OlympusCameraTypes.put("D4106", "u20D,S400D,u400D");
|
---|
529 | OlympusCameraTypes.put("D4120", "X-1");
|
---|
530 | OlympusCameraTypes.put("D4122", "u10D,S300D,u300D");
|
---|
531 | OlympusCameraTypes.put("D4125", "AZ-1");
|
---|
532 | OlympusCameraTypes.put("D4141", "C150,D390");
|
---|
533 | OlympusCameraTypes.put("D4193", "C-5000Z");
|
---|
534 | OlympusCameraTypes.put("D4194", "X-3,C-60Z");
|
---|
535 | OlympusCameraTypes.put("D4199", "u30D,S410D,u410D");
|
---|
536 | OlympusCameraTypes.put("D4205", "X450,D535Z,C370Z");
|
---|
537 | OlympusCameraTypes.put("D4210", "C160,D395");
|
---|
538 | OlympusCameraTypes.put("D4211", "C725UZ");
|
---|
539 | OlympusCameraTypes.put("D4213", "FerrariMODEL2003");
|
---|
540 | OlympusCameraTypes.put("D4216", "u15D");
|
---|
541 | OlympusCameraTypes.put("D4217", "u25D");
|
---|
542 | OlympusCameraTypes.put("D4220", "u-miniD,Stylus V");
|
---|
543 | OlympusCameraTypes.put("D4221", "u40D,S500,uD500");
|
---|
544 | OlympusCameraTypes.put("D4231", "FerrariMODEL2004");
|
---|
545 | OlympusCameraTypes.put("D4240", "X500,D590Z,C470Z");
|
---|
546 | OlympusCameraTypes.put("D4244", "uD800,S800");
|
---|
547 | OlympusCameraTypes.put("D4256", "u720SW,S720SW");
|
---|
548 | OlympusCameraTypes.put("D4261", "X600,D630,FE5500");
|
---|
549 | OlympusCameraTypes.put("D4262", "uD600,S600");
|
---|
550 | OlympusCameraTypes.put("D4301", "u810/S810"); // (yes, "/". Olympus is not consistent in the notation)
|
---|
551 | OlympusCameraTypes.put("D4302", "u710,S710");
|
---|
552 | OlympusCameraTypes.put("D4303", "u700,S700");
|
---|
553 | OlympusCameraTypes.put("D4304", "FE100,X710");
|
---|
554 | OlympusCameraTypes.put("D4305", "FE110,X705");
|
---|
555 | OlympusCameraTypes.put("D4310", "FE-130,X-720");
|
---|
556 | OlympusCameraTypes.put("D4311", "FE-140,X-725");
|
---|
557 | OlympusCameraTypes.put("D4312", "FE150,X730");
|
---|
558 | OlympusCameraTypes.put("D4313", "FE160,X735");
|
---|
559 | OlympusCameraTypes.put("D4314", "u740,S740");
|
---|
560 | OlympusCameraTypes.put("D4315", "u750,S750");
|
---|
561 | OlympusCameraTypes.put("D4316", "u730/S730");
|
---|
562 | OlympusCameraTypes.put("D4317", "FE115,X715");
|
---|
563 | OlympusCameraTypes.put("D4321", "SP550UZ");
|
---|
564 | OlympusCameraTypes.put("D4322", "SP510UZ");
|
---|
565 | OlympusCameraTypes.put("D4324", "FE170,X760");
|
---|
566 | OlympusCameraTypes.put("D4326", "FE200");
|
---|
567 | OlympusCameraTypes.put("D4327", "FE190/X750"); // (also SX876)
|
---|
568 | OlympusCameraTypes.put("D4328", "u760,S760");
|
---|
569 | OlympusCameraTypes.put("D4330", "FE180/X745"); // (also SX875)
|
---|
570 | OlympusCameraTypes.put("D4331", "u1000/S1000");
|
---|
571 | OlympusCameraTypes.put("D4332", "u770SW,S770SW");
|
---|
572 | OlympusCameraTypes.put("D4333", "FE240/X795");
|
---|
573 | OlympusCameraTypes.put("D4334", "FE210,X775");
|
---|
574 | OlympusCameraTypes.put("D4336", "FE230/X790");
|
---|
575 | OlympusCameraTypes.put("D4337", "FE220,X785");
|
---|
576 | OlympusCameraTypes.put("D4338", "u725SW,S725SW");
|
---|
577 | OlympusCameraTypes.put("D4339", "FE250/X800");
|
---|
578 | OlympusCameraTypes.put("D4341", "u780,S780");
|
---|
579 | OlympusCameraTypes.put("D4343", "u790SW,S790SW");
|
---|
580 | OlympusCameraTypes.put("D4344", "u1020,S1020");
|
---|
581 | OlympusCameraTypes.put("D4346", "FE15,X10");
|
---|
582 | OlympusCameraTypes.put("D4348", "FE280,X820,C520");
|
---|
583 | OlympusCameraTypes.put("D4349", "FE300,X830");
|
---|
584 | OlympusCameraTypes.put("D4350", "u820,S820");
|
---|
585 | OlympusCameraTypes.put("D4351", "u1200,S1200");
|
---|
586 | OlympusCameraTypes.put("D4352", "FE270,X815,C510");
|
---|
587 | OlympusCameraTypes.put("D4353", "u795SW,S795SW");
|
---|
588 | OlympusCameraTypes.put("D4354", "u1030SW,S1030SW");
|
---|
589 | OlympusCameraTypes.put("D4355", "SP560UZ");
|
---|
590 | OlympusCameraTypes.put("D4356", "u1010,S1010");
|
---|
591 | OlympusCameraTypes.put("D4357", "u830,S830");
|
---|
592 | OlympusCameraTypes.put("D4359", "u840,S840");
|
---|
593 | OlympusCameraTypes.put("D4360", "FE350WIDE,X865");
|
---|
594 | OlympusCameraTypes.put("D4361", "u850SW,S850SW");
|
---|
595 | OlympusCameraTypes.put("D4362", "FE340,X855,C560");
|
---|
596 | OlympusCameraTypes.put("D4363", "FE320,X835,C540");
|
---|
597 | OlympusCameraTypes.put("D4364", "SP570UZ");
|
---|
598 | OlympusCameraTypes.put("D4366", "FE330,X845,C550");
|
---|
599 | OlympusCameraTypes.put("D4368", "FE310,X840,C530");
|
---|
600 | OlympusCameraTypes.put("D4370", "u1050SW,S1050SW");
|
---|
601 | OlympusCameraTypes.put("D4371", "u1060,S1060");
|
---|
602 | OlympusCameraTypes.put("D4372", "FE370,X880,C575");
|
---|
603 | OlympusCameraTypes.put("D4374", "SP565UZ");
|
---|
604 | OlympusCameraTypes.put("D4377", "u1040,S1040");
|
---|
605 | OlympusCameraTypes.put("D4378", "FE360,X875,C570");
|
---|
606 | OlympusCameraTypes.put("D4379", "FE20,X15,C25");
|
---|
607 | OlympusCameraTypes.put("D4380", "uT6000,ST6000");
|
---|
608 | OlympusCameraTypes.put("D4381", "uT8000,ST8000");
|
---|
609 | OlympusCameraTypes.put("D4382", "u9000,S9000");
|
---|
610 | OlympusCameraTypes.put("D4384", "SP590UZ");
|
---|
611 | OlympusCameraTypes.put("D4385", "FE3010,X895");
|
---|
612 | OlympusCameraTypes.put("D4386", "FE3000,X890");
|
---|
613 | OlympusCameraTypes.put("D4387", "FE35,X30");
|
---|
614 | OlympusCameraTypes.put("D4388", "u550WP,S550WP");
|
---|
615 | OlympusCameraTypes.put("D4390", "FE5000,X905");
|
---|
616 | OlympusCameraTypes.put("D4391", "u5000");
|
---|
617 | OlympusCameraTypes.put("D4392", "u7000,S7000");
|
---|
618 | OlympusCameraTypes.put("D4396", "FE5010,X915");
|
---|
619 | OlympusCameraTypes.put("D4397", "FE25,X20");
|
---|
620 | OlympusCameraTypes.put("D4398", "FE45,X40");
|
---|
621 | OlympusCameraTypes.put("D4401", "XZ-1");
|
---|
622 | OlympusCameraTypes.put("D4402", "uT6010,ST6010");
|
---|
623 | OlympusCameraTypes.put("D4406", "u7010,S7010 / u7020,S7020");
|
---|
624 | OlympusCameraTypes.put("D4407", "FE4010,X930");
|
---|
625 | OlympusCameraTypes.put("D4408", "X560WP");
|
---|
626 | OlympusCameraTypes.put("D4409", "FE26,X21");
|
---|
627 | OlympusCameraTypes.put("D4410", "FE4000,X920,X925");
|
---|
628 | OlympusCameraTypes.put("D4411", "FE46,X41,X42");
|
---|
629 | OlympusCameraTypes.put("D4412", "FE5020,X935");
|
---|
630 | OlympusCameraTypes.put("D4413", "uTough-3000");
|
---|
631 | OlympusCameraTypes.put("D4414", "StylusTough-6020");
|
---|
632 | OlympusCameraTypes.put("D4415", "StylusTough-8010");
|
---|
633 | OlympusCameraTypes.put("D4417", "u5010,S5010");
|
---|
634 | OlympusCameraTypes.put("D4418", "u7040,S7040");
|
---|
635 | OlympusCameraTypes.put("D4419", "u9010,S9010");
|
---|
636 | OlympusCameraTypes.put("D4423", "FE4040");
|
---|
637 | OlympusCameraTypes.put("D4424", "FE47,X43");
|
---|
638 | OlympusCameraTypes.put("D4426", "FE4030,X950");
|
---|
639 | OlympusCameraTypes.put("D4428", "FE5030,X965,X960");
|
---|
640 | OlympusCameraTypes.put("D4430", "u7030,S7030");
|
---|
641 | OlympusCameraTypes.put("D4432", "SP600UZ");
|
---|
642 | OlympusCameraTypes.put("D4434", "SP800UZ");
|
---|
643 | OlympusCameraTypes.put("D4439", "FE4020,X940");
|
---|
644 | OlympusCameraTypes.put("D4442", "FE5035");
|
---|
645 | OlympusCameraTypes.put("D4448", "FE4050,X970");
|
---|
646 | OlympusCameraTypes.put("D4450", "FE5050,X985");
|
---|
647 | OlympusCameraTypes.put("D4454", "u-7050");
|
---|
648 | OlympusCameraTypes.put("D4464", "T10,X27");
|
---|
649 | OlympusCameraTypes.put("D4470", "FE5040,X980");
|
---|
650 | OlympusCameraTypes.put("D4472", "TG-310");
|
---|
651 | OlympusCameraTypes.put("D4474", "TG-610");
|
---|
652 | OlympusCameraTypes.put("D4476", "TG-810");
|
---|
653 | OlympusCameraTypes.put("D4478", "VG145,VG140,D715");
|
---|
654 | OlympusCameraTypes.put("D4479", "VG130,D710");
|
---|
655 | OlympusCameraTypes.put("D4480", "VG120,D705");
|
---|
656 | OlympusCameraTypes.put("D4482", "VR310,D720");
|
---|
657 | OlympusCameraTypes.put("D4484", "VR320,D725");
|
---|
658 | OlympusCameraTypes.put("D4486", "VR330,D730");
|
---|
659 | OlympusCameraTypes.put("D4488", "VG110,D700");
|
---|
660 | OlympusCameraTypes.put("D4490", "SP-610UZ");
|
---|
661 | OlympusCameraTypes.put("D4492", "SZ-10");
|
---|
662 | OlympusCameraTypes.put("D4494", "SZ-20");
|
---|
663 | OlympusCameraTypes.put("D4496", "SZ-30MR");
|
---|
664 | OlympusCameraTypes.put("D4498", "SP-810UZ");
|
---|
665 | OlympusCameraTypes.put("D4500", "SZ-11");
|
---|
666 | OlympusCameraTypes.put("D4504", "TG-615");
|
---|
667 | OlympusCameraTypes.put("D4508", "TG-620");
|
---|
668 | OlympusCameraTypes.put("D4510", "TG-820");
|
---|
669 | OlympusCameraTypes.put("D4512", "TG-1");
|
---|
670 | OlympusCameraTypes.put("D4516", "SH-21");
|
---|
671 | OlympusCameraTypes.put("D4519", "SZ-14");
|
---|
672 | OlympusCameraTypes.put("D4520", "SZ-31MR");
|
---|
673 | OlympusCameraTypes.put("D4521", "SH-25MR");
|
---|
674 | OlympusCameraTypes.put("D4523", "SP-720UZ");
|
---|
675 | OlympusCameraTypes.put("D4529", "VG170");
|
---|
676 | OlympusCameraTypes.put("D4531", "XZ-2");
|
---|
677 | OlympusCameraTypes.put("D4535", "SP-620UZ");
|
---|
678 | OlympusCameraTypes.put("D4536", "TG-320");
|
---|
679 | OlympusCameraTypes.put("D4537", "VR340,D750");
|
---|
680 | OlympusCameraTypes.put("D4538", "VG160,X990,D745");
|
---|
681 | OlympusCameraTypes.put("D4541", "SZ-12");
|
---|
682 | OlympusCameraTypes.put("D4545", "VH410");
|
---|
683 | OlympusCameraTypes.put("D4546", "XZ-10"); //IB
|
---|
684 | OlympusCameraTypes.put("D4547", "TG-2");
|
---|
685 | OlympusCameraTypes.put("D4548", "TG-830");
|
---|
686 | OlympusCameraTypes.put("D4549", "TG-630");
|
---|
687 | OlympusCameraTypes.put("D4550", "SH-50");
|
---|
688 | OlympusCameraTypes.put("D4553", "SZ-16,DZ-105");
|
---|
689 | OlympusCameraTypes.put("D4562", "SP-820UZ");
|
---|
690 | OlympusCameraTypes.put("D4566", "SZ-15");
|
---|
691 | OlympusCameraTypes.put("D4572", "STYLUS1");
|
---|
692 | OlympusCameraTypes.put("D4574", "TG-3");
|
---|
693 | OlympusCameraTypes.put("D4575", "TG-850");
|
---|
694 | OlympusCameraTypes.put("D4579", "SP-100EE");
|
---|
695 | OlympusCameraTypes.put("D4580", "SH-60");
|
---|
696 | OlympusCameraTypes.put("D4581", "SH-1");
|
---|
697 | OlympusCameraTypes.put("D4582", "TG-835");
|
---|
698 | OlympusCameraTypes.put("D4585", "SH-2 / SH-3");
|
---|
699 | OlympusCameraTypes.put("D4586", "TG-4");
|
---|
700 | OlympusCameraTypes.put("D4587", "TG-860");
|
---|
701 | OlympusCameraTypes.put("D4591", "TG-870");
|
---|
702 | OlympusCameraTypes.put("D4809", "C2500L");
|
---|
703 | OlympusCameraTypes.put("D4842", "E-10");
|
---|
704 | OlympusCameraTypes.put("D4856", "C-1");
|
---|
705 | OlympusCameraTypes.put("D4857", "C-1Z,D-150Z");
|
---|
706 | OlympusCameraTypes.put("DCHC", "D500L");
|
---|
707 | OlympusCameraTypes.put("DCHT", "D600L / D620L");
|
---|
708 | OlympusCameraTypes.put("K0055", "AIR-A01");
|
---|
709 | OlympusCameraTypes.put("S0003", "E-330");
|
---|
710 | OlympusCameraTypes.put("S0004", "E-500");
|
---|
711 | OlympusCameraTypes.put("S0009", "E-400");
|
---|
712 | OlympusCameraTypes.put("S0010", "E-510");
|
---|
713 | OlympusCameraTypes.put("S0011", "E-3");
|
---|
714 | OlympusCameraTypes.put("S0013", "E-410");
|
---|
715 | OlympusCameraTypes.put("S0016", "E-420");
|
---|
716 | OlympusCameraTypes.put("S0017", "E-30");
|
---|
717 | OlympusCameraTypes.put("S0018", "E-520");
|
---|
718 | OlympusCameraTypes.put("S0019", "E-P1");
|
---|
719 | OlympusCameraTypes.put("S0023", "E-620");
|
---|
720 | OlympusCameraTypes.put("S0026", "E-P2");
|
---|
721 | OlympusCameraTypes.put("S0027", "E-PL1");
|
---|
722 | OlympusCameraTypes.put("S0029", "E-450");
|
---|
723 | OlympusCameraTypes.put("S0030", "E-600");
|
---|
724 | OlympusCameraTypes.put("S0032", "E-P3");
|
---|
725 | OlympusCameraTypes.put("S0033", "E-5");
|
---|
726 | OlympusCameraTypes.put("S0034", "E-PL2");
|
---|
727 | OlympusCameraTypes.put("S0036", "E-M5");
|
---|
728 | OlympusCameraTypes.put("S0038", "E-PL3");
|
---|
729 | OlympusCameraTypes.put("S0039", "E-PM1");
|
---|
730 | OlympusCameraTypes.put("S0040", "E-PL1s");
|
---|
731 | OlympusCameraTypes.put("S0042", "E-PL5");
|
---|
732 | OlympusCameraTypes.put("S0043", "E-PM2");
|
---|
733 | OlympusCameraTypes.put("S0044", "E-P5");
|
---|
734 | OlympusCameraTypes.put("S0045", "E-PL6");
|
---|
735 | OlympusCameraTypes.put("S0046", "E-PL7"); //IB
|
---|
736 | OlympusCameraTypes.put("S0047", "E-M1");
|
---|
737 | OlympusCameraTypes.put("S0051", "E-M10");
|
---|
738 | OlympusCameraTypes.put("S0052", "E-M5MarkII"); //IB
|
---|
739 | OlympusCameraTypes.put("S0059", "E-M10MarkII");
|
---|
740 | OlympusCameraTypes.put("S0061", "PEN-F"); //forum7005
|
---|
741 | OlympusCameraTypes.put("S0065", "E-PL8");
|
---|
742 | OlympusCameraTypes.put("S0067", "E-M1MarkII");
|
---|
743 | OlympusCameraTypes.put("SR45", "D220");
|
---|
744 | OlympusCameraTypes.put("SR55", "D320L");
|
---|
745 | OlympusCameraTypes.put("SR83", "D340L");
|
---|
746 | OlympusCameraTypes.put("SR85", "C830L,D340R");
|
---|
747 | OlympusCameraTypes.put("SR852", "C860L,D360L");
|
---|
748 | OlympusCameraTypes.put("SR872", "C900Z,D400Z");
|
---|
749 | OlympusCameraTypes.put("SR874", "C960Z,D460Z");
|
---|
750 | OlympusCameraTypes.put("SR951", "C2000Z");
|
---|
751 | OlympusCameraTypes.put("SR952", "C21");
|
---|
752 | OlympusCameraTypes.put("SR953", "C21T.commu");
|
---|
753 | OlympusCameraTypes.put("SR954", "C2020Z");
|
---|
754 | OlympusCameraTypes.put("SR955", "C990Z,D490Z");
|
---|
755 | OlympusCameraTypes.put("SR956", "C211Z");
|
---|
756 | OlympusCameraTypes.put("SR959", "C990ZS,D490Z");
|
---|
757 | OlympusCameraTypes.put("SR95A", "C2100UZ");
|
---|
758 | OlympusCameraTypes.put("SR971", "C100,D370");
|
---|
759 | OlympusCameraTypes.put("SR973", "C2,D230");
|
---|
760 | OlympusCameraTypes.put("SX151", "E100RS");
|
---|
761 | OlympusCameraTypes.put("SX351", "C3000Z / C3030Z");
|
---|
762 | OlympusCameraTypes.put("SX354", "C3040Z");
|
---|
763 | OlympusCameraTypes.put("SX355", "C2040Z");
|
---|
764 | OlympusCameraTypes.put("SX357", "C700UZ");
|
---|
765 | OlympusCameraTypes.put("SX358", "C200Z,D510Z");
|
---|
766 | OlympusCameraTypes.put("SX374", "C3100Z,C3020Z");
|
---|
767 | OlympusCameraTypes.put("SX552", "C4040Z");
|
---|
768 | OlympusCameraTypes.put("SX553", "C40Z,D40Z");
|
---|
769 | OlympusCameraTypes.put("SX556", "C730UZ");
|
---|
770 | OlympusCameraTypes.put("SX558", "C5050Z");
|
---|
771 | OlympusCameraTypes.put("SX571", "C120,D380");
|
---|
772 | OlympusCameraTypes.put("SX574", "C300Z,D550Z");
|
---|
773 | OlympusCameraTypes.put("SX575", "C4100Z,C4000Z");
|
---|
774 | OlympusCameraTypes.put("SX751", "X200,D560Z,C350Z");
|
---|
775 | OlympusCameraTypes.put("SX752", "X300,D565Z,C450Z");
|
---|
776 | OlympusCameraTypes.put("SX753", "C750UZ");
|
---|
777 | OlympusCameraTypes.put("SX754", "C740UZ");
|
---|
778 | OlympusCameraTypes.put("SX755", "C755UZ");
|
---|
779 | OlympusCameraTypes.put("SX756", "C5060WZ");
|
---|
780 | OlympusCameraTypes.put("SX757", "C8080WZ");
|
---|
781 | OlympusCameraTypes.put("SX758", "X350,D575Z,C360Z");
|
---|
782 | OlympusCameraTypes.put("SX759", "X400,D580Z,C460Z");
|
---|
783 | OlympusCameraTypes.put("SX75A", "AZ-2ZOOM");
|
---|
784 | OlympusCameraTypes.put("SX75B", "D595Z,C500Z");
|
---|
785 | OlympusCameraTypes.put("SX75C", "X550,D545Z,C480Z");
|
---|
786 | OlympusCameraTypes.put("SX75D", "IR-300");
|
---|
787 | OlympusCameraTypes.put("SX75F", "C55Z,C5500Z");
|
---|
788 | OlympusCameraTypes.put("SX75G", "C170,D425");
|
---|
789 | OlympusCameraTypes.put("SX75J", "C180,D435");
|
---|
790 | OlympusCameraTypes.put("SX771", "C760UZ");
|
---|
791 | OlympusCameraTypes.put("SX772", "C770UZ");
|
---|
792 | OlympusCameraTypes.put("SX773", "C745UZ");
|
---|
793 | OlympusCameraTypes.put("SX774", "X250,D560Z,C350Z");
|
---|
794 | OlympusCameraTypes.put("SX775", "X100,D540Z,C310Z");
|
---|
795 | OlympusCameraTypes.put("SX776", "C460ZdelSol");
|
---|
796 | OlympusCameraTypes.put("SX777", "C765UZ");
|
---|
797 | OlympusCameraTypes.put("SX77A", "D555Z,C315Z");
|
---|
798 | OlympusCameraTypes.put("SX851", "C7070WZ");
|
---|
799 | OlympusCameraTypes.put("SX852", "C70Z,C7000Z");
|
---|
800 | OlympusCameraTypes.put("SX853", "SP500UZ");
|
---|
801 | OlympusCameraTypes.put("SX854", "SP310");
|
---|
802 | OlympusCameraTypes.put("SX855", "SP350");
|
---|
803 | OlympusCameraTypes.put("SX873", "SP320");
|
---|
804 | OlympusCameraTypes.put("SX875", "FE180/X745"); // (also D4330)
|
---|
805 | OlympusCameraTypes.put("SX876", "FE190/X750"); // (also D4327)
|
---|
806 |
|
---|
807 | // other brands
|
---|
808 | // 4MP9Q3", "Camera 4MP-9Q3'
|
---|
809 | // 4MP9T2", "BenQ DC C420 / Camera 4MP-9T2'
|
---|
810 | // 5MP9Q3", "Camera 5MP-9Q3" },
|
---|
811 | // 5MP9X9", "Camera 5MP-9X9" },
|
---|
812 | // '5MP-9T'=> 'Camera 5MP-9T3" },
|
---|
813 | // '5MP-9Y'=> 'Camera 5MP-9Y2" },
|
---|
814 | // '6MP-9U'=> 'Camera 6MP-9U9" },
|
---|
815 | // 7MP9Q3", "Camera 7MP-9Q3" },
|
---|
816 | // '8MP-9U'=> 'Camera 8MP-9U4" },
|
---|
817 | // CE5330", "Acer CE-5330" },
|
---|
818 | // 'CP-853'=> 'Acer CP-8531" },
|
---|
819 | // CS5531", "Acer CS5531" },
|
---|
820 | // DC500 ", "SeaLife DC500" },
|
---|
821 | // DC7370", "Camera 7MP-9GA" },
|
---|
822 | // DC7371", "Camera 7MP-9GM" },
|
---|
823 | // DC7371", "Hitachi HDC-751E" },
|
---|
824 | // DC7375", "Hitachi HDC-763E / Rollei RCP-7330X / Ricoh Caplio RR770 / Vivitar ViviCam 7330" },
|
---|
825 | // 'DC E63'=> 'BenQ DC E63+" },
|
---|
826 | // 'DC P86'=> 'BenQ DC P860" },
|
---|
827 | // DS5340", "Maginon Performic S5 / Premier 5MP-9M7" },
|
---|
828 | // DS5341", "BenQ E53+ / Supra TCM X50 / Maginon X50 / Premier 5MP-9P8" },
|
---|
829 | // DS5346", "Premier 5MP-9Q2" },
|
---|
830 | // E500 ", "Konica Minolta DiMAGE E500" },
|
---|
831 | // MAGINO", "Maginon X60" },
|
---|
832 | // Mz60 ", "HP Photosmart Mz60" },
|
---|
833 | // Q3DIGI", "Camera 5MP-9Q3" },
|
---|
834 | // SLIMLI", "Supra Slimline X6" },
|
---|
835 | // V8300s", "Vivitar V8300s" },
|
---|
836 | }
|
---|
837 | }
|
---|