1 | /*
|
---|
2 | * Copyright 2002-2019 Drew Noakes and contributors
|
---|
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.annotations.NotNull;
|
---|
24 | import com.drew.metadata.Directory;
|
---|
25 |
|
---|
26 | import java.util.HashMap;
|
---|
27 |
|
---|
28 | /**
|
---|
29 | * Describes tags specific to Sony cameras that use the Sony Type 1 makernote tags.
|
---|
30 | *
|
---|
31 | * @author Drew Noakes https://drewnoakes.com
|
---|
32 | */
|
---|
33 | @SuppressWarnings("WeakerAccess")
|
---|
34 | public class SonyType1MakernoteDirectory extends Directory
|
---|
35 | {
|
---|
36 | public static final int TAG_CAMERA_INFO = 0x0010;
|
---|
37 | public static final int TAG_FOCUS_INFO = 0x0020;
|
---|
38 |
|
---|
39 | public static final int TAG_IMAGE_QUALITY = 0x0102;
|
---|
40 | public static final int TAG_FLASH_EXPOSURE_COMP = 0x0104;
|
---|
41 | public static final int TAG_TELECONVERTER = 0x0105;
|
---|
42 |
|
---|
43 | public static final int TAG_WHITE_BALANCE_FINE_TUNE = 0x0112;
|
---|
44 | public static final int TAG_CAMERA_SETTINGS = 0x0114;
|
---|
45 | public static final int TAG_WHITE_BALANCE = 0x0115;
|
---|
46 | public static final int TAG_EXTRA_INFO = 0x0116;
|
---|
47 |
|
---|
48 | public static final int TAG_PRINT_IMAGE_MATCHING_INFO = 0x0E00;
|
---|
49 |
|
---|
50 | public static final int TAG_MULTI_BURST_MODE = 0x1000;
|
---|
51 | public static final int TAG_MULTI_BURST_IMAGE_WIDTH = 0x1001;
|
---|
52 | public static final int TAG_MULTI_BURST_IMAGE_HEIGHT = 0x1002;
|
---|
53 | public static final int TAG_PANORAMA = 0x1003;
|
---|
54 |
|
---|
55 | public static final int TAG_PREVIEW_IMAGE = 0x2001;
|
---|
56 | public static final int TAG_RATING = 0x2002;
|
---|
57 | public static final int TAG_CONTRAST = 0x2004;
|
---|
58 | public static final int TAG_SATURATION = 0x2005;
|
---|
59 | public static final int TAG_SHARPNESS = 0x2006;
|
---|
60 | public static final int TAG_BRIGHTNESS = 0x2007;
|
---|
61 | public static final int TAG_LONG_EXPOSURE_NOISE_REDUCTION = 0x2008;
|
---|
62 | public static final int TAG_HIGH_ISO_NOISE_REDUCTION = 0x2009;
|
---|
63 | public static final int TAG_HDR = 0x200a;
|
---|
64 | public static final int TAG_MULTI_FRAME_NOISE_REDUCTION = 0x200b;
|
---|
65 | public static final int TAG_PICTURE_EFFECT = 0x200e;
|
---|
66 | public static final int TAG_SOFT_SKIN_EFFECT = 0x200f;
|
---|
67 |
|
---|
68 | public static final int TAG_VIGNETTING_CORRECTION = 0x2011;
|
---|
69 | public static final int TAG_LATERAL_CHROMATIC_ABERRATION = 0x2012;
|
---|
70 | public static final int TAG_DISTORTION_CORRECTION = 0x2013;
|
---|
71 | public static final int TAG_WB_SHIFT_AMBER_MAGENTA = 0x2014;
|
---|
72 | public static final int TAG_AUTO_PORTRAIT_FRAMED = 0x2016;
|
---|
73 | public static final int TAG_FOCUS_MODE = 0x201b;
|
---|
74 | public static final int TAG_AF_POINT_SELECTED = 0x201e;
|
---|
75 |
|
---|
76 | public static final int TAG_SHOT_INFO = 0x3000;
|
---|
77 |
|
---|
78 | public static final int TAG_FILE_FORMAT = 0xb000;
|
---|
79 | public static final int TAG_SONY_MODEL_ID = 0xb001;
|
---|
80 |
|
---|
81 | public static final int TAG_COLOR_MODE_SETTING = 0xb020;
|
---|
82 | public static final int TAG_COLOR_TEMPERATURE = 0xb021;
|
---|
83 | public static final int TAG_COLOR_COMPENSATION_FILTER = 0xb022;
|
---|
84 | public static final int TAG_SCENE_MODE = 0xb023;
|
---|
85 | public static final int TAG_ZONE_MATCHING = 0xb024;
|
---|
86 | public static final int TAG_DYNAMIC_RANGE_OPTIMISER = 0xb025;
|
---|
87 | public static final int TAG_IMAGE_STABILISATION = 0xb026;
|
---|
88 | public static final int TAG_LENS_ID = 0xb027;
|
---|
89 | public static final int TAG_MINOLTA_MAKERNOTE = 0xb028;
|
---|
90 | public static final int TAG_COLOR_MODE = 0xb029;
|
---|
91 | public static final int TAG_LENS_SPEC = 0xb02a;
|
---|
92 | public static final int TAG_FULL_IMAGE_SIZE = 0xb02b;
|
---|
93 | public static final int TAG_PREVIEW_IMAGE_SIZE = 0xb02c;
|
---|
94 |
|
---|
95 | public static final int TAG_MACRO = 0xb040;
|
---|
96 | public static final int TAG_EXPOSURE_MODE = 0xb041;
|
---|
97 | public static final int TAG_FOCUS_MODE_2 = 0xb042;
|
---|
98 | public static final int TAG_AF_MODE = 0xb043;
|
---|
99 | public static final int TAG_AF_ILLUMINATOR = 0xb044;
|
---|
100 | public static final int TAG_JPEG_QUALITY = 0xb047;
|
---|
101 | public static final int TAG_FLASH_LEVEL = 0xb048;
|
---|
102 | public static final int TAG_RELEASE_MODE = 0xb049;
|
---|
103 | public static final int TAG_SEQUENCE_NUMBER = 0xb04a;
|
---|
104 | public static final int TAG_ANTI_BLUR = 0xb04b;
|
---|
105 | /**
|
---|
106 | * (FocusMode for RX100)
|
---|
107 | * 0 = Manual
|
---|
108 | * 2 = AF-S
|
---|
109 | * 3 = AF-C
|
---|
110 | * 5 = Semi-manual
|
---|
111 | * 6 = Direct Manual Focus
|
---|
112 | * (LongExposureNoiseReduction for other models)
|
---|
113 | * 0 = Off
|
---|
114 | * 1 = On
|
---|
115 | * 2 = On 2
|
---|
116 | * 65535 = n/a
|
---|
117 | */
|
---|
118 | public static final int TAG_LONG_EXPOSURE_NOISE_REDUCTION_OR_FOCUS_MODE = 0xb04e;
|
---|
119 | public static final int TAG_DYNAMIC_RANGE_OPTIMIZER = 0xb04f;
|
---|
120 |
|
---|
121 | public static final int TAG_HIGH_ISO_NOISE_REDUCTION_2 = 0xb050;
|
---|
122 | public static final int TAG_INTELLIGENT_AUTO = 0xb052;
|
---|
123 | public static final int TAG_WHITE_BALANCE_2 = 0xb054;
|
---|
124 |
|
---|
125 | public static final int TAG_NO_PRINT = 0xFFFF;
|
---|
126 |
|
---|
127 | @NotNull
|
---|
128 | protected static final HashMap<Integer, String> _tagNameMap = new HashMap<Integer, String>();
|
---|
129 |
|
---|
130 | static
|
---|
131 | {
|
---|
132 | _tagNameMap.put(TAG_CAMERA_INFO, "Camera Info");
|
---|
133 | _tagNameMap.put(TAG_FOCUS_INFO, "Focus Info");
|
---|
134 |
|
---|
135 | _tagNameMap.put(TAG_IMAGE_QUALITY, "Image Quality");
|
---|
136 | _tagNameMap.put(TAG_FLASH_EXPOSURE_COMP, "Flash Exposure Compensation");
|
---|
137 | _tagNameMap.put(TAG_TELECONVERTER, "Teleconverter Model");
|
---|
138 |
|
---|
139 | _tagNameMap.put(TAG_WHITE_BALANCE_FINE_TUNE, "White Balance Fine Tune Value");
|
---|
140 | _tagNameMap.put(TAG_CAMERA_SETTINGS, "Camera Settings");
|
---|
141 | _tagNameMap.put(TAG_WHITE_BALANCE, "White Balance");
|
---|
142 | _tagNameMap.put(TAG_EXTRA_INFO, "Extra Info");
|
---|
143 |
|
---|
144 | _tagNameMap.put(TAG_PRINT_IMAGE_MATCHING_INFO, "Print Image Matching (PIM) Info");
|
---|
145 |
|
---|
146 | _tagNameMap.put(TAG_MULTI_BURST_MODE, "Multi Burst Mode");
|
---|
147 | _tagNameMap.put(TAG_MULTI_BURST_IMAGE_WIDTH, "Multi Burst Image Width");
|
---|
148 | _tagNameMap.put(TAG_MULTI_BURST_IMAGE_HEIGHT, "Multi Burst Image Height");
|
---|
149 | _tagNameMap.put(TAG_PANORAMA, "Panorama");
|
---|
150 |
|
---|
151 | _tagNameMap.put(TAG_PREVIEW_IMAGE, "Preview Image");
|
---|
152 | _tagNameMap.put(TAG_RATING, "Rating");
|
---|
153 | _tagNameMap.put(TAG_CONTRAST, "Contrast");
|
---|
154 | _tagNameMap.put(TAG_SATURATION, "Saturation");
|
---|
155 | _tagNameMap.put(TAG_SHARPNESS, "Sharpness");
|
---|
156 | _tagNameMap.put(TAG_BRIGHTNESS, "Brightness");
|
---|
157 | _tagNameMap.put(TAG_LONG_EXPOSURE_NOISE_REDUCTION, "Long Exposure Noise Reduction");
|
---|
158 | _tagNameMap.put(TAG_HIGH_ISO_NOISE_REDUCTION, "High ISO Noise Reduction");
|
---|
159 | _tagNameMap.put(TAG_HDR, "HDR");
|
---|
160 | _tagNameMap.put(TAG_MULTI_FRAME_NOISE_REDUCTION, "Multi Frame Noise Reduction");
|
---|
161 | _tagNameMap.put(TAG_PICTURE_EFFECT, "Picture Effect");
|
---|
162 | _tagNameMap.put(TAG_SOFT_SKIN_EFFECT, "Soft Skin Effect");
|
---|
163 |
|
---|
164 | _tagNameMap.put(TAG_VIGNETTING_CORRECTION, "Vignetting Correction");
|
---|
165 | _tagNameMap.put(TAG_LATERAL_CHROMATIC_ABERRATION, "Lateral Chromatic Aberration");
|
---|
166 | _tagNameMap.put(TAG_DISTORTION_CORRECTION, "Distortion Correction");
|
---|
167 | _tagNameMap.put(TAG_WB_SHIFT_AMBER_MAGENTA, "WB Shift Amber/Magenta");
|
---|
168 | _tagNameMap.put(TAG_AUTO_PORTRAIT_FRAMED, "Auto Portrait Framing");
|
---|
169 | _tagNameMap.put(TAG_FOCUS_MODE, "Focus Mode");
|
---|
170 | _tagNameMap.put(TAG_AF_POINT_SELECTED, "AF Point Selected");
|
---|
171 |
|
---|
172 | _tagNameMap.put(TAG_SHOT_INFO, "Shot Info");
|
---|
173 |
|
---|
174 | _tagNameMap.put(TAG_FILE_FORMAT, "File Format");
|
---|
175 | _tagNameMap.put(TAG_SONY_MODEL_ID, "Sony Model ID");
|
---|
176 |
|
---|
177 | _tagNameMap.put(TAG_COLOR_MODE_SETTING, "Color Mode Setting");
|
---|
178 | _tagNameMap.put(TAG_COLOR_TEMPERATURE, "Color Temperature");
|
---|
179 | _tagNameMap.put(TAG_COLOR_COMPENSATION_FILTER, "Color Compensation Filter");
|
---|
180 | _tagNameMap.put(TAG_SCENE_MODE, "Scene Mode");
|
---|
181 | _tagNameMap.put(TAG_ZONE_MATCHING, "Zone Matching");
|
---|
182 | _tagNameMap.put(TAG_DYNAMIC_RANGE_OPTIMISER, "Dynamic Range Optimizer");
|
---|
183 | _tagNameMap.put(TAG_IMAGE_STABILISATION, "Image Stabilisation");
|
---|
184 | _tagNameMap.put(TAG_LENS_ID, "Lens ID");
|
---|
185 | _tagNameMap.put(TAG_MINOLTA_MAKERNOTE, "Minolta Makernote");
|
---|
186 | _tagNameMap.put(TAG_COLOR_MODE, "Color Mode");
|
---|
187 | _tagNameMap.put(TAG_LENS_SPEC, "Lens Spec");
|
---|
188 | _tagNameMap.put(TAG_FULL_IMAGE_SIZE, "Full Image Size");
|
---|
189 | _tagNameMap.put(TAG_PREVIEW_IMAGE_SIZE, "Preview Image Size");
|
---|
190 |
|
---|
191 | _tagNameMap.put(TAG_MACRO, "Macro");
|
---|
192 | _tagNameMap.put(TAG_EXPOSURE_MODE, "Exposure Mode");
|
---|
193 | _tagNameMap.put(TAG_FOCUS_MODE_2, "Focus Mode");
|
---|
194 | _tagNameMap.put(TAG_AF_MODE, "AF Mode");
|
---|
195 | _tagNameMap.put(TAG_AF_ILLUMINATOR, "AF Illuminator");
|
---|
196 | _tagNameMap.put(TAG_JPEG_QUALITY, "Quality");
|
---|
197 | _tagNameMap.put(TAG_FLASH_LEVEL, "Flash Level");
|
---|
198 | _tagNameMap.put(TAG_RELEASE_MODE, "Release Mode");
|
---|
199 | _tagNameMap.put(TAG_SEQUENCE_NUMBER, "Sequence Number");
|
---|
200 | _tagNameMap.put(TAG_ANTI_BLUR, "Anti Blur");
|
---|
201 | _tagNameMap.put(TAG_LONG_EXPOSURE_NOISE_REDUCTION_OR_FOCUS_MODE, "Long Exposure Noise Reduction");
|
---|
202 | _tagNameMap.put(TAG_DYNAMIC_RANGE_OPTIMIZER, "Dynamic Range Optimizer");
|
---|
203 |
|
---|
204 | _tagNameMap.put(TAG_HIGH_ISO_NOISE_REDUCTION_2, "High ISO Noise Reduction");
|
---|
205 | _tagNameMap.put(TAG_INTELLIGENT_AUTO, "Intelligent Auto");
|
---|
206 | _tagNameMap.put(TAG_WHITE_BALANCE_2, "White Balance 2");
|
---|
207 |
|
---|
208 | _tagNameMap.put(TAG_NO_PRINT, "No Print");
|
---|
209 | }
|
---|
210 |
|
---|
211 | public SonyType1MakernoteDirectory()
|
---|
212 | {
|
---|
213 | this.setDescriptor(new SonyType1MakernoteDescriptor(this));
|
---|
214 | }
|
---|
215 |
|
---|
216 | @Override
|
---|
217 | @NotNull
|
---|
218 | public String getName()
|
---|
219 | {
|
---|
220 | return "Sony Makernote";
|
---|
221 | }
|
---|
222 |
|
---|
223 | @Override
|
---|
224 | @NotNull
|
---|
225 | protected HashMap<Integer, String> getTagNameMap()
|
---|
226 | {
|
---|
227 | return _tagNameMap;
|
---|
228 | }
|
---|
229 | }
|
---|