📄 canonmakernotedirectory.java
字号:
/*
* This is public domain software - that is, you can do whatever you want
* with it, and include it software that is licensed under the GNU or the
* BSD license, or whatever other licence you choose, including proprietary
* closed source licenses. I do ask that you leave this header in tact.
*
* If you make modifications to this code that you think would benefit the
* wider community, please send me a copy and I'll post it on my site.
*
* If you make use of this code, I'd appreciate hearing about it.
* drew@drewnoakes.com
* Latest version of this software kept at
* http://drewnoakes.com/
*
* Created by dnoakes on 27-Nov-2002 10:10:47 using IntelliJ IDEA.
*/
package com.drew.metadata.exif;
import com.drew.metadata.Directory;
import java.util.HashMap;
/**
* Describes tags specific to Canon cameras.
*
* Thanks to Bill Richards for his contribution to this makernote directory.
*
* Many tag definitions explained here: http://www.ozhiker.com/electronics/pjmt/jpeg_info/canon_mn.html
*/
public class CanonMakernoteDirectory extends Directory
{
// CANON cameras have some funny bespoke fields that need further processing...
public static final int TAG_CANON_CAMERA_STATE_1 = 0x0001;
public static final int TAG_CANON_CAMERA_STATE_2 = 0x0004;
public static final int TAG_CANON_IMAGE_TYPE = 0x0006;
public static final int TAG_CANON_FIRMWARE_VERSION = 0x0007;
public static final int TAG_CANON_IMAGE_NUMBER = 0x0008;
public static final int TAG_CANON_OWNER_NAME = 0x0009;
/**
* To display serial number as on camera use: printf( "%04X%05d", highbyte, lowbyte )
* TODO handle this in CanonMakernoteDescriptor
*/
public static final int TAG_CANON_SERIAL_NUMBER = 0x000C;
public static final int TAG_CANON_UNKNOWN_1 = 0x000D;
public static final int TAG_CANON_CUSTOM_FUNCTIONS = 0x000F;
// These 'sub'-tag values have been created for consistency -- they don't exist within the exif segment
/**
* 1 = Macro
* 2 = Normal
*/
public static final int TAG_CANON_STATE1_MACRO_MODE = 0xC101;
public static final int TAG_CANON_STATE1_SELF_TIMER_DELAY = 0xC102;
/**
* 2 = Normal
* 3 = Fine
* 5 = Superfine
*/
public static final int TAG_CANON_STATE1_QUALITY = 0xC103;
/**
* 0 = Flash Not Fired
* 1 = Auto
* 2 = On
* 3 = Red Eye Reduction
* 4 = Slow Synchro
* 5 = Auto + Red Eye Reduction
* 6 = On + Red Eye Reduction
* 16 = External Flash
*/
public static final int TAG_CANON_STATE1_FLASH_MODE = 0xC104;
/**
* 0 = Single Frame or Timer Mode
* 1 = Continuous
*/
public static final int TAG_CANON_STATE1_CONTINUOUS_DRIVE_MODE = 0xC105;
public static final int TAG_CANON_STATE1_UNKNOWN_2 = 0xC106;
/**
* 0 = One-Shot
* 1 = AI Servo
* 2 = AI Focus
* 3 = Manual Focus
* 4 = Single
* 5 = Continuous
* 6 = Manual Focus
*/
public static final int TAG_CANON_STATE1_FOCUS_MODE_1 = 0xC107;
public static final int TAG_CANON_STATE1_UNKNOWN_3 = 0xC108;
public static final int TAG_CANON_STATE1_UNKNOWN_4 = 0xC109;
/**
* 0 = Large
* 1 = Medium
* 2 = Small
*/
public static final int TAG_CANON_STATE1_IMAGE_SIZE = 0xC10A;
/**
* 0 = Full Auto
* 1 = Manual
* 2 = Landscape
* 3 = Fast Shutter
* 4 = Slow Shutter
* 5 = Night
* 6 = Black & White
* 7 = Sepia
* 8 = Portrait
* 9 = Sports
* 10 = Macro / Close-Up
* 11 = Pan Focus
*/
public static final int TAG_CANON_STATE1_EASY_SHOOTING_MODE = 0xC10B;
/**
* 0 = No Digital Zoom
* 1 = 2x
* 2 = 4x
*/
public static final int TAG_CANON_STATE1_DIGITAL_ZOOM = 0xC10C;
/**
* 0 = Normal
* 1 = High
* 65535 = Low
*/
public static final int TAG_CANON_STATE1_CONTRAST = 0xC10D;
/**
* 0 = Normal
* 1 = High
* 65535 = Low
*/
public static final int TAG_CANON_STATE1_SATURATION = 0xC10E;
/**
* 0 = Normal
* 1 = High
* 65535 = Low
*/
public static final int TAG_CANON_STATE1_SHARPNESS = 0xC10F;
/**
* 0 = Check ISOSpeedRatings EXIF tag for ISO Speed
* 15 = Auto ISO
* 16 = ISO 50
* 17 = ISO 100
* 18 = ISO 200
* 19 = ISO 400
*/
public static final int TAG_CANON_STATE1_ISO = 0xC110;
/**
* 3 = Evaluative
* 4 = Partial
* 5 = Centre Weighted
*/
public static final int TAG_CANON_STATE1_METERING_MODE = 0xC111;
/**
* 0 = Manual
* 1 = Auto
* 3 = Close-up (Macro)
* 8 = Locked (Pan Mode)
*/
public static final int TAG_CANON_STATE1_FOCUS_TYPE = 0xC112;
/**
* 12288 = None (Manual Focus)
* 12289 = Auto Selected
* 12290 = Right
* 12291 = Centre
* 12292 = Left
*/
public static final int TAG_CANON_STATE1_AF_POINT_SELECTED = 0xC113;
/**
* 0 = Easy Shooting (See Easy Shooting Mode)
* 1 = Program
* 2 = Tv-Priority
* 3 = Av-Priority
* 4 = Manual
* 5 = A-DEP
*/
public static final int TAG_CANON_STATE1_EXPOSURE_MODE = 0xC114;
public static final int TAG_CANON_STATE1_UNKNOWN_7 = 0xC115;
public static final int TAG_CANON_STATE1_UNKNOWN_8 = 0xC116;
public static final int TAG_CANON_STATE1_LONG_FOCAL_LENGTH = 0xC117;
public static final int TAG_CANON_STATE1_SHORT_FOCAL_LENGTH = 0xC118;
public static final int TAG_CANON_STATE1_FOCAL_UNITS_PER_MM = 0xC119;
public static final int TAG_CANON_STATE1_UNKNOWN_9 = 0xC11A;
public static final int TAG_CANON_STATE1_UNKNOWN_10 = 0xC11B;
/**
* 0 = Flash Did Not Fire
* 1 = Flash Fired
*/
public static final int TAG_CANON_STATE1_FLASH_ACTIVITY = 0xC11C;
public static final int TAG_CANON_STATE1_FLASH_DETAILS = 0xC11D;
public static final int TAG_CANON_STATE1_UNKNOWN_12 = 0xC11E;
public static final int TAG_CANON_STATE1_UNKNOWN_13 = 0xC11F;
/**
* 0 = Focus Mode: Single
* 1 = Focus Mode: Continuous
*/
public static final int TAG_CANON_STATE1_FOCUS_MODE_2 = 0xC120;
/**
* 0 = Auto
* 1 = Sunny
* 2 = Cloudy
* 3 = Tungsten
* 4 = Flourescent
* 5 = Flash
* 6 = Custom
*/
public static final int TAG_CANON_STATE2_WHITE_BALANCE = 0xC207;
public static final int TAG_CANON_STATE2_SEQUENCE_NUMBER = 0xC209;
public static final int TAG_CANON_STATE2_AF_POINT_USED = 0xC20E;
/**
* The value of this tag may be translated into a flash bias value, in EV.
*
* 0xffc0 = -2 EV
* 0xffcc = -1.67 EV
* 0xffd0 = -1.5 EV
* 0xffd4 = -1.33 EV
* 0xffe0 = -1 EV
* 0xffec = -0.67 EV
* 0xfff0 = -0.5 EV
* 0xfff4 = -0.33 EV
* 0x0000 = 0 EV
* 0x000c = 0.33 EV
* 0x0010 = 0.5 EV
* 0x0014 = 0.67 EV
* 0x0020 = 1 EV
* 0x002c = 1.33 EV
* 0x0030 = 1.5 EV
* 0x0034 = 1.67 EV
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -