exif_be: PHP parsing library

This page hosts a formal specification of exif_be using Kaitai Struct. This specification can be automatically translated into a variety of programming languages to get a parsing library.

PHP source code to parse exif_be

ExifBe.php

<?php
// This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild

class ExifBe extends \Kaitai\Struct\Struct {
    public function __construct(\Kaitai\Struct\Stream $_io, \Kaitai\Struct\Struct $_parent = null, \ExifBe $_root = null) {
        parent::__construct($_io, $_parent, $_root);
        $this->_read();
    }

    private function _read() {
        $this->_m_version = $this->_io->readU2be();
        $this->_m_ifd0Ofs = $this->_io->readU4be();
    }
    protected $_m_ifd0;
    public function ifd0() {
        if ($this->_m_ifd0 !== null)
            return $this->_m_ifd0;
        $_pos = $this->_io->pos();
        $this->_io->seek($this->ifd0Ofs());
        $this->_m_ifd0 = new \ExifBe\Ifd($this->_io, $this, $this->_root);
        $this->_io->seek($_pos);
        return $this->_m_ifd0;
    }
    protected $_m_version;
    protected $_m_ifd0Ofs;
    public function version() { return $this->_m_version; }
    public function ifd0Ofs() { return $this->_m_ifd0Ofs; }
}

namespace \ExifBe;

class Ifd extends \Kaitai\Struct\Struct {
    public function __construct(\Kaitai\Struct\Stream $_io, \Kaitai\Struct\Struct $_parent = null, \ExifBe $_root = null) {
        parent::__construct($_io, $_parent, $_root);
        $this->_read();
    }

    private function _read() {
        $this->_m_numFields = $this->_io->readU2be();
        $this->_m_fields = [];
        $n = $this->numFields();
        for ($i = 0; $i < $n; $i++) {
            $this->_m_fields[] = new \ExifBe\IfdField($this->_io, $this, $this->_root);
        }
        $this->_m_nextIfdOfs = $this->_io->readU4be();
    }
    protected $_m_nextIfd;
    public function nextIfd() {
        if ($this->_m_nextIfd !== null)
            return $this->_m_nextIfd;
        if ($this->nextIfdOfs() != 0) {
            $_pos = $this->_io->pos();
            $this->_io->seek($this->nextIfdOfs());
            $this->_m_nextIfd = new \ExifBe\Ifd($this->_io, $this, $this->_root);
            $this->_io->seek($_pos);
        }
        return $this->_m_nextIfd;
    }
    protected $_m_numFields;
    protected $_m_fields;
    protected $_m_nextIfdOfs;
    public function numFields() { return $this->_m_numFields; }
    public function fields() { return $this->_m_fields; }
    public function nextIfdOfs() { return $this->_m_nextIfdOfs; }
}

namespace \ExifBe;

class IfdField extends \Kaitai\Struct\Struct {
    public function __construct(\Kaitai\Struct\Stream $_io, \ExifBe\Ifd $_parent = null, \ExifBe $_root = null) {
        parent::__construct($_io, $_parent, $_root);
        $this->_read();
    }

    private function _read() {
        $this->_m_tag = $this->_io->readU2be();
        $this->_m_fieldType = $this->_io->readU2be();
        $this->_m_length = $this->_io->readU4be();
        $this->_m_ofsOrData = $this->_io->readU4be();
    }
    protected $_m_typeByteLength;
    public function typeByteLength() {
        if ($this->_m_typeByteLength !== null)
            return $this->_m_typeByteLength;
        $this->_m_typeByteLength = ($this->fieldType() == \ExifBe\IfdField\FieldTypeEnum::WORD ? 2 : ($this->fieldType() == \ExifBe\IfdField\FieldTypeEnum::DWORD ? 4 : 1));
        return $this->_m_typeByteLength;
    }
    protected $_m_byteLength;
    public function byteLength() {
        if ($this->_m_byteLength !== null)
            return $this->_m_byteLength;
        $this->_m_byteLength = ($this->length() * $this->typeByteLength());
        return $this->_m_byteLength;
    }
    protected $_m_isImmediateData;
    public function isImmediateData() {
        if ($this->_m_isImmediateData !== null)
            return $this->_m_isImmediateData;
        $this->_m_isImmediateData = $this->byteLength() <= 4;
        return $this->_m_isImmediateData;
    }
    protected $_m_data;
    public function data() {
        if ($this->_m_data !== null)
            return $this->_m_data;
        if (!($this->isImmediateData())) {
            $io = $this->_root()->_io();
            $_pos = $io->pos();
            $io->seek($this->ofsOrData());
            $this->_m_data = $io->readBytes($this->byteLength());
            $io->seek($_pos);
        }
        return $this->_m_data;
    }
    protected $_m_tag;
    protected $_m_fieldType;
    protected $_m_length;
    protected $_m_ofsOrData;
    public function tag() { return $this->_m_tag; }
    public function fieldType() { return $this->_m_fieldType; }
    public function length() { return $this->_m_length; }
    public function ofsOrData() { return $this->_m_ofsOrData; }
}

namespace \ExifBe\IfdField;

class FieldTypeEnum {
    const BYTE = 1;
    const ASCII_STRING = 2;
    const WORD = 3;
    const DWORD = 4;
    const RATIONAL = 5;
}

namespace \ExifBe\IfdField;

class TagEnum {
    const IMAGE_WIDTH = 256;
    const IMAGE_HEIGHT = 257;
    const BITS_PER_SAMPLE = 258;
    const COMPRESSION = 259;
    const PHOTOMETRIC_INTERPRETATION = 262;
    const THRESHOLDING = 263;
    const CELL_WIDTH = 264;
    const CELL_LENGTH = 265;
    const FILL_ORDER = 266;
    const DOCUMENT_NAME = 269;
    const IMAGE_DESCRIPTION = 270;
    const MAKE = 271;
    const MODEL = 272;
    const STRIP_OFFSETS = 273;
    const ORIENTATION = 274;
    const SAMPLES_PER_PIXEL = 277;
    const ROWS_PER_STRIP = 278;
    const STRIP_BYTE_COUNTS = 279;
    const MIN_SAMPLE_VALUE = 280;
    const MAX_SAMPLE_VALUE = 281;
    const X_RESOLUTION = 282;
    const Y_RESOLUTION = 283;
    const PLANAR_CONFIGURATION = 284;
    const PAGE_NAME = 285;
    const X_POSITION = 286;
    const Y_POSITION = 287;
    const FREE_OFFSETS = 288;
    const FREE_BYTE_COUNTS = 289;
    const GRAY_RESPONSE_UNIT = 290;
    const GRAY_RESPONSE_CURVE = 291;
    const T4_OPTIONS = 292;
    const T6_OPTIONS = 293;
    const RESOLUTION_UNIT = 296;
    const PAGE_NUMBER = 297;
    const COLOR_RESPONSE_UNIT = 300;
    const TRANSFER_FUNCTION = 301;
    const SOFTWARE = 305;
    const MODIFY_DATE = 306;
    const ARTIST = 315;
    const HOST_COMPUTER = 316;
    const PREDICTOR = 317;
    const WHITE_POINT = 318;
    const PRIMARY_CHROMATICITIES = 319;
    const COLOR_MAP = 320;
    const HALFTONE_HINTS = 321;
    const TILE_WIDTH = 322;
    const TILE_LENGTH = 323;
    const TILE_OFFSETS = 324;
    const TILE_BYTE_COUNTS = 325;
    const BAD_FAX_LINES = 326;
    const CLEAN_FAX_DATA = 327;
    const CONSECUTIVE_BAD_FAX_LINES = 328;
    const SUB_IFD = 330;
    const INK_SET = 332;
    const INK_NAMES = 333;
    const NUMBEROF_INKS = 334;
    const DOT_RANGE = 336;
    const TARGET_PRINTER = 337;
    const EXTRA_SAMPLES = 338;
    const SAMPLE_FORMAT = 339;
    const S_MIN_SAMPLE_VALUE = 340;
    const S_MAX_SAMPLE_VALUE = 341;
    const TRANSFER_RANGE = 342;
    const CLIP_PATH = 343;
    const X_CLIP_PATH_UNITS = 344;
    const Y_CLIP_PATH_UNITS = 345;
    const INDEXED = 346;
    const JPEG_TABLES = 347;
    const OPI_PROXY = 351;
    const GLOBAL_PARAMETERS_IFD = 400;
    const PROFILE_TYPE = 401;
    const FAX_PROFILE = 402;
    const CODING_METHODS = 403;
    const VERSION_YEAR = 404;
    const MODE_NUMBER = 405;
    const DECODE = 433;
    const DEFAULT_IMAGE_COLOR = 434;
    const T82_OPTIONS = 435;
    const JPEG_TABLES2 = 437;
    const JPEG_PROC = 512;
    const THUMBNAIL_OFFSET = 513;
    const THUMBNAIL_LENGTH = 514;
    const JPEG_RESTART_INTERVAL = 515;
    const JPEG_LOSSLESS_PREDICTORS = 517;
    const JPEG_POINT_TRANSFORMS = 518;
    const JPEGQ_TABLES = 519;
    const JPEGDC_TABLES = 520;
    const JPEGAC_TABLES = 521;
    const Y_CB_CR_COEFFICIENTS = 529;
    const Y_CB_CR_SUB_SAMPLING = 530;
    const Y_CB_CR_POSITIONING = 531;
    const REFERENCE_BLACK_WHITE = 532;
    const STRIP_ROW_COUNTS = 559;
    const APPLICATION_NOTES = 700;
    const USPTO_MISCELLANEOUS = 999;
    const RELATED_IMAGE_FILE_FORMAT = 4096;
    const RELATED_IMAGE_WIDTH = 4097;
    const RELATED_IMAGE_HEIGHT = 4098;
    const RATING = 18246;
    const XP_DIP_XML = 18247;
    const STITCH_INFO = 18248;
    const RATING_PERCENT = 18249;
    const SONY_RAW_FILE_TYPE = 28672;
    const LIGHT_FALLOFF_PARAMS = 28722;
    const CHROMATIC_ABERRATION_CORR_PARAMS = 28725;
    const DISTORTION_CORR_PARAMS = 28727;
    const IMAGE_ID = 32781;
    const WANG_TAG1 = 32931;
    const WANG_ANNOTATION = 32932;
    const WANG_TAG3 = 32933;
    const WANG_TAG4 = 32934;
    const IMAGE_REFERENCE_POINTS = 32953;
    const REGION_XFORM_TACK_POINT = 32954;
    const WARP_QUADRILATERAL = 32955;
    const AFFINE_TRANSFORM_MAT = 32956;
    const MATTEING = 32995;
    const DATA_TYPE = 32996;
    const IMAGE_DEPTH = 32997;
    const TILE_DEPTH = 32998;
    const IMAGE_FULL_WIDTH = 33300;
    const IMAGE_FULL_HEIGHT = 33301;
    const TEXTURE_FORMAT = 33302;
    const WRAP_MODES = 33303;
    const FOV_COT = 33304;
    const MATRIX_WORLD_TO_SCREEN = 33305;
    const MATRIX_WORLD_TO_CAMERA = 33306;
    const MODEL2 = 33405;
    const CFA_REPEAT_PATTERN_DIM = 33421;
    const CFA_PATTERN2 = 33422;
    const BATTERY_LEVEL = 33423;
    const KODAK_IFD = 33424;
    const COPYRIGHT = 33432;
    const EXPOSURE_TIME = 33434;
    const F_NUMBER = 33437;
    const MD_FILE_TAG = 33445;
    const MD_SCALE_PIXEL = 33446;
    const MD_COLOR_TABLE = 33447;
    const MD_LAB_NAME = 33448;
    const MD_SAMPLE_INFO = 33449;
    const MD_PREP_DATE = 33450;
    const MD_PREP_TIME = 33451;
    const MD_FILE_UNITS = 33452;
    const PIXEL_SCALE = 33550;
    const ADVENT_SCALE = 33589;
    const ADVENT_REVISION = 33590;
    const UIC1_TAG = 33628;
    const UIC2_TAG = 33629;
    const UIC3_TAG = 33630;
    const UIC4_TAG = 33631;
    const IPTC_NAA = 33723;
    const INTERGRAPH_PACKET_DATA = 33918;
    const INTERGRAPH_FLAG_REGISTERS = 33919;
    const INTERGRAPH_MATRIX = 33920;
    const INGR_RESERVED = 33921;
    const MODEL_TIE_POINT = 33922;
    const SITE = 34016;
    const COLOR_SEQUENCE = 34017;
    const IT8_HEADER = 34018;
    const RASTER_PADDING = 34019;
    const BITS_PER_RUN_LENGTH = 34020;
    const BITS_PER_EXTENDED_RUN_LENGTH = 34021;
    const COLOR_TABLE = 34022;
    const IMAGE_COLOR_INDICATOR = 34023;
    const BACKGROUND_COLOR_INDICATOR = 34024;
    const IMAGE_COLOR_VALUE = 34025;
    const BACKGROUND_COLOR_VALUE = 34026;
    const PIXEL_INTENSITY_RANGE = 34027;
    const TRANSPARENCY_INDICATOR = 34028;
    const COLOR_CHARACTERIZATION = 34029;
    const HC_USAGE = 34030;
    const TRAP_INDICATOR = 34031;
    const CMYK_EQUIVALENT = 34032;
    const SEM_INFO = 34118;
    const AFCP_IPTC = 34152;
    const PIXEL_MAGIC_JBIG_OPTIONS = 34232;
    const JPL_CARTO_IFD = 34263;
    const MODEL_TRANSFORM = 34264;
    const WB_GRGB_LEVELS = 34306;
    const LEAF_DATA = 34310;
    const PHOTOSHOP_SETTINGS = 34377;
    const EXIF_OFFSET = 34665;
    const ICC_PROFILE = 34675;
    const TIFF_FX_EXTENSIONS = 34687;
    const MULTI_PROFILES = 34688;
    const SHARED_DATA = 34689;
    const T88_OPTIONS = 34690;
    const IMAGE_LAYER = 34732;
    const GEO_TIFF_DIRECTORY = 34735;
    const GEO_TIFF_DOUBLE_PARAMS = 34736;
    const GEO_TIFF_ASCII_PARAMS = 34737;
    const JBIG_OPTIONS = 34750;
    const EXPOSURE_PROGRAM = 34850;
    const SPECTRAL_SENSITIVITY = 34852;
    const GPS_INFO = 34853;
    const ISO = 34855;
    const OPTO_ELECTRIC_CONV_FACTOR = 34856;
    const INTERLACE = 34857;
    const TIME_ZONE_OFFSET = 34858;
    const SELF_TIMER_MODE = 34859;
    const SENSITIVITY_TYPE = 34864;
    const STANDARD_OUTPUT_SENSITIVITY = 34865;
    const RECOMMENDED_EXPOSURE_INDEX = 34866;
    const ISO_SPEED = 34867;
    const ISO_SPEED_LATITUDEYYY = 34868;
    const ISO_SPEED_LATITUDEZZZ = 34869;
    const FAX_RECV_PARAMS = 34908;
    const FAX_SUB_ADDRESS = 34909;
    const FAX_RECV_TIME = 34910;
    const FEDEX_EDR = 34929;
    const LEAF_SUB_IFD = 34954;
    const EXIF_VERSION = 36864;
    const DATE_TIME_ORIGINAL = 36867;
    const CREATE_DATE = 36868;
    const GOOGLE_PLUS_UPLOAD_CODE = 36873;
    const OFFSET_TIME = 36880;
    const OFFSET_TIME_ORIGINAL = 36881;
    const OFFSET_TIME_DIGITIZED = 36882;
    const COMPONENTS_CONFIGURATION = 37121;
    const COMPRESSED_BITS_PER_PIXEL = 37122;
    const SHUTTER_SPEED_VALUE = 37377;
    const APERTURE_VALUE = 37378;
    const BRIGHTNESS_VALUE = 37379;
    const EXPOSURE_COMPENSATION = 37380;
    const MAX_APERTURE_VALUE = 37381;
    const SUBJECT_DISTANCE = 37382;
    const METERING_MODE = 37383;
    const LIGHT_SOURCE = 37384;
    const FLASH = 37385;
    const FOCAL_LENGTH = 37386;
    const FLASH_ENERGY = 37387;
    const SPATIAL_FREQUENCY_RESPONSE = 37388;
    const NOISE = 37389;
    const FOCAL_PLANE_X_RESOLUTION = 37390;
    const FOCAL_PLANE_Y_RESOLUTION = 37391;
    const FOCAL_PLANE_RESOLUTION_UNIT = 37392;
    const IMAGE_NUMBER = 37393;
    const SECURITY_CLASSIFICATION = 37394;
    const IMAGE_HISTORY = 37395;
    const SUBJECT_AREA = 37396;
    const EXPOSURE_INDEX = 37397;
    const TIFF_EP_STANDARD_ID = 37398;
    const SENSING_METHOD = 37399;
    const CIP3_DATA_FILE = 37434;
    const CIP3_SHEET = 37435;
    const CIP3_SIDE = 37436;
    const STO_NITS = 37439;
    const MAKER_NOTE = 37500;
    const USER_COMMENT = 37510;
    const SUB_SEC_TIME = 37520;
    const SUB_SEC_TIME_ORIGINAL = 37521;
    const SUB_SEC_TIME_DIGITIZED = 37522;
    const MS_DOCUMENT_TEXT = 37679;
    const MS_PROPERTY_SET_STORAGE = 37680;
    const MS_DOCUMENT_TEXT_POSITION = 37681;
    const IMAGE_SOURCE_DATA = 37724;
    const AMBIENT_TEMPERATURE = 37888;
    const HUMIDITY = 37889;
    const PRESSURE = 37890;
    const WATER_DEPTH = 37891;
    const ACCELERATION = 37892;
    const CAMERA_ELEVATION_ANGLE = 37893;
    const XP_TITLE = 40091;
    const XP_COMMENT = 40092;
    const XP_AUTHOR = 40093;
    const XP_KEYWORDS = 40094;
    const XP_SUBJECT = 40095;
    const FLASHPIX_VERSION = 40960;
    const COLOR_SPACE = 40961;
    const EXIF_IMAGE_WIDTH = 40962;
    const EXIF_IMAGE_HEIGHT = 40963;
    const RELATED_SOUND_FILE = 40964;
    const INTEROP_OFFSET = 40965;
    const SAMSUNG_RAW_POINTERS_OFFSET = 40976;
    const SAMSUNG_RAW_POINTERS_LENGTH = 40977;
    const SAMSUNG_RAW_BYTE_ORDER = 41217;
    const SAMSUNG_RAW_UNKNOWN = 41218;
    const FLASH_ENERGY2 = 41483;
    const SPATIAL_FREQUENCY_RESPONSE2 = 41484;
    const NOISE2 = 41485;
    const FOCAL_PLANE_X_RESOLUTION2 = 41486;
    const FOCAL_PLANE_Y_RESOLUTION2 = 41487;
    const FOCAL_PLANE_RESOLUTION_UNIT2 = 41488;
    const IMAGE_NUMBER2 = 41489;
    const SECURITY_CLASSIFICATION2 = 41490;
    const IMAGE_HISTORY2 = 41491;
    const SUBJECT_LOCATION = 41492;
    const EXPOSURE_INDEX2 = 41493;
    const TIFF_EP_STANDARD_ID2 = 41494;
    const SENSING_METHOD2 = 41495;
    const FILE_SOURCE = 41728;
    const SCENE_TYPE = 41729;
    const CFA_PATTERN = 41730;
    const CUSTOM_RENDERED = 41985;
    const EXPOSURE_MODE = 41986;
    const WHITE_BALANCE = 41987;
    const DIGITAL_ZOOM_RATIO = 41988;
    const FOCAL_LENGTH_IN35MM_FORMAT = 41989;
    const SCENE_CAPTURE_TYPE = 41990;
    const GAIN_CONTROL = 41991;
    const CONTRAST = 41992;
    const SATURATION = 41993;
    const SHARPNESS = 41994;
    const DEVICE_SETTING_DESCRIPTION = 41995;
    const SUBJECT_DISTANCE_RANGE = 41996;
    const IMAGE_UNIQUE_ID = 42016;
    const OWNER_NAME = 42032;
    const SERIAL_NUMBER = 42033;
    const LENS_INFO = 42034;
    const LENS_MAKE = 42035;
    const LENS_MODEL = 42036;
    const LENS_SERIAL_NUMBER = 42037;
    const GDAL_METADATA = 42112;
    const GDAL_NO_DATA = 42113;
    const GAMMA = 42240;
    const EXPAND_SOFTWARE = 44992;
    const EXPAND_LENS = 44993;
    const EXPAND_FILM = 44994;
    const EXPAND_FILTER_LENS = 44995;
    const EXPAND_SCANNER = 44996;
    const EXPAND_FLASH_LAMP = 44997;
    const PIXEL_FORMAT = 48129;
    const TRANSFORMATION = 48130;
    const UNCOMPRESSED = 48131;
    const IMAGE_TYPE = 48132;
    const IMAGE_WIDTH2 = 48256;
    const IMAGE_HEIGHT2 = 48257;
    const WIDTH_RESOLUTION = 48258;
    const HEIGHT_RESOLUTION = 48259;
    const IMAGE_OFFSET = 48320;
    const IMAGE_BYTE_COUNT = 48321;
    const ALPHA_OFFSET = 48322;
    const ALPHA_BYTE_COUNT = 48323;
    const IMAGE_DATA_DISCARD = 48324;
    const ALPHA_DATA_DISCARD = 48325;
    const OCE_SCANJOB_DESC = 50215;
    const OCE_APPLICATION_SELECTOR = 50216;
    const OCE_ID_NUMBER = 50217;
    const OCE_IMAGE_LOGIC = 50218;
    const ANNOTATIONS = 50255;
    const PRINT_IM = 50341;
    const ORIGINAL_FILE_NAME = 50547;
    const USPTO_ORIGINAL_CONTENT_TYPE = 50560;
    const DNG_VERSION = 50706;
    const DNG_BACKWARD_VERSION = 50707;
    const UNIQUE_CAMERA_MODEL = 50708;
    const LOCALIZED_CAMERA_MODEL = 50709;
    const CFA_PLANE_COLOR = 50710;
    const CFA_LAYOUT = 50711;
    const LINEARIZATION_TABLE = 50712;
    const BLACK_LEVEL_REPEAT_DIM = 50713;
    const BLACK_LEVEL = 50714;
    const BLACK_LEVEL_DELTA_H = 50715;
    const BLACK_LEVEL_DELTA_V = 50716;
    const WHITE_LEVEL = 50717;
    const DEFAULT_SCALE = 50718;
    const DEFAULT_CROP_ORIGIN = 50719;
    const DEFAULT_CROP_SIZE = 50720;
    const COLOR_MATRIX1 = 50721;
    const COLOR_MATRIX2 = 50722;
    const CAMERA_CALIBRATION1 = 50723;
    const CAMERA_CALIBRATION2 = 50724;
    const REDUCTION_MATRIX1 = 50725;
    const REDUCTION_MATRIX2 = 50726;
    const ANALOG_BALANCE = 50727;
    const AS_SHOT_NEUTRAL = 50728;
    const AS_SHOT_WHITE_XY = 50729;
    const BASELINE_EXPOSURE = 50730;
    const BASELINE_NOISE = 50731;
    const BASELINE_SHARPNESS = 50732;
    const BAYER_GREEN_SPLIT = 50733;
    const LINEAR_RESPONSE_LIMIT = 50734;
    const CAMERA_SERIAL_NUMBER = 50735;
    const DNG_LENS_INFO = 50736;
    const CHROMA_BLUR_RADIUS = 50737;
    const ANTI_ALIAS_STRENGTH = 50738;
    const SHADOW_SCALE = 50739;
    const SR2_PRIVATE = 50740;
    const MAKER_NOTE_SAFETY = 50741;
    const RAW_IMAGE_SEGMENTATION = 50752;
    const CALIBRATION_ILLUMINANT1 = 50778;
    const CALIBRATION_ILLUMINANT2 = 50779;
    const BEST_QUALITY_SCALE = 50780;
    const RAW_DATA_UNIQUE_ID = 50781;
    const ALIAS_LAYER_METADATA = 50784;
    const ORIGINAL_RAW_FILE_NAME = 50827;
    const ORIGINAL_RAW_FILE_DATA = 50828;
    const ACTIVE_AREA = 50829;
    const MASKED_AREAS = 50830;
    const AS_SHOT_ICC_PROFILE = 50831;
    const AS_SHOT_PRE_PROFILE_MATRIX = 50832;
    const CURRENT_ICC_PROFILE = 50833;
    const CURRENT_PRE_PROFILE_MATRIX = 50834;
    const COLORIMETRIC_REFERENCE = 50879;
    const S_RAW_TYPE = 50885;
    const PANASONIC_TITLE = 50898;
    const PANASONIC_TITLE2 = 50899;
    const CAMERA_CALIBRATION_SIG = 50931;
    const PROFILE_CALIBRATION_SIG = 50932;
    const PROFILE_IFD = 50933;
    const AS_SHOT_PROFILE_NAME = 50934;
    const NOISE_REDUCTION_APPLIED = 50935;
    const PROFILE_NAME = 50936;
    const PROFILE_HUE_SAT_MAP_DIMS = 50937;
    const PROFILE_HUE_SAT_MAP_DATA1 = 50938;
    const PROFILE_HUE_SAT_MAP_DATA2 = 50939;
    const PROFILE_TONE_CURVE = 50940;
    const PROFILE_EMBED_POLICY = 50941;
    const PROFILE_COPYRIGHT = 50942;
    const FORWARD_MATRIX1 = 50964;
    const FORWARD_MATRIX2 = 50965;
    const PREVIEW_APPLICATION_NAME = 50966;
    const PREVIEW_APPLICATION_VERSION = 50967;
    const PREVIEW_SETTINGS_NAME = 50968;
    const PREVIEW_SETTINGS_DIGEST = 50969;
    const PREVIEW_COLOR_SPACE = 50970;
    const PREVIEW_DATE_TIME = 50971;
    const RAW_IMAGE_DIGEST = 50972;
    const ORIGINAL_RAW_FILE_DIGEST = 50973;
    const SUB_TILE_BLOCK_SIZE = 50974;
    const ROW_INTERLEAVE_FACTOR = 50975;
    const PROFILE_LOOK_TABLE_DIMS = 50981;
    const PROFILE_LOOK_TABLE_DATA = 50982;
    const OPCODE_LIST1 = 51008;
    const OPCODE_LIST2 = 51009;
    const OPCODE_LIST3 = 51022;
    const NOISE_PROFILE = 51041;
    const TIME_CODES = 51043;
    const FRAME_RATE = 51044;
    const T_STOP = 51058;
    const REEL_NAME = 51081;
    const ORIGINAL_DEFAULT_FINAL_SIZE = 51089;
    const ORIGINAL_BEST_QUALITY_SIZE = 51090;
    const ORIGINAL_DEFAULT_CROP_SIZE = 51091;
    const CAMERA_LABEL = 51105;
    const PROFILE_HUE_SAT_MAP_ENCODING = 51107;
    const PROFILE_LOOK_TABLE_ENCODING = 51108;
    const BASELINE_EXPOSURE_OFFSET = 51109;
    const DEFAULT_BLACK_RENDER = 51110;
    const NEW_RAW_IMAGE_DIGEST = 51111;
    const RAW_TO_PREVIEW_GAIN = 51112;
    const DEFAULT_USER_CROP = 51125;
    const PADDING = 59932;
    const OFFSET_SCHEMA = 59933;
    const OWNER_NAME2 = 65000;
    const SERIAL_NUMBER2 = 65001;
    const LENS = 65002;
    const KDC_IFD = 65024;
    const RAW_FILE = 65100;
    const CONVERTER = 65101;
    const WHITE_BALANCE2 = 65102;
    const EXPOSURE = 65105;
    const SHADOWS = 65106;
    const BRIGHTNESS = 65107;
    const CONTRAST2 = 65108;
    const SATURATION2 = 65109;
    const SHARPNESS2 = 65110;
    const SMOOTHNESS = 65111;
    const MOIRE_FILTER = 65112;
}