📄 canonmakernotedirectory.java
字号:
* 0x0040 = 2 EV
*/
public static final int TAG_CANON_STATE2_FLASH_BIAS = 0xC20F;
public static final int TAG_CANON_STATE2_AUTO_EXPOSURE_BRACKETING = 0xC210;
public static final int TAG_CANON_STATE2_AEB_BRACKET_VALUE = 0xC211;
public static final int TAG_CANON_STATE2_SUBJECT_DISTANCE = 0xC213;
/**
* Long Exposure Noise Reduction
* 0 = Off
* 1 = On
*/
public static final int TAG_CANON_CUSTOM_FUNCTION_LONG_EXPOSURE_NOISE_REDUCTION = 0xC301;
/**
* Shutter/Auto Exposure-lock buttons
* 0 = AF/AE lock
* 1 = AE lock/AF
* 2 = AF/AF lock
* 3 = AE+release/AE+AF
*/
public static final int TAG_CANON_CUSTOM_FUNCTION_SHUTTER_AUTO_EXPOSURE_LOCK_BUTTONS = 0xC302;
/**
* Mirror lockup
* 0 = Disable
* 1 = Enable
*/
public static final int TAG_CANON_CUSTOM_FUNCTION_MIRROR_LOCKUP = 0xC303;
/**
* Tv/Av and exposure level
* 0 = 1/2 stop
* 1 = 1/3 stop
*/
public static final int TAG_CANON_CUSTOM_FUNCTION_TV_AV_AND_EXPOSURE_LEVEL = 0xC304;
/**
* AF-assist light
* 0 = On (Auto)
* 1 = Off
*/
public static final int TAG_CANON_CUSTOM_FUNCTION_AF_ASSIST_LIGHT = 0xC305;
/**
* Shutter speed in Av mode
* 0 = Automatic
* 1 = 1/200 (fixed)
*/
public static final int TAG_CANON_CUSTOM_FUNCTION_SHUTTER_SPEED_IN_AV_MODE = 0xC306;
/**
* Auto-Exposure Bracketting sequence/auto cancellation
* 0 = 0,-,+ / Enabled
* 1 = 0,-,+ / Disabled
* 2 = -,0,+ / Enabled
* 3 = -,0,+ / Disabled
*/
public static final int TAG_CANON_CUSTOM_FUNCTION_BRACKETTING = 0xC307;
/**
* Shutter Curtain Sync
* 0 = 1st Curtain Sync
* 1 = 2nd Curtain Sync
*/
public static final int TAG_CANON_CUSTOM_FUNCTION_SHUTTER_CURTAIN_SYNC = 0xC308;
/**
* Lens Auto-Focus stop button Function Switch
* 0 = AF stop
* 1 = Operate AF
* 2 = Lock AE and start timer
*/
public static final int TAG_CANON_CUSTOM_FUNCTION_AF_STOP = 0xC309;
/**
* Auto reduction of fill flash
* 0 = Enable
* 1 = Disable
*/
public static final int TAG_CANON_CUSTOM_FUNCTION_FILL_FLASH_REDUCTION = 0xC30A;
/**
* Menu button return position
* 0 = Top
* 1 = Previous (volatile)
* 2 = Previous
*/
public static final int TAG_CANON_CUSTOM_FUNCTION_MENU_BUTTON_RETURN = 0xC30B;
/**
* SET button function when shooting
* 0 = Not Assigned
* 1 = Change Quality
* 2 = Change ISO Speed
* 3 = Select Parameters
*/
public static final int TAG_CANON_CUSTOM_FUNCTION_SET_BUTTON_FUNCTION = 0xC30C;
/**
* Sensor cleaning
* 0 = Disable
* 1 = Enable
*/
public static final int TAG_CANON_CUSTOM_FUNCTION_SENSOR_CLEANING = 0xC30D;
// 9 A B C D E F 10 11 12 13
// 9 10 11 12 13 14 15 16 17 18 19
protected static final HashMap _tagNameMap = new HashMap();
static
{
_tagNameMap.put(new Integer(TAG_CANON_FIRMWARE_VERSION), "Firmware Version");
_tagNameMap.put(new Integer(TAG_CANON_IMAGE_NUMBER), "Image Number");
_tagNameMap.put(new Integer(TAG_CANON_IMAGE_TYPE), "Image Type");
_tagNameMap.put(new Integer(TAG_CANON_OWNER_NAME), "Owner Name");
_tagNameMap.put(new Integer(TAG_CANON_UNKNOWN_1), "Makernote Unknown 1");
_tagNameMap.put(new Integer(TAG_CANON_CUSTOM_FUNCTIONS), "Custom Functions");
_tagNameMap.put(new Integer(TAG_CANON_SERIAL_NUMBER), "Camera Serial Number");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_AF_POINT_SELECTED), "AF Point Selected");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_CONTINUOUS_DRIVE_MODE), "Continuous Drive Mode");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_CONTRAST), "Contrast");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_EASY_SHOOTING_MODE), "Easy Shooting Mode");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_EXPOSURE_MODE), "Exposure Mode");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_FLASH_DETAILS), "Flash Details");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_FLASH_MODE), "Flash Mode");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_FOCAL_UNITS_PER_MM), "Focal Units per mm");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_FOCUS_MODE_1), "Focus Mode");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_FOCUS_MODE_2), "Focus Mode");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_IMAGE_SIZE), "Image Size");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_ISO), "Iso");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_LONG_FOCAL_LENGTH), "Long Focal Length");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_MACRO_MODE), "Macro Mode");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_METERING_MODE), "Metering Mode");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_SATURATION), "Saturation");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_SELF_TIMER_DELAY), "Self Timer Delay");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_SHARPNESS), "Sharpness");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_SHORT_FOCAL_LENGTH), "Short Focal Length");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_QUALITY), "Quality");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_UNKNOWN_2), "Unknown Camera State 2");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_UNKNOWN_3), "Unknown Camera State 3");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_UNKNOWN_4), "Unknown Camera State 4");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_DIGITAL_ZOOM), "Digital Zoom");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_FOCUS_TYPE), "Focus Type");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_UNKNOWN_7), "Unknown Camera State 7");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_UNKNOWN_8), "Unknown Camera State 8");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_UNKNOWN_9), "Unknown Camera State 9");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_UNKNOWN_10), "Unknown Camera State 10");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_FLASH_ACTIVITY), "Flash Activity");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_UNKNOWN_12), "Unknown Camera State 12");
_tagNameMap.put(new Integer(TAG_CANON_STATE1_UNKNOWN_13), "Unknown Camera State 13");
_tagNameMap.put(new Integer(TAG_CANON_STATE2_WHITE_BALANCE), "White Balance");
_tagNameMap.put(new Integer(TAG_CANON_STATE2_SEQUENCE_NUMBER), "Sequence Number");
_tagNameMap.put(new Integer(TAG_CANON_STATE2_AF_POINT_USED), "AF Point Used");
_tagNameMap.put(new Integer(TAG_CANON_STATE2_FLASH_BIAS), "Flash Bias");
_tagNameMap.put(new Integer(TAG_CANON_STATE2_AUTO_EXPOSURE_BRACKETING), "Auto Exposure Bracketing");
_tagNameMap.put(new Integer(TAG_CANON_STATE2_AEB_BRACKET_VALUE), "AEB Bracket Value");
_tagNameMap.put(new Integer(TAG_CANON_STATE2_SUBJECT_DISTANCE), "Subject Distance");
_tagNameMap.put(new Integer(TAG_CANON_CUSTOM_FUNCTION_LONG_EXPOSURE_NOISE_REDUCTION), "Long Exposure Noise Reduction");
_tagNameMap.put(new Integer(TAG_CANON_CUSTOM_FUNCTION_SHUTTER_AUTO_EXPOSURE_LOCK_BUTTONS), "Shutter/Auto Exposure-lock Buttons");
_tagNameMap.put(new Integer(TAG_CANON_CUSTOM_FUNCTION_MIRROR_LOCKUP), "Mirror Lockup");
_tagNameMap.put(new Integer(TAG_CANON_CUSTOM_FUNCTION_TV_AV_AND_EXPOSURE_LEVEL), "Tv/Av And Exposure Level");
_tagNameMap.put(new Integer(TAG_CANON_CUSTOM_FUNCTION_AF_ASSIST_LIGHT), "AF-Assist Light");
_tagNameMap.put(new Integer(TAG_CANON_CUSTOM_FUNCTION_SHUTTER_SPEED_IN_AV_MODE), "Shutter Speed in Av Mode");
_tagNameMap.put(new Integer(TAG_CANON_CUSTOM_FUNCTION_BRACKETTING), "Auto-Exposure Bracketting Sequence/Auto Cancellation");
_tagNameMap.put(new Integer(TAG_CANON_CUSTOM_FUNCTION_SHUTTER_CURTAIN_SYNC), "Shutter Curtain Sync");
_tagNameMap.put(new Integer(TAG_CANON_CUSTOM_FUNCTION_AF_STOP), "Lens Auto-Focus Stop Button Function Switch");
_tagNameMap.put(new Integer(TAG_CANON_CUSTOM_FUNCTION_FILL_FLASH_REDUCTION), "Auto Reduction of Fill Flash");
_tagNameMap.put(new Integer(TAG_CANON_CUSTOM_FUNCTION_MENU_BUTTON_RETURN), "Menu Button Return Position");
_tagNameMap.put(new Integer(TAG_CANON_CUSTOM_FUNCTION_SET_BUTTON_FUNCTION), "SET Button Function When Shooting");
_tagNameMap.put(new Integer(TAG_CANON_CUSTOM_FUNCTION_SENSOR_CLEANING), "Sensor Cleaning");
}
public CanonMakernoteDirectory()
{
this.setDescriptor(new CanonMakernoteDescriptor(this));
}
public String getName()
{
return "Canon Makernote";
}
protected HashMap getTagNameMap()
{
return _tagNameMap;
}
/**
* We need special handling for selected tags.
* @param tagType
* @param ints
*/
public void setIntArray(int tagType, int[] ints)
{
if (tagType == TAG_CANON_CAMERA_STATE_1) {
// this single tag has multiple values within
int subTagTypeBase = 0xC100;
// we intentionally skip the first array member
for (int i = 1; i < ints.length; i++) {
setInt(subTagTypeBase + i, ints[i]);
}
} else if (tagType == TAG_CANON_CAMERA_STATE_2) {
// this single tag has multiple values within
int subTagTypeBase = 0xC200;
// we intentionally skip the first array member
for (int i = 1; i < ints.length; i++) {
setInt(subTagTypeBase + i, ints[i]);
}
} if (tagType == TAG_CANON_CUSTOM_FUNCTIONS) {
// this single tag has multiple values within
int subTagTypeBase = 0xC300;
// we intentionally skip the first array member
for (int i = 1; i < ints.length; i++) {
setInt(subTagTypeBase + i + 1, ints[i] & 0x0F);
}
} else {
// no special handling...
super.setIntArray(tagType, ints);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -