ImageGear .NET - Updated
Camera RAW Metadata Structure
User Guide > File Formats and Compressions > File Formats > Metadata Structures > Camera RAW Metadata Structure

Camera Raw image metadata structure consists of three sections, which are represented by sub-trees:

Common Section

The Common sub-tree contains values that are common or useful for all raw files.

All values in the Common sub-tree have Type = VALUE_ITEM and are Read Only.

Name Id Native Type Value count Description
ImageWidth ImGearDCRAWTagIDs.IMAGEWIDTH UINT32 1 Image width after that masked pixels were trimmed out
ImageHeight ImGearDCRAWTagIDs.IMAGEHEIGHT UINT32 1 Image height after that masked pixels were trimmed out
BitsPerSample ImGearDCRAWTagIDs.BITSPERSAMPLE UINT32 1..3 Bits per sample in the original raw image (before reconstruction)
PhotometricInterpretation ImGearDCRAWTagIDs.PHOTOMETRICINTERPRETATION UINT32 1 Photometric interpretation of the original raw image
RawLeft ImGearDCRAWTagIDs.RAWLEFT UINT32 1 X coordinate of first column of non-masked pixels
RawTop ImGearDCRAWTagIDs.RAWTOP UINT32 1 Y coordinate of first row of non-masked pixels
RawWidth ImGearDCRAWTagIDs.RAWWIDTH UINT32 1 Raw Image Width, including masked pixels
RawHeight ImGearDCRAWTagIDs.RAWHEIGHT UINT32 1 Raw Image Height, including masked pixels
ColorPlanes ImGearDCRAWTagIDs.COLORPLANES UINT32 1 Number of colors in the CFA pattern
SamplesPerPixel ImGearDCRAWTagIDs.SAMPLESPERPIXEL UINT32 1 Number of samples per pixel in the original image, before reconstruction
Make ImGearDCRAWTagIDs.MAKE STRING 1 Name of the camera manufacturer
Model ImGearDCRAWTagIDs.MODEL STRING 1 Name of the camera model
UniqueCameraModel ImGearDCRAWTagIDs.UNIQUECAMERAMODEL STRING 1 Unique, non-localized name for the camera model that created the image in the raw file.
TimeStamp ImGearDCRAWTagIDs.TIMESTAMP STRING 1 Time stamp
CFARepeatPatternDim ImGearDCRAWTagIDs.CFAREPEATPATTERNDIM UINT16 2 This tag encodes the number of pixels horizontally and vertically that are needed to uniquely define the repeat pattern of the color filter array.
CFAPattern ImGearDCRAWTagIDs.CFAPATTERN INT8 CFARepeatPatternDim[0] * CFARepeatPatternDim[1] This tag encodes the actual color filter array geometric pattern of the image sensor used to capture the single sensor color image.
AsShotNeutral ImGearDCRAWTagIDs.ASSHOTNEUTRAL RATIONAL_INT32 ColorPlanes Specifies the selected white balance at time of capture, encoded as the coordinates of a perfectly neutral color in linear reference space values.
WhiteLevel ImGearDCRAWTagIDs.WHITELEVEL RATIONAL_INT32 1 Image pixel value that corresponds to fully saturated encoding level.
CalibrationIlluminant1 ImGearDCRAWTagIDs.CALIBRATIONILLUMINANT1 UINT16 1 The illuminant used for ColorMatrix1 color conversion matrix. Allowed values are the same as allowed values for LightSource EXIF tag (see Exif specification).
CalibrationIlluminant2 ImGearDCRAWTagIDs.CALIBRATIONILLUMINANT1 UINT16 1 The illuminant used for ColorMatrix2 color conversion matrix. Allowed values are the same as allowed values for LightSource EXIF tag (see Exif specification).
ColorMatrix1 ImGearDCRAWTagIDs.COLORMATRIX1 RATIONAL_INT32 ColorPlanes * 3 Conversion matrix from XYZ to camera color space, for illuminant specified by CalibrationIlluminant1 tag. Matrix is stored in row scan order.
ColorMatrix2 ImGearDCRAWTagIDs.COLORMATRIX2 RATIONAL_INT32 ColorPlanes * 3 Conversion matrix from XYZ to camera color space, for illuminant specified by CalibrationIlluminant2 tag. Matrix is stored in row scan order.
BaselineExposure ImGearDCRAWTagIDs.BASELINEEXPOSURE RATIONAL_INT32 1 Specifies baseline exposure of the camera, in EV units. Application may use this value to adjust exposure compensation for particular camera model.

Format-Specific Level

This level includes format-specific metadata that is found in the image (CIFF, EXIF, or TIFF). See corresponding sections for structure of metadata for these formats:

Statistics

This section contains data that is collected during image loading, rather than obtained from image's header or metadata. ImGearFileFormats.LoadPage creates this section, but ImGearFileFormats.LoadPageHeader does not, because it does not load pixel data.

Currently, the Statistics section contains image Black Level information.

Black Level specifies pixel intensity, caused by heat rather than by light. Even in absolute darkness, camera sensors report non-zero pixel intensities. Black Level should be subtracted from raw image pixel intensities in the beginning of the processing cycle. If this is not done, the image may look pale or have an unwanted tint.

In order to collect Black Level information, many digital cameras expose only the central part of the sensor to the light, and leave edges of the sensor obscured. Intensities obtained from this obscured area can be averaged to calculate Black Level.

BlackLevel information is represented as a two dimensional array, containing averaged black level values for each element of a color filter array cell.

The following tags can be present in the Statistics section:

Name ID Native Type Value Count Description
BlackLevelRepeatDim ImGearDCRAWTagIDs.BLACKLEVELREPEATDIM UINT16 2 This tag specifies repeat pattern size for the "BlackLevel" tag.
BlackLevel ImGearDCRAWTagIDs.BLACKLEVEL UINT32 BlackLevelRepeatDim[0] * BlackLevelRepeatDim[1] This tag specifies the image Black Level.