Created
December 11, 2018 09:09
-
-
Save dtoma/4f9c74ae6f4f862e5573247c003da80e to your computer and use it in GitHub Desktop.
Trying out https://kaitai.io/
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <fstream> | |
#include <iostream> | |
#include "kaitai/kaitaistream.h" | |
#include "exif_le.h" | |
#include "exif.h" | |
#include "jpeg.h" | |
#include <map> | |
#include <string> | |
std::map<exif_le_t::ifd_field_t::field_type_enum_t, std::string> type_to_str = { | |
{exif_le_t::ifd_field_t::field_type_enum_t::FIELD_TYPE_ENUM_BYTE, "FIELD_TYPE_ENUM_BYTE"}, | |
{exif_le_t::ifd_field_t::field_type_enum_t::FIELD_TYPE_ENUM_ASCII_STRING, "FIELD_TYPE_ENUM_ASCII_STRING"}, | |
{exif_le_t::ifd_field_t::field_type_enum_t::FIELD_TYPE_ENUM_WORD, "FIELD_TYPE_ENUM_WORD"}, | |
{exif_le_t::ifd_field_t::field_type_enum_t::FIELD_TYPE_ENUM_DWORD, "FIELD_TYPE_ENUM_DWORD"}, | |
{exif_le_t::ifd_field_t::field_type_enum_t::FIELD_TYPE_ENUM_RATIONAL, "FIELD_TYPE_ENUM_RATIONAL"} | |
}; | |
std::map<exif_le_t::ifd_field_t::tag_enum_t, std::string> tag_to_str = { | |
{exif_le_t::ifd_field_t::TAG_ENUM_IMAGE_WIDTH, "TAG_ENUM_IMAGE_WIDTH"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_IMAGE_HEIGHT, "TAG_ENUM_IMAGE_HEIGHT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_BITS_PER_SAMPLE, "TAG_ENUM_BITS_PER_SAMPLE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_COMPRESSION, "TAG_ENUM_COMPRESSION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PHOTOMETRIC_INTERPRETATION, "TAG_ENUM_PHOTOMETRIC_INTERPRETATION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_THRESHOLDING, "TAG_ENUM_THRESHOLDING"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CELL_WIDTH, "TAG_ENUM_CELL_WIDTH"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CELL_LENGTH, "TAG_ENUM_CELL_LENGTH"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_FILL_ORDER, "TAG_ENUM_FILL_ORDER"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_DOCUMENT_NAME, "TAG_ENUM_DOCUMENT_NAME"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_IMAGE_DESCRIPTION, "TAG_ENUM_IMAGE_DESCRIPTION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_MAKE, "TAG_ENUM_MAKE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_MODEL, "TAG_ENUM_MODEL"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_STRIP_OFFSETS, "TAG_ENUM_STRIP_OFFSETS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_ORIENTATION, "TAG_ENUM_ORIENTATION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SAMPLES_PER_PIXEL, "TAG_ENUM_SAMPLES_PER_PIXEL"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_ROWS_PER_STRIP, "TAG_ENUM_ROWS_PER_STRIP"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_STRIP_BYTE_COUNTS, "TAG_ENUM_STRIP_BYTE_COUNTS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_MIN_SAMPLE_VALUE, "TAG_ENUM_MIN_SAMPLE_VALUE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_MAX_SAMPLE_VALUE, "TAG_ENUM_MAX_SAMPLE_VALUE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_X_RESOLUTION, "TAG_ENUM_X_RESOLUTION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_Y_RESOLUTION, "TAG_ENUM_Y_RESOLUTION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PLANAR_CONFIGURATION, "TAG_ENUM_PLANAR_CONFIGURATION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PAGE_NAME, "TAG_ENUM_PAGE_NAME"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_X_POSITION, "TAG_ENUM_X_POSITION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_Y_POSITION, "TAG_ENUM_Y_POSITION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_FREE_OFFSETS, "TAG_ENUM_FREE_OFFSETS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_FREE_BYTE_COUNTS, "TAG_ENUM_FREE_BYTE_COUNTS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_GRAY_RESPONSE_UNIT, "TAG_ENUM_GRAY_RESPONSE_UNIT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_GRAY_RESPONSE_CURVE, "TAG_ENUM_GRAY_RESPONSE_CURVE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_T4_OPTIONS, "TAG_ENUM_T4_OPTIONS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_T6_OPTIONS, "TAG_ENUM_T6_OPTIONS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_RESOLUTION_UNIT, "TAG_ENUM_RESOLUTION_UNIT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PAGE_NUMBER, "TAG_ENUM_PAGE_NUMBER"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_COLOR_RESPONSE_UNIT, "TAG_ENUM_COLOR_RESPONSE_UNIT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_TRANSFER_FUNCTION, "TAG_ENUM_TRANSFER_FUNCTION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SOFTWARE, "TAG_ENUM_SOFTWARE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_MODIFY_DATE, "TAG_ENUM_MODIFY_DATE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_ARTIST, "TAG_ENUM_ARTIST"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_HOST_COMPUTER, "TAG_ENUM_HOST_COMPUTER"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PREDICTOR, "TAG_ENUM_PREDICTOR"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_WHITE_POINT, "TAG_ENUM_WHITE_POINT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PRIMARY_CHROMATICITIES, "TAG_ENUM_PRIMARY_CHROMATICITIES"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_COLOR_MAP, "TAG_ENUM_COLOR_MAP"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_HALFTONE_HINTS, "TAG_ENUM_HALFTONE_HINTS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_TILE_WIDTH, "TAG_ENUM_TILE_WIDTH"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_TILE_LENGTH, "TAG_ENUM_TILE_LENGTH"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_TILE_OFFSETS, "TAG_ENUM_TILE_OFFSETS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_TILE_BYTE_COUNTS, "TAG_ENUM_TILE_BYTE_COUNTS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_BAD_FAX_LINES, "TAG_ENUM_BAD_FAX_LINES"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CLEAN_FAX_DATA, "TAG_ENUM_CLEAN_FAX_DATA"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CONSECUTIVE_BAD_FAX_LINES, "TAG_ENUM_CONSECUTIVE_BAD_FAX_LINES"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SUB_IFD, "TAG_ENUM_SUB_IFD"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_INK_SET, "TAG_ENUM_INK_SET"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_INK_NAMES, "TAG_ENUM_INK_NAMES"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_NUMBEROF_INKS, "TAG_ENUM_NUMBEROF_INKS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_DOT_RANGE, "TAG_ENUM_DOT_RANGE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_TARGET_PRINTER, "TAG_ENUM_TARGET_PRINTER"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_EXTRA_SAMPLES, "TAG_ENUM_EXTRA_SAMPLES"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SAMPLE_FORMAT, "TAG_ENUM_SAMPLE_FORMAT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_S_MIN_SAMPLE_VALUE, "TAG_ENUM_S_MIN_SAMPLE_VALUE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_S_MAX_SAMPLE_VALUE, "TAG_ENUM_S_MAX_SAMPLE_VALUE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_TRANSFER_RANGE, "TAG_ENUM_TRANSFER_RANGE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CLIP_PATH, "TAG_ENUM_CLIP_PATH"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_X_CLIP_PATH_UNITS, "TAG_ENUM_X_CLIP_PATH_UNITS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_Y_CLIP_PATH_UNITS, "TAG_ENUM_Y_CLIP_PATH_UNITS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_INDEXED, "TAG_ENUM_INDEXED"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_JPEG_TABLES, "TAG_ENUM_JPEG_TABLES"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_OPI_PROXY, "TAG_ENUM_OPI_PROXY"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_GLOBAL_PARAMETERS_IFD, "TAG_ENUM_GLOBAL_PARAMETERS_IFD"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PROFILE_TYPE, "TAG_ENUM_PROFILE_TYPE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_FAX_PROFILE, "TAG_ENUM_FAX_PROFILE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CODING_METHODS, "TAG_ENUM_CODING_METHODS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_VERSION_YEAR, "TAG_ENUM_VERSION_YEAR"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_MODE_NUMBER, "TAG_ENUM_MODE_NUMBER"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_DECODE, "TAG_ENUM_DECODE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_DEFAULT_IMAGE_COLOR, "TAG_ENUM_DEFAULT_IMAGE_COLOR"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_T82_OPTIONS, "TAG_ENUM_T82_OPTIONS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_JPEG_TABLES2, "TAG_ENUM_JPEG_TABLES2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_JPEG_PROC, "TAG_ENUM_JPEG_PROC"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_THUMBNAIL_OFFSET, "TAG_ENUM_THUMBNAIL_OFFSET"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_THUMBNAIL_LENGTH, "TAG_ENUM_THUMBNAIL_LENGTH"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_JPEG_RESTART_INTERVAL, "TAG_ENUM_JPEG_RESTART_INTERVAL"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_JPEG_LOSSLESS_PREDICTORS, "TAG_ENUM_JPEG_LOSSLESS_PREDICTORS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_JPEG_POINT_TRANSFORMS, "TAG_ENUM_JPEG_POINT_TRANSFORMS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_JPEGQ_TABLES, "TAG_ENUM_JPEGQ_TABLES"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_JPEGDC_TABLES, "TAG_ENUM_JPEGDC_TABLES"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_JPEGAC_TABLES, "TAG_ENUM_JPEGAC_TABLES"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_Y_CB_CR_COEFFICIENTS, "TAG_ENUM_Y_CB_CR_COEFFICIENTS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_Y_CB_CR_SUB_SAMPLING, "TAG_ENUM_Y_CB_CR_SUB_SAMPLING"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_Y_CB_CR_POSITIONING, "TAG_ENUM_Y_CB_CR_POSITIONING"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_REFERENCE_BLACK_WHITE, "TAG_ENUM_REFERENCE_BLACK_WHITE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_STRIP_ROW_COUNTS, "TAG_ENUM_STRIP_ROW_COUNTS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_APPLICATION_NOTES, "TAG_ENUM_APPLICATION_NOTES"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_USPTO_MISCELLANEOUS, "TAG_ENUM_USPTO_MISCELLANEOUS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_RELATED_IMAGE_FILE_FORMAT, "TAG_ENUM_RELATED_IMAGE_FILE_FORMAT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_RELATED_IMAGE_WIDTH, "TAG_ENUM_RELATED_IMAGE_WIDTH"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_RELATED_IMAGE_HEIGHT, "TAG_ENUM_RELATED_IMAGE_HEIGHT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_RATING, "TAG_ENUM_RATING"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_XP_DIP_XML, "TAG_ENUM_XP_DIP_XML"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_STITCH_INFO, "TAG_ENUM_STITCH_INFO"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_RATING_PERCENT, "TAG_ENUM_RATING_PERCENT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SONY_RAW_FILE_TYPE, "TAG_ENUM_SONY_RAW_FILE_TYPE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_LIGHT_FALLOFF_PARAMS, "TAG_ENUM_LIGHT_FALLOFF_PARAMS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CHROMATIC_ABERRATION_CORR_PARAMS, "TAG_ENUM_CHROMATIC_ABERRATION_CORR_PARAMS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_DISTORTION_CORR_PARAMS, "TAG_ENUM_DISTORTION_CORR_PARAMS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_IMAGE_ID, "TAG_ENUM_IMAGE_ID"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_WANG_TAG1, "TAG_ENUM_WANG_TAG1"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_WANG_ANNOTATION, "TAG_ENUM_WANG_ANNOTATION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_WANG_TAG3, "TAG_ENUM_WANG_TAG3"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_WANG_TAG4, "TAG_ENUM_WANG_TAG4"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_IMAGE_REFERENCE_POINTS, "TAG_ENUM_IMAGE_REFERENCE_POINTS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_REGION_XFORM_TACK_POINT, "TAG_ENUM_REGION_XFORM_TACK_POINT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_WARP_QUADRILATERAL, "TAG_ENUM_WARP_QUADRILATERAL"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_AFFINE_TRANSFORM_MAT, "TAG_ENUM_AFFINE_TRANSFORM_MAT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_MATTEING, "TAG_ENUM_MATTEING"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_DATA_TYPE, "TAG_ENUM_DATA_TYPE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_IMAGE_DEPTH, "TAG_ENUM_IMAGE_DEPTH"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_TILE_DEPTH, "TAG_ENUM_TILE_DEPTH"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_IMAGE_FULL_WIDTH, "TAG_ENUM_IMAGE_FULL_WIDTH"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_IMAGE_FULL_HEIGHT, "TAG_ENUM_IMAGE_FULL_HEIGHT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_TEXTURE_FORMAT, "TAG_ENUM_TEXTURE_FORMAT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_WRAP_MODES, "TAG_ENUM_WRAP_MODES"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_FOV_COT, "TAG_ENUM_FOV_COT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_MATRIX_WORLD_TO_SCREEN, "TAG_ENUM_MATRIX_WORLD_TO_SCREEN"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_MATRIX_WORLD_TO_CAMERA, "TAG_ENUM_MATRIX_WORLD_TO_CAMERA"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_MODEL2, "TAG_ENUM_MODEL2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CFA_REPEAT_PATTERN_DIM, "TAG_ENUM_CFA_REPEAT_PATTERN_DIM"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CFA_PATTERN2, "TAG_ENUM_CFA_PATTERN2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_BATTERY_LEVEL, "TAG_ENUM_BATTERY_LEVEL"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_KODAK_IFD, "TAG_ENUM_KODAK_IFD"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_COPYRIGHT, "TAG_ENUM_COPYRIGHT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_EXPOSURE_TIME, "TAG_ENUM_EXPOSURE_TIME"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_F_NUMBER, "TAG_ENUM_F_NUMBER"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_MD_FILE_TAG, "TAG_ENUM_MD_FILE_TAG"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_MD_SCALE_PIXEL, "TAG_ENUM_MD_SCALE_PIXEL"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_MD_COLOR_TABLE, "TAG_ENUM_MD_COLOR_TABLE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_MD_LAB_NAME, "TAG_ENUM_MD_LAB_NAME"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_MD_SAMPLE_INFO, "TAG_ENUM_MD_SAMPLE_INFO"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_MD_PREP_DATE, "TAG_ENUM_MD_PREP_DATE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_MD_PREP_TIME, "TAG_ENUM_MD_PREP_TIME"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_MD_FILE_UNITS, "TAG_ENUM_MD_FILE_UNITS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PIXEL_SCALE, "TAG_ENUM_PIXEL_SCALE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_ADVENT_SCALE, "TAG_ENUM_ADVENT_SCALE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_ADVENT_REVISION, "TAG_ENUM_ADVENT_REVISION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_UIC1_TAG, "TAG_ENUM_UIC1_TAG"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_UIC2_TAG, "TAG_ENUM_UIC2_TAG"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_UIC3_TAG, "TAG_ENUM_UIC3_TAG"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_UIC4_TAG, "TAG_ENUM_UIC4_TAG"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_IPTC_NAA, "TAG_ENUM_IPTC_NAA"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_INTERGRAPH_PACKET_DATA, "TAG_ENUM_INTERGRAPH_PACKET_DATA"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_INTERGRAPH_FLAG_REGISTERS, "TAG_ENUM_INTERGRAPH_FLAG_REGISTERS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_INTERGRAPH_MATRIX, "TAG_ENUM_INTERGRAPH_MATRIX"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_INGR_RESERVED, "TAG_ENUM_INGR_RESERVED"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_MODEL_TIE_POINT, "TAG_ENUM_MODEL_TIE_POINT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SITE, "TAG_ENUM_SITE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_COLOR_SEQUENCE, "TAG_ENUM_COLOR_SEQUENCE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_IT8_HEADER, "TAG_ENUM_IT8_HEADER"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_RASTER_PADDING, "TAG_ENUM_RASTER_PADDING"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_BITS_PER_RUN_LENGTH, "TAG_ENUM_BITS_PER_RUN_LENGTH"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_BITS_PER_EXTENDED_RUN_LENGTH, "TAG_ENUM_BITS_PER_EXTENDED_RUN_LENGTH"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_COLOR_TABLE, "TAG_ENUM_COLOR_TABLE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_IMAGE_COLOR_INDICATOR, "TAG_ENUM_IMAGE_COLOR_INDICATOR"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_BACKGROUND_COLOR_INDICATOR, "TAG_ENUM_BACKGROUND_COLOR_INDICATOR"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_IMAGE_COLOR_VALUE, "TAG_ENUM_IMAGE_COLOR_VALUE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_BACKGROUND_COLOR_VALUE, "TAG_ENUM_BACKGROUND_COLOR_VALUE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PIXEL_INTENSITY_RANGE, "TAG_ENUM_PIXEL_INTENSITY_RANGE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_TRANSPARENCY_INDICATOR, "TAG_ENUM_TRANSPARENCY_INDICATOR"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_COLOR_CHARACTERIZATION, "TAG_ENUM_COLOR_CHARACTERIZATION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_HC_USAGE, "TAG_ENUM_HC_USAGE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_TRAP_INDICATOR, "TAG_ENUM_TRAP_INDICATOR"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CMYK_EQUIVALENT, "TAG_ENUM_CMYK_EQUIVALENT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SEM_INFO, "TAG_ENUM_SEM_INFO"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_AFCP_IPTC, "TAG_ENUM_AFCP_IPTC"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PIXEL_MAGIC_JBIG_OPTIONS, "TAG_ENUM_PIXEL_MAGIC_JBIG_OPTIONS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_JPL_CARTO_IFD, "TAG_ENUM_JPL_CARTO_IFD"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_MODEL_TRANSFORM, "TAG_ENUM_MODEL_TRANSFORM"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_WB_GRGB_LEVELS, "TAG_ENUM_WB_GRGB_LEVELS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_LEAF_DATA, "TAG_ENUM_LEAF_DATA"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PHOTOSHOP_SETTINGS, "TAG_ENUM_PHOTOSHOP_SETTINGS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_EXIF_OFFSET, "TAG_ENUM_EXIF_OFFSET"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_ICC_PROFILE, "TAG_ENUM_ICC_PROFILE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_TIFF_FX_EXTENSIONS, "TAG_ENUM_TIFF_FX_EXTENSIONS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_MULTI_PROFILES, "TAG_ENUM_MULTI_PROFILES"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SHARED_DATA, "TAG_ENUM_SHARED_DATA"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_T88_OPTIONS, "TAG_ENUM_T88_OPTIONS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_IMAGE_LAYER, "TAG_ENUM_IMAGE_LAYER"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_GEO_TIFF_DIRECTORY, "TAG_ENUM_GEO_TIFF_DIRECTORY"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_GEO_TIFF_DOUBLE_PARAMS, "TAG_ENUM_GEO_TIFF_DOUBLE_PARAMS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_GEO_TIFF_ASCII_PARAMS, "TAG_ENUM_GEO_TIFF_ASCII_PARAMS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_JBIG_OPTIONS, "TAG_ENUM_JBIG_OPTIONS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_EXPOSURE_PROGRAM, "TAG_ENUM_EXPOSURE_PROGRAM"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SPECTRAL_SENSITIVITY, "TAG_ENUM_SPECTRAL_SENSITIVITY"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_GPS_INFO, "TAG_ENUM_GPS_INFO"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_ISO, "TAG_ENUM_ISO"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_OPTO_ELECTRIC_CONV_FACTOR, "TAG_ENUM_OPTO_ELECTRIC_CONV_FACTOR"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_INTERLACE, "TAG_ENUM_INTERLACE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_TIME_ZONE_OFFSET, "TAG_ENUM_TIME_ZONE_OFFSET"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SELF_TIMER_MODE, "TAG_ENUM_SELF_TIMER_MODE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SENSITIVITY_TYPE, "TAG_ENUM_SENSITIVITY_TYPE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_STANDARD_OUTPUT_SENSITIVITY, "TAG_ENUM_STANDARD_OUTPUT_SENSITIVITY"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_RECOMMENDED_EXPOSURE_INDEX, "TAG_ENUM_RECOMMENDED_EXPOSURE_INDEX"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_ISO_SPEED, "TAG_ENUM_ISO_SPEED"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_ISO_SPEED_LATITUDEYYY, "TAG_ENUM_ISO_SPEED_LATITUDEYYY"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_ISO_SPEED_LATITUDEZZZ, "TAG_ENUM_ISO_SPEED_LATITUDEZZZ"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_FAX_RECV_PARAMS, "TAG_ENUM_FAX_RECV_PARAMS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_FAX_SUB_ADDRESS, "TAG_ENUM_FAX_SUB_ADDRESS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_FAX_RECV_TIME, "TAG_ENUM_FAX_RECV_TIME"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_FEDEX_EDR, "TAG_ENUM_FEDEX_EDR"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_LEAF_SUB_IFD, "TAG_ENUM_LEAF_SUB_IFD"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_EXIF_VERSION, "TAG_ENUM_EXIF_VERSION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_DATE_TIME_ORIGINAL, "TAG_ENUM_DATE_TIME_ORIGINAL"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CREATE_DATE, "TAG_ENUM_CREATE_DATE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_GOOGLE_PLUS_UPLOAD_CODE, "TAG_ENUM_GOOGLE_PLUS_UPLOAD_CODE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_OFFSET_TIME, "TAG_ENUM_OFFSET_TIME"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_OFFSET_TIME_ORIGINAL, "TAG_ENUM_OFFSET_TIME_ORIGINAL"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_OFFSET_TIME_DIGITIZED, "TAG_ENUM_OFFSET_TIME_DIGITIZED"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_COMPONENTS_CONFIGURATION, "TAG_ENUM_COMPONENTS_CONFIGURATION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_COMPRESSED_BITS_PER_PIXEL, "TAG_ENUM_COMPRESSED_BITS_PER_PIXEL"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SHUTTER_SPEED_VALUE, "TAG_ENUM_SHUTTER_SPEED_VALUE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_APERTURE_VALUE, "TAG_ENUM_APERTURE_VALUE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_BRIGHTNESS_VALUE, "TAG_ENUM_BRIGHTNESS_VALUE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_EXPOSURE_COMPENSATION, "TAG_ENUM_EXPOSURE_COMPENSATION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_MAX_APERTURE_VALUE, "TAG_ENUM_MAX_APERTURE_VALUE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SUBJECT_DISTANCE, "TAG_ENUM_SUBJECT_DISTANCE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_METERING_MODE, "TAG_ENUM_METERING_MODE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_LIGHT_SOURCE, "TAG_ENUM_LIGHT_SOURCE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_FLASH, "TAG_ENUM_FLASH"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_FOCAL_LENGTH, "TAG_ENUM_FOCAL_LENGTH"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_FLASH_ENERGY, "TAG_ENUM_FLASH_ENERGY"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SPATIAL_FREQUENCY_RESPONSE, "TAG_ENUM_SPATIAL_FREQUENCY_RESPONSE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_NOISE, "TAG_ENUM_NOISE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_FOCAL_PLANE_X_RESOLUTION, "TAG_ENUM_FOCAL_PLANE_X_RESOLUTION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_FOCAL_PLANE_Y_RESOLUTION, "TAG_ENUM_FOCAL_PLANE_Y_RESOLUTION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_FOCAL_PLANE_RESOLUTION_UNIT, "TAG_ENUM_FOCAL_PLANE_RESOLUTION_UNIT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_IMAGE_NUMBER, "TAG_ENUM_IMAGE_NUMBER"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SECURITY_CLASSIFICATION, "TAG_ENUM_SECURITY_CLASSIFICATION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_IMAGE_HISTORY, "TAG_ENUM_IMAGE_HISTORY"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SUBJECT_AREA, "TAG_ENUM_SUBJECT_AREA"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_EXPOSURE_INDEX, "TAG_ENUM_EXPOSURE_INDEX"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_TIFF_EP_STANDARD_ID, "TAG_ENUM_TIFF_EP_STANDARD_ID"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SENSING_METHOD, "TAG_ENUM_SENSING_METHOD"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CIP3_DATA_FILE, "TAG_ENUM_CIP3_DATA_FILE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CIP3_SHEET, "TAG_ENUM_CIP3_SHEET"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CIP3_SIDE, "TAG_ENUM_CIP3_SIDE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_STO_NITS, "TAG_ENUM_STO_NITS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_MAKER_NOTE, "TAG_ENUM_MAKER_NOTE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_USER_COMMENT, "TAG_ENUM_USER_COMMENT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SUB_SEC_TIME, "TAG_ENUM_SUB_SEC_TIME"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SUB_SEC_TIME_ORIGINAL, "TAG_ENUM_SUB_SEC_TIME_ORIGINAL"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SUB_SEC_TIME_DIGITIZED, "TAG_ENUM_SUB_SEC_TIME_DIGITIZED"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_MS_DOCUMENT_TEXT, "TAG_ENUM_MS_DOCUMENT_TEXT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_MS_PROPERTY_SET_STORAGE, "TAG_ENUM_MS_PROPERTY_SET_STORAGE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_MS_DOCUMENT_TEXT_POSITION, "TAG_ENUM_MS_DOCUMENT_TEXT_POSITION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_IMAGE_SOURCE_DATA, "TAG_ENUM_IMAGE_SOURCE_DATA"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_AMBIENT_TEMPERATURE, "TAG_ENUM_AMBIENT_TEMPERATURE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_HUMIDITY, "TAG_ENUM_HUMIDITY"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PRESSURE, "TAG_ENUM_PRESSURE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_WATER_DEPTH, "TAG_ENUM_WATER_DEPTH"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_ACCELERATION, "TAG_ENUM_ACCELERATION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CAMERA_ELEVATION_ANGLE, "TAG_ENUM_CAMERA_ELEVATION_ANGLE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_XP_TITLE, "TAG_ENUM_XP_TITLE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_XP_COMMENT, "TAG_ENUM_XP_COMMENT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_XP_AUTHOR, "TAG_ENUM_XP_AUTHOR"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_XP_KEYWORDS, "TAG_ENUM_XP_KEYWORDS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_XP_SUBJECT, "TAG_ENUM_XP_SUBJECT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_FLASHPIX_VERSION, "TAG_ENUM_FLASHPIX_VERSION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_COLOR_SPACE, "TAG_ENUM_COLOR_SPACE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_EXIF_IMAGE_WIDTH, "TAG_ENUM_EXIF_IMAGE_WIDTH"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_EXIF_IMAGE_HEIGHT, "TAG_ENUM_EXIF_IMAGE_HEIGHT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_RELATED_SOUND_FILE, "TAG_ENUM_RELATED_SOUND_FILE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_INTEROP_OFFSET, "TAG_ENUM_INTEROP_OFFSET"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SAMSUNG_RAW_POINTERS_OFFSET, "TAG_ENUM_SAMSUNG_RAW_POINTERS_OFFSET"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SAMSUNG_RAW_POINTERS_LENGTH, "TAG_ENUM_SAMSUNG_RAW_POINTERS_LENGTH"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SAMSUNG_RAW_BYTE_ORDER, "TAG_ENUM_SAMSUNG_RAW_BYTE_ORDER"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SAMSUNG_RAW_UNKNOWN, "TAG_ENUM_SAMSUNG_RAW_UNKNOWN"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_FLASH_ENERGY2, "TAG_ENUM_FLASH_ENERGY2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SPATIAL_FREQUENCY_RESPONSE2, "TAG_ENUM_SPATIAL_FREQUENCY_RESPONSE2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_NOISE2, "TAG_ENUM_NOISE2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_FOCAL_PLANE_X_RESOLUTION2, "TAG_ENUM_FOCAL_PLANE_X_RESOLUTION2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_FOCAL_PLANE_Y_RESOLUTION2, "TAG_ENUM_FOCAL_PLANE_Y_RESOLUTION2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_FOCAL_PLANE_RESOLUTION_UNIT2, "TAG_ENUM_FOCAL_PLANE_RESOLUTION_UNIT2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_IMAGE_NUMBER2, "TAG_ENUM_IMAGE_NUMBER2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SECURITY_CLASSIFICATION2, "TAG_ENUM_SECURITY_CLASSIFICATION2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_IMAGE_HISTORY2, "TAG_ENUM_IMAGE_HISTORY2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SUBJECT_LOCATION, "TAG_ENUM_SUBJECT_LOCATION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_EXPOSURE_INDEX2, "TAG_ENUM_EXPOSURE_INDEX2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_TIFF_EP_STANDARD_ID2, "TAG_ENUM_TIFF_EP_STANDARD_ID2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SENSING_METHOD2, "TAG_ENUM_SENSING_METHOD2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_FILE_SOURCE, "TAG_ENUM_FILE_SOURCE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SCENE_TYPE, "TAG_ENUM_SCENE_TYPE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CFA_PATTERN, "TAG_ENUM_CFA_PATTERN"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CUSTOM_RENDERED, "TAG_ENUM_CUSTOM_RENDERED"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_EXPOSURE_MODE, "TAG_ENUM_EXPOSURE_MODE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_WHITE_BALANCE, "TAG_ENUM_WHITE_BALANCE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_DIGITAL_ZOOM_RATIO, "TAG_ENUM_DIGITAL_ZOOM_RATIO"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_FOCAL_LENGTH_IN35MM_FORMAT, "TAG_ENUM_FOCAL_LENGTH_IN35MM_FORMAT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SCENE_CAPTURE_TYPE, "TAG_ENUM_SCENE_CAPTURE_TYPE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_GAIN_CONTROL, "TAG_ENUM_GAIN_CONTROL"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CONTRAST, "TAG_ENUM_CONTRAST"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SATURATION, "TAG_ENUM_SATURATION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SHARPNESS, "TAG_ENUM_SHARPNESS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_DEVICE_SETTING_DESCRIPTION, "TAG_ENUM_DEVICE_SETTING_DESCRIPTION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SUBJECT_DISTANCE_RANGE, "TAG_ENUM_SUBJECT_DISTANCE_RANGE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_IMAGE_UNIQUE_ID, "TAG_ENUM_IMAGE_UNIQUE_ID"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_OWNER_NAME, "TAG_ENUM_OWNER_NAME"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SERIAL_NUMBER, "TAG_ENUM_SERIAL_NUMBER"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_LENS_INFO, "TAG_ENUM_LENS_INFO"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_LENS_MAKE, "TAG_ENUM_LENS_MAKE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_LENS_MODEL, "TAG_ENUM_LENS_MODEL"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_LENS_SERIAL_NUMBER, "TAG_ENUM_LENS_SERIAL_NUMBER"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_GDAL_METADATA, "TAG_ENUM_GDAL_METADATA"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_GDAL_NO_DATA, "TAG_ENUM_GDAL_NO_DATA"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_GAMMA, "TAG_ENUM_GAMMA"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_EXPAND_SOFTWARE, "TAG_ENUM_EXPAND_SOFTWARE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_EXPAND_LENS, "TAG_ENUM_EXPAND_LENS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_EXPAND_FILM, "TAG_ENUM_EXPAND_FILM"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_EXPAND_FILTER_LENS, "TAG_ENUM_EXPAND_FILTER_LENS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_EXPAND_SCANNER, "TAG_ENUM_EXPAND_SCANNER"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_EXPAND_FLASH_LAMP, "TAG_ENUM_EXPAND_FLASH_LAMP"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PIXEL_FORMAT, "TAG_ENUM_PIXEL_FORMAT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_TRANSFORMATION, "TAG_ENUM_TRANSFORMATION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_UNCOMPRESSED, "TAG_ENUM_UNCOMPRESSED"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_IMAGE_TYPE, "TAG_ENUM_IMAGE_TYPE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_IMAGE_WIDTH2, "TAG_ENUM_IMAGE_WIDTH2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_IMAGE_HEIGHT2, "TAG_ENUM_IMAGE_HEIGHT2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_WIDTH_RESOLUTION, "TAG_ENUM_WIDTH_RESOLUTION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_HEIGHT_RESOLUTION, "TAG_ENUM_HEIGHT_RESOLUTION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_IMAGE_OFFSET, "TAG_ENUM_IMAGE_OFFSET"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_IMAGE_BYTE_COUNT, "TAG_ENUM_IMAGE_BYTE_COUNT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_ALPHA_OFFSET, "TAG_ENUM_ALPHA_OFFSET"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_ALPHA_BYTE_COUNT, "TAG_ENUM_ALPHA_BYTE_COUNT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_IMAGE_DATA_DISCARD, "TAG_ENUM_IMAGE_DATA_DISCARD"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_ALPHA_DATA_DISCARD, "TAG_ENUM_ALPHA_DATA_DISCARD"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_OCE_SCANJOB_DESC, "TAG_ENUM_OCE_SCANJOB_DESC"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_OCE_APPLICATION_SELECTOR, "TAG_ENUM_OCE_APPLICATION_SELECTOR"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_OCE_ID_NUMBER, "TAG_ENUM_OCE_ID_NUMBER"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_OCE_IMAGE_LOGIC, "TAG_ENUM_OCE_IMAGE_LOGIC"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_ANNOTATIONS, "TAG_ENUM_ANNOTATIONS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PRINT_IM, "TAG_ENUM_PRINT_IM"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_ORIGINAL_FILE_NAME, "TAG_ENUM_ORIGINAL_FILE_NAME"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_USPTO_ORIGINAL_CONTENT_TYPE, "TAG_ENUM_USPTO_ORIGINAL_CONTENT_TYPE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_DNG_VERSION, "TAG_ENUM_DNG_VERSION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_DNG_BACKWARD_VERSION, "TAG_ENUM_DNG_BACKWARD_VERSION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_UNIQUE_CAMERA_MODEL, "TAG_ENUM_UNIQUE_CAMERA_MODEL"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_LOCALIZED_CAMERA_MODEL, "TAG_ENUM_LOCALIZED_CAMERA_MODEL"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CFA_PLANE_COLOR, "TAG_ENUM_CFA_PLANE_COLOR"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CFA_LAYOUT, "TAG_ENUM_CFA_LAYOUT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_LINEARIZATION_TABLE, "TAG_ENUM_LINEARIZATION_TABLE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_BLACK_LEVEL_REPEAT_DIM, "TAG_ENUM_BLACK_LEVEL_REPEAT_DIM"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_BLACK_LEVEL, "TAG_ENUM_BLACK_LEVEL"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_BLACK_LEVEL_DELTA_H, "TAG_ENUM_BLACK_LEVEL_DELTA_H"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_BLACK_LEVEL_DELTA_V, "TAG_ENUM_BLACK_LEVEL_DELTA_V"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_WHITE_LEVEL, "TAG_ENUM_WHITE_LEVEL"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_DEFAULT_SCALE, "TAG_ENUM_DEFAULT_SCALE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_DEFAULT_CROP_ORIGIN, "TAG_ENUM_DEFAULT_CROP_ORIGIN"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_DEFAULT_CROP_SIZE, "TAG_ENUM_DEFAULT_CROP_SIZE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_COLOR_MATRIX1, "TAG_ENUM_COLOR_MATRIX1"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_COLOR_MATRIX2, "TAG_ENUM_COLOR_MATRIX2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CAMERA_CALIBRATION1, "TAG_ENUM_CAMERA_CALIBRATION1"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CAMERA_CALIBRATION2, "TAG_ENUM_CAMERA_CALIBRATION2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_REDUCTION_MATRIX1, "TAG_ENUM_REDUCTION_MATRIX1"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_REDUCTION_MATRIX2, "TAG_ENUM_REDUCTION_MATRIX2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_ANALOG_BALANCE, "TAG_ENUM_ANALOG_BALANCE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_AS_SHOT_NEUTRAL, "TAG_ENUM_AS_SHOT_NEUTRAL"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_AS_SHOT_WHITE_XY, "TAG_ENUM_AS_SHOT_WHITE_XY"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_BASELINE_EXPOSURE, "TAG_ENUM_BASELINE_EXPOSURE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_BASELINE_NOISE, "TAG_ENUM_BASELINE_NOISE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_BASELINE_SHARPNESS, "TAG_ENUM_BASELINE_SHARPNESS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_BAYER_GREEN_SPLIT, "TAG_ENUM_BAYER_GREEN_SPLIT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_LINEAR_RESPONSE_LIMIT, "TAG_ENUM_LINEAR_RESPONSE_LIMIT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CAMERA_SERIAL_NUMBER, "TAG_ENUM_CAMERA_SERIAL_NUMBER"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_DNG_LENS_INFO, "TAG_ENUM_DNG_LENS_INFO"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CHROMA_BLUR_RADIUS, "TAG_ENUM_CHROMA_BLUR_RADIUS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_ANTI_ALIAS_STRENGTH, "TAG_ENUM_ANTI_ALIAS_STRENGTH"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SHADOW_SCALE, "TAG_ENUM_SHADOW_SCALE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SR2_PRIVATE, "TAG_ENUM_SR2_PRIVATE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_MAKER_NOTE_SAFETY, "TAG_ENUM_MAKER_NOTE_SAFETY"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_RAW_IMAGE_SEGMENTATION, "TAG_ENUM_RAW_IMAGE_SEGMENTATION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CALIBRATION_ILLUMINANT1, "TAG_ENUM_CALIBRATION_ILLUMINANT1"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CALIBRATION_ILLUMINANT2, "TAG_ENUM_CALIBRATION_ILLUMINANT2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_BEST_QUALITY_SCALE, "TAG_ENUM_BEST_QUALITY_SCALE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_RAW_DATA_UNIQUE_ID, "TAG_ENUM_RAW_DATA_UNIQUE_ID"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_ALIAS_LAYER_METADATA, "TAG_ENUM_ALIAS_LAYER_METADATA"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_ORIGINAL_RAW_FILE_NAME, "TAG_ENUM_ORIGINAL_RAW_FILE_NAME"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_ORIGINAL_RAW_FILE_DATA, "TAG_ENUM_ORIGINAL_RAW_FILE_DATA"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_ACTIVE_AREA, "TAG_ENUM_ACTIVE_AREA"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_MASKED_AREAS, "TAG_ENUM_MASKED_AREAS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_AS_SHOT_ICC_PROFILE, "TAG_ENUM_AS_SHOT_ICC_PROFILE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_AS_SHOT_PRE_PROFILE_MATRIX, "TAG_ENUM_AS_SHOT_PRE_PROFILE_MATRIX"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CURRENT_ICC_PROFILE, "TAG_ENUM_CURRENT_ICC_PROFILE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CURRENT_PRE_PROFILE_MATRIX, "TAG_ENUM_CURRENT_PRE_PROFILE_MATRIX"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_COLORIMETRIC_REFERENCE, "TAG_ENUM_COLORIMETRIC_REFERENCE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_S_RAW_TYPE, "TAG_ENUM_S_RAW_TYPE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PANASONIC_TITLE, "TAG_ENUM_PANASONIC_TITLE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PANASONIC_TITLE2, "TAG_ENUM_PANASONIC_TITLE2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CAMERA_CALIBRATION_SIG, "TAG_ENUM_CAMERA_CALIBRATION_SIG"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PROFILE_CALIBRATION_SIG, "TAG_ENUM_PROFILE_CALIBRATION_SIG"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PROFILE_IFD, "TAG_ENUM_PROFILE_IFD"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_AS_SHOT_PROFILE_NAME, "TAG_ENUM_AS_SHOT_PROFILE_NAME"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_NOISE_REDUCTION_APPLIED, "TAG_ENUM_NOISE_REDUCTION_APPLIED"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PROFILE_NAME, "TAG_ENUM_PROFILE_NAME"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PROFILE_HUE_SAT_MAP_DIMS, "TAG_ENUM_PROFILE_HUE_SAT_MAP_DIMS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PROFILE_HUE_SAT_MAP_DATA1, "TAG_ENUM_PROFILE_HUE_SAT_MAP_DATA1"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PROFILE_HUE_SAT_MAP_DATA2, "TAG_ENUM_PROFILE_HUE_SAT_MAP_DATA2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PROFILE_TONE_CURVE, "TAG_ENUM_PROFILE_TONE_CURVE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PROFILE_EMBED_POLICY, "TAG_ENUM_PROFILE_EMBED_POLICY"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PROFILE_COPYRIGHT, "TAG_ENUM_PROFILE_COPYRIGHT"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_FORWARD_MATRIX1, "TAG_ENUM_FORWARD_MATRIX1"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_FORWARD_MATRIX2, "TAG_ENUM_FORWARD_MATRIX2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PREVIEW_APPLICATION_NAME, "TAG_ENUM_PREVIEW_APPLICATION_NAME"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PREVIEW_APPLICATION_VERSION, "TAG_ENUM_PREVIEW_APPLICATION_VERSION"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PREVIEW_SETTINGS_NAME, "TAG_ENUM_PREVIEW_SETTINGS_NAME"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PREVIEW_SETTINGS_DIGEST, "TAG_ENUM_PREVIEW_SETTINGS_DIGEST"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PREVIEW_COLOR_SPACE, "TAG_ENUM_PREVIEW_COLOR_SPACE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PREVIEW_DATE_TIME, "TAG_ENUM_PREVIEW_DATE_TIME"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_RAW_IMAGE_DIGEST, "TAG_ENUM_RAW_IMAGE_DIGEST"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_ORIGINAL_RAW_FILE_DIGEST, "TAG_ENUM_ORIGINAL_RAW_FILE_DIGEST"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SUB_TILE_BLOCK_SIZE, "TAG_ENUM_SUB_TILE_BLOCK_SIZE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_ROW_INTERLEAVE_FACTOR, "TAG_ENUM_ROW_INTERLEAVE_FACTOR"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PROFILE_LOOK_TABLE_DIMS, "TAG_ENUM_PROFILE_LOOK_TABLE_DIMS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PROFILE_LOOK_TABLE_DATA, "TAG_ENUM_PROFILE_LOOK_TABLE_DATA"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_OPCODE_LIST1, "TAG_ENUM_OPCODE_LIST1"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_OPCODE_LIST2, "TAG_ENUM_OPCODE_LIST2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_OPCODE_LIST3, "TAG_ENUM_OPCODE_LIST3"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_NOISE_PROFILE, "TAG_ENUM_NOISE_PROFILE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_TIME_CODES, "TAG_ENUM_TIME_CODES"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_FRAME_RATE, "TAG_ENUM_FRAME_RATE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_T_STOP, "TAG_ENUM_T_STOP"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_REEL_NAME, "TAG_ENUM_REEL_NAME"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_ORIGINAL_DEFAULT_FINAL_SIZE, "TAG_ENUM_ORIGINAL_DEFAULT_FINAL_SIZE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_ORIGINAL_BEST_QUALITY_SIZE, "TAG_ENUM_ORIGINAL_BEST_QUALITY_SIZE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_ORIGINAL_DEFAULT_CROP_SIZE, "TAG_ENUM_ORIGINAL_DEFAULT_CROP_SIZE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CAMERA_LABEL, "TAG_ENUM_CAMERA_LABEL"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PROFILE_HUE_SAT_MAP_ENCODING, "TAG_ENUM_PROFILE_HUE_SAT_MAP_ENCODING"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PROFILE_LOOK_TABLE_ENCODING, "TAG_ENUM_PROFILE_LOOK_TABLE_ENCODING"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_BASELINE_EXPOSURE_OFFSET, "TAG_ENUM_BASELINE_EXPOSURE_OFFSET"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_DEFAULT_BLACK_RENDER, "TAG_ENUM_DEFAULT_BLACK_RENDER"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_NEW_RAW_IMAGE_DIGEST, "TAG_ENUM_NEW_RAW_IMAGE_DIGEST"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_RAW_TO_PREVIEW_GAIN, "TAG_ENUM_RAW_TO_PREVIEW_GAIN"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_DEFAULT_USER_CROP, "TAG_ENUM_DEFAULT_USER_CROP"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_PADDING, "TAG_ENUM_PADDING"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_OFFSET_SCHEMA, "TAG_ENUM_OFFSET_SCHEMA"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_OWNER_NAME2, "TAG_ENUM_OWNER_NAME2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SERIAL_NUMBER2, "TAG_ENUM_SERIAL_NUMBER2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_LENS, "TAG_ENUM_LENS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_KDC_IFD, "TAG_ENUM_KDC_IFD"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_RAW_FILE, "TAG_ENUM_RAW_FILE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CONVERTER, "TAG_ENUM_CONVERTER"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_WHITE_BALANCE2, "TAG_ENUM_WHITE_BALANCE2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_EXPOSURE, "TAG_ENUM_EXPOSURE"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SHADOWS, "TAG_ENUM_SHADOWS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_BRIGHTNESS, "TAG_ENUM_BRIGHTNESS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_CONTRAST2, "TAG_ENUM_CONTRAST2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SATURATION2, "TAG_ENUM_SATURATION2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SHARPNESS2, "TAG_ENUM_SHARPNESS2"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_SMOOTHNESS, "TAG_ENUM_SMOOTHNESS"}, | |
{exif_le_t::ifd_field_t::TAG_ENUM_MOIRE_FILTER, "TAG_ENUM_MOIRE_FILTER"}, | |
}; | |
int main() { | |
std::ifstream is("./img.jpg", std::ifstream::binary); | |
kaitai::kstream ks(&is); | |
jpeg_t data(&ks); | |
auto& segments = *(data.segments()); | |
for (auto* s: segments) { | |
auto marker = s->marker(); | |
if (marker == jpeg_t::segment_t::marker_enum_t::MARKER_ENUM_APP1) { | |
auto* app1_data = dynamic_cast<jpeg_t::segment_app1_t*>(s->data()); | |
if (app1_data->_is_null_body()) { | |
std::cerr << "Empty app1, skip\n"; | |
continue; | |
} | |
auto* exif_body = app1_data->body(); // exif_in_jpeg_t | |
auto* exif_data = exif_body->data(); // exif_t | |
if (exif_data->_is_null_body()) { | |
std::cerr << "Empty exif, skip\n"; | |
continue; | |
} | |
auto* exif = dynamic_cast<exif_le_t*>(exif_data->body()); | |
std::cout << "EXIF version: " << exif->version() << '\n'; | |
auto* ifd = exif->ifd0(); | |
auto& fields = *(ifd->fields()); | |
for (auto* f : fields) { | |
auto tag = f->tag(); | |
auto type = f->field_type(); | |
std::cout << tag_to_str[tag] << ": " << f->data() << " (" << type_to_str[type] << ")\n"; | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This only finds a small subset of the EXIF tags in the file. Flickr/online decoders output a lot more information. We also have 2
APP1
sections, the second one being empty (according to my code). Could be where the rest of the information is.