source: josm/trunk/src/com/drew/metadata/exif/OlympusMakernoteDirectory.java@ 6830

Last change on this file since 6830 was 6127, checked in by bastiK, 13 years ago

applied #8895 - Upgrade metadata-extractor to v. 2.6.4 (patch by ebourg)

File size: 9.7 KB
Line 
1/*
2 * Copyright 2002-2012 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 * http://drewnoakes.com/code/exif/
19 * http://code.google.com/p/metadata-extractor/
20 */
21package com.drew.metadata.exif;
22
23import com.drew.lang.annotations.NotNull;
24import com.drew.metadata.Directory;
25
26import java.util.HashMap;
27
28/**
29 * The Olympus makernote is used by many manufacturers (Konica, Minolta and Epson...), and as such contains some tags
30 * that appear specific to those manufacturers.
31 *
32 * @author Drew Noakes http://drewnoakes.com
33 */
34public class OlympusMakernoteDirectory extends Directory
35{
36 /** Used by Konica / Minolta cameras. */
37 public static final int TAG_OLYMPUS_MAKERNOTE_VERSION = 0x0000;
38 /** Used by Konica / Minolta cameras. */
39 public static final int TAG_OLYMPUS_CAMERA_SETTINGS_1 = 0x0001;
40 /** Alternate Camera Settings Tag. Used by Konica / Minolta cameras. */
41 public static final int TAG_OLYMPUS_CAMERA_SETTINGS_2 = 0x0003;
42 /** Used by Konica / Minolta cameras. */
43 public static final int TAG_OLYMPUS_COMPRESSED_IMAGE_SIZE = 0x0040;
44 /** Used by Konica / Minolta cameras. */
45 public static final int TAG_OLYMPUS_MINOLTA_THUMBNAIL_OFFSET_1 = 0x0081;
46 /** Alternate Thumbnail Offset. Used by Konica / Minolta cameras. */
47 public static final int TAG_OLYMPUS_MINOLTA_THUMBNAIL_OFFSET_2 = 0x0088;
48 /** Length of thumbnail in bytes. Used by Konica / Minolta cameras. */
49 public static final int TAG_OLYMPUS_MINOLTA_THUMBNAIL_LENGTH = 0x0089;
50
51 /**
52 * Used by Konica / Minolta cameras
53 * 0 = Natural Colour
54 * 1 = Black & White
55 * 2 = Vivid colour
56 * 3 = Solarization
57 * 4 = AdobeRGB
58 */
59 public static final int TAG_OLYMPUS_COLOUR_MODE = 0x0101;
60
61 /**
62 * Used by Konica / Minolta cameras.
63 * 0 = Raw
64 * 1 = Super Fine
65 * 2 = Fine
66 * 3 = Standard
67 * 4 = Extra Fine
68 */
69 public static final int TAG_OLYMPUS_IMAGE_QUALITY_1 = 0x0102;
70
71 /**
72 * Not 100% sure about this tag.
73 * <p/>
74 * Used by Konica / Minolta cameras.
75 * 0 = Raw
76 * 1 = Super Fine
77 * 2 = Fine
78 * 3 = Standard
79 * 4 = Extra Fine
80 */
81 public static final int TAG_OLYMPUS_IMAGE_QUALITY_2 = 0x0103;
82
83
84 /**
85 * Three values:
86 * Value 1: 0=Normal, 2=Fast, 3=Panorama
87 * Value 2: Sequence Number Value 3:
88 * 1 = Panorama Direction: Left to Right
89 * 2 = Panorama Direction: Right to Left
90 * 3 = Panorama Direction: Bottom to Top
91 * 4 = Panorama Direction: Top to Bottom
92 */
93 public static final int TAG_OLYMPUS_SPECIAL_MODE = 0x0200;
94
95 /**
96 * 1 = Standard Quality
97 * 2 = High Quality
98 * 3 = Super High Quality
99 */
100 public static final int TAG_OLYMPUS_JPEG_QUALITY = 0x0201;
101
102 /**
103 * 0 = Normal (Not Macro)
104 * 1 = Macro
105 */
106 public static final int TAG_OLYMPUS_MACRO_MODE = 0x0202;
107
108 public static final int TAG_OLYMPUS_UNKNOWN_1 = 0x0203;
109
110 /** Zoom Factor (0 or 1 = normal) */
111 public static final int TAG_OLYMPUS_DIGI_ZOOM_RATIO = 0x0204;
112 public static final int TAG_OLYMPUS_UNKNOWN_2 = 0x0205;
113 public static final int TAG_OLYMPUS_UNKNOWN_3 = 0x0206;
114 public static final int TAG_OLYMPUS_FIRMWARE_VERSION = 0x0207;
115 public static final int TAG_OLYMPUS_PICT_INFO = 0x0208;
116 public static final int TAG_OLYMPUS_CAMERA_ID = 0x0209;
117
118 /**
119 * Used by Epson cameras
120 * Units = pixels
121 */
122 public static final int TAG_OLYMPUS_IMAGE_WIDTH = 0x020B;
123
124 /**
125 * Used by Epson cameras
126 * Units = pixels
127 */
128 public static final int TAG_OLYMPUS_IMAGE_HEIGHT = 0x020C;
129
130 /** A string. Used by Epson cameras. */
131 public static final int TAG_OLYMPUS_ORIGINAL_MANUFACTURER_MODEL = 0x020D;
132
133 /**
134 * See the PIM specification here:
135 * http://www.ozhiker.com/electronics/pjmt/jpeg_info/pim.html
136 */
137 public static final int TAG_OLYMPUS_PRINT_IMAGE_MATCHING_INFO = 0x0E00;
138
139 public static final int TAG_OLYMPUS_DATA_DUMP = 0x0F00;
140 public static final int TAG_OLYMPUS_FLASH_MODE = 0x1004;
141 public static final int TAG_OLYMPUS_BRACKET = 0x1006;
142 public static final int TAG_OLYMPUS_FOCUS_MODE = 0x100B;
143 public static final int TAG_OLYMPUS_FOCUS_DISTANCE = 0x100C;
144 public static final int TAG_OLYMPUS_ZOOM = 0x100D;
145 public static final int TAG_OLYMPUS_MACRO_FOCUS = 0x100E;
146 public static final int TAG_OLYMPUS_SHARPNESS = 0x100F;
147 public static final int TAG_OLYMPUS_COLOUR_MATRIX = 0x1011;
148 public static final int TAG_OLYMPUS_BLACK_LEVEL = 0x1012;
149 public static final int TAG_OLYMPUS_WHITE_BALANCE = 0x1015;
150 public static final int TAG_OLYMPUS_RED_BIAS = 0x1017;
151 public static final int TAG_OLYMPUS_BLUE_BIAS = 0x1018;
152 public static final int TAG_OLYMPUS_SERIAL_NUMBER = 0x101A;
153 public static final int TAG_OLYMPUS_FLASH_BIAS = 0x1023;
154 public static final int TAG_OLYMPUS_CONTRAST = 0x1029;
155 public static final int TAG_OLYMPUS_SHARPNESS_FACTOR = 0x102A;
156 public static final int TAG_OLYMPUS_COLOUR_CONTROL = 0x102B;
157 public static final int TAG_OLYMPUS_VALID_BITS = 0x102C;
158 public static final int TAG_OLYMPUS_CORING_FILTER = 0x102D;
159 public static final int TAG_OLYMPUS_FINAL_WIDTH = 0x102E;
160 public static final int TAG_OLYMPUS_FINAL_HEIGHT = 0x102F;
161 public static final int TAG_OLYMPUS_COMPRESSION_RATIO = 0x1034;
162
163 @NotNull
164 protected static final HashMap<Integer, String> _tagNameMap = new HashMap<Integer, String>();
165
166 static {
167 _tagNameMap.put(TAG_OLYMPUS_SPECIAL_MODE, "Special Mode");
168 _tagNameMap.put(TAG_OLYMPUS_JPEG_QUALITY, "Jpeg Quality");
169 _tagNameMap.put(TAG_OLYMPUS_MACRO_MODE, "Macro");
170 _tagNameMap.put(TAG_OLYMPUS_UNKNOWN_1, "Makernote Unknown 1");
171 _tagNameMap.put(TAG_OLYMPUS_DIGI_ZOOM_RATIO, "DigiZoom Ratio");
172 _tagNameMap.put(TAG_OLYMPUS_UNKNOWN_2, "Makernote Unknown 2");
173 _tagNameMap.put(TAG_OLYMPUS_UNKNOWN_3, "Makernote Unknown 3");
174 _tagNameMap.put(TAG_OLYMPUS_FIRMWARE_VERSION, "Firmware Version");
175 _tagNameMap.put(TAG_OLYMPUS_PICT_INFO, "Pict Info");
176 _tagNameMap.put(TAG_OLYMPUS_CAMERA_ID, "Camera Id");
177 _tagNameMap.put(TAG_OLYMPUS_DATA_DUMP, "Data Dump");
178 _tagNameMap.put(TAG_OLYMPUS_MAKERNOTE_VERSION, "Makernote Version");
179 _tagNameMap.put(TAG_OLYMPUS_CAMERA_SETTINGS_1, "Camera Settings");
180 _tagNameMap.put(TAG_OLYMPUS_CAMERA_SETTINGS_2, "Camera Settings");
181 _tagNameMap.put(TAG_OLYMPUS_COMPRESSED_IMAGE_SIZE, "Compressed Image Size");
182 _tagNameMap.put(TAG_OLYMPUS_MINOLTA_THUMBNAIL_OFFSET_1, "Thumbnail Offset");
183 _tagNameMap.put(TAG_OLYMPUS_MINOLTA_THUMBNAIL_OFFSET_2, "Thumbnail Offset");
184 _tagNameMap.put(TAG_OLYMPUS_MINOLTA_THUMBNAIL_LENGTH, "Thumbnail Length");
185 _tagNameMap.put(TAG_OLYMPUS_COLOUR_MODE, "Colour Mode");
186 _tagNameMap.put(TAG_OLYMPUS_IMAGE_QUALITY_1, "Image Quality");
187 _tagNameMap.put(TAG_OLYMPUS_IMAGE_QUALITY_2, "Image Quality");
188 _tagNameMap.put(TAG_OLYMPUS_IMAGE_HEIGHT, "Image Height");
189 _tagNameMap.put(TAG_OLYMPUS_IMAGE_WIDTH, "Image Width");
190 _tagNameMap.put(TAG_OLYMPUS_ORIGINAL_MANUFACTURER_MODEL, "Original Manufacturer Model");
191 _tagNameMap.put(TAG_OLYMPUS_PRINT_IMAGE_MATCHING_INFO, "Print Image Matching (PIM) Info");
192 _tagNameMap.put(TAG_OLYMPUS_FLASH_MODE, "Flash Mode");
193 _tagNameMap.put(TAG_OLYMPUS_BRACKET, "Bracket");
194 _tagNameMap.put(TAG_OLYMPUS_FOCUS_MODE, "Focus Mode");
195 _tagNameMap.put(TAG_OLYMPUS_FOCUS_DISTANCE, "Focus Distance");
196 _tagNameMap.put(TAG_OLYMPUS_ZOOM, "Zoom");
197 _tagNameMap.put(TAG_OLYMPUS_MACRO_FOCUS, "Macro Focus");
198 _tagNameMap.put(TAG_OLYMPUS_SHARPNESS, "Sharpness");
199 _tagNameMap.put(TAG_OLYMPUS_COLOUR_MATRIX, "Colour Matrix");
200 _tagNameMap.put(TAG_OLYMPUS_BLACK_LEVEL, "Black Level");
201 _tagNameMap.put(TAG_OLYMPUS_WHITE_BALANCE, "White Balance");
202 _tagNameMap.put(TAG_OLYMPUS_RED_BIAS, "Red Bias");
203 _tagNameMap.put(TAG_OLYMPUS_BLUE_BIAS, "Blue Bias");
204 _tagNameMap.put(TAG_OLYMPUS_SERIAL_NUMBER, "Serial Number");
205 _tagNameMap.put(TAG_OLYMPUS_FLASH_BIAS, "Flash Bias");
206 _tagNameMap.put(TAG_OLYMPUS_CONTRAST, "Contrast");
207 _tagNameMap.put(TAG_OLYMPUS_SHARPNESS_FACTOR, "Sharpness Factor");
208 _tagNameMap.put(TAG_OLYMPUS_COLOUR_CONTROL, "Colour Control");
209 _tagNameMap.put(TAG_OLYMPUS_VALID_BITS, "Valid Bits");
210 _tagNameMap.put(TAG_OLYMPUS_CORING_FILTER, "Coring Filter");
211 _tagNameMap.put(TAG_OLYMPUS_FINAL_WIDTH, "Final Width");
212 _tagNameMap.put(TAG_OLYMPUS_FINAL_HEIGHT, "Final Height");
213 _tagNameMap.put(TAG_OLYMPUS_COMPRESSION_RATIO, "Compression Ratio");
214 }
215
216 public OlympusMakernoteDirectory()
217 {
218 this.setDescriptor(new OlympusMakernoteDescriptor(this));
219 }
220
221 @NotNull
222 public String getName()
223 {
224 return "Olympus Makernote";
225 }
226
227 @NotNull
228 protected HashMap<Integer, String> getTagNameMap()
229 {
230 return _tagNameMap;
231 }
232}
Note: See TracBrowser for help on using the repository browser.