[]
Represents Exif metadata of an image.
public class ExifProfile
Initializes a new instance of ExifProfile.
public ExifProfile()
Gets or sets the acceleration (a scalar regardless of direction) as the ambient situation at the shot, the unit is mGal (10-5 m/s2).
public float? Acceleration { get; set; }
Gets or sets the lens aperture.
public float? ApertureValue { get; set; }
Gets or sets a string identifying the person who created the image.
public string Artist { get; set; }
Gets or sets a value indicating if the data should be saved in big endian format.
public bool BigEndian { get; set; }
Gets or sets the serial number of the body of the camera that was used in photography.
public string BodySerialNumber { get; set; }
Gets or sets the value of brightness.
public float? BrightnessValue { get; set; }
Gets or sets the elevation/depression. Angle of the orientation of the camera (imaging optical axis) as the ambient situation at the shot. The unit is degree(°).
public float? CameraElevationAngle { get; set; }
Gets or sets the owner of a camera used in photography.
public string CameraOwnerName { get; set; }
Gets or sets the color filter array (CFA) geometric pattern of the image sensor when a one-chip color area sensor is used.
public byte[] CFAPattern { get; set; }
Gets or sets the color space specifier.
public ExifColorSpace ColorSpace { get; set; }
Gets or sets the color space specifier.
The value is in raw format as defined in Exif specification.
public ushort? ColorSpaceRaw { get; set; }
Gets or sets the channels and complements PhotometricInterpretation (specific to compressed data).
public byte[] ComponentsConfiguration { get; set; }
Gets or sets the number of compressed bits per pixel (specific to compressed data).
public float? CompressedBitsPerPixel { get; set; }
Gets or sets the direction of contrast processing applied by the camera when the image was shot.
public ExifContrast Contrast { get; set; }
Gets or sets the direction of contrast processing applied by the camera when the image was shot.
The value is in raw format as defined in Exif specification.
public ushort? ContrastRaw { get; set; }
Gets or sets a copyright notice.
public string Copyright { get; set; }
Gets or sets a value indicating the use of special processing on image data, such as rendering geared to output.
public ExifCustomRendered CustomRendered { get; set; }
Gets or sets a value indicating the use of special processing on image data, such as rendering geared to output.
The value is in raw format as defined in Exif specification.
public ushort? CustomRenderedRaw { get; set; }
Gets or sets the date and time of image creation.
public DateTime? DateTime { get; set; }
Gets or sets the date and time when the image was stored as digital data.
public DateTime? DateTimeDigitized { get; set; }
Gets or sets the date and time when the image was stored as digital data.
The format is "YYYY:MM:DD HH:MM:SS" with time shown in 24-hour format, and the date and time separated by one blank character.
public string DateTimeDigitizedRaw { get; set; }
Gets or sets the date and time when the original image data was generated.
public DateTime? DateTimeOriginal { get; set; }
Gets or sets the date and time when the original image data was generated.
The format is "YYYY:MM:DD HH:MM:SS" with time shown in 24-hour format, and the date and time separated by one blank character.
public string DateTimeOriginalRaw { get; set; }
Gets or sets the date and time of image creation.
The format is "YYYY:MM:DD HH:MM:SS" with time shown in 24-hour format, and the date and time separated by one blank character.
public string DateTimeRaw { get; set; }
Gets or sets information on the picture-taking conditions of a particular camera model.
The value is in raw format as defined in Exif specification.
public byte[] DeviceSettingDescriptionRaw { get; set; }
Gets or sets the digital zoom ratio when the image was shot.
public float? DigitalZoomRatio { get; set; }
Gets or sets the version of the supported Exif standard.
public string ExifVersion { get; set; }
Gets or sets the exposure bias.
public float? ExposureBiasValue { get; set; }
Gets or sets the exposure index selected on the camera or input device at the time the image is captured.
public float? ExposureIndex { get; set; }
Gets or sets the exposure mode set when the image was shot.
public ExifExposureMode ExposureMode { get; set; }
Gets or sets the exposure mode set when the image was shot.
The value is in raw format as defined in Exif specification.
public ushort? ExposureModeRaw { get; set; }
Gets or sets the class of the program used by the camera to set exposure when the picture is taken.
public ExifExposureProgram ExposureProgram { get; set; }
Gets or sets the class of the program used by the camera to set exposure when the picture is taken.
The value is in raw format as defined in Exif specification.
public ushort? ExposureProgramRaw { get; set; }
Gets or sets the exposure time, given in seconds.
public float? ExposureTime { get; set; }
Gets or sets the image source.
public ExifFileSource FileSource { get; set; }
Gets or sets the image source.
The value is in raw format as defined in Exif specification.
public byte? FileSourceRaw { get; set; }
Gets or sets the status of flash when the image was shot.
public ExifFlashFlags Flash { get; set; }
Gets or sets the strobe energy at the time the image is captured, as measured in Beam Candle Power Seconds.
public float? FlashEnergy { get; set; }
Gets or sets the Flashpix format version supported by a FPXR file.
public string FlashpixVersion { get; set; }
Gets or sets the status of flash when the image was shot.
The value is in raw format as defined in Exif specification.
public ushort? FlashRaw { get; set; }
Gets or sets the F number.
public float? FNumber { get; set; }
Gets or sets the actual focal length of the lens, in mm.
public float? FocalLength { get; set; }
Gets or sets the equivalent focal length assuming a 35mm film camera, in mm.
public ushort? FocalLengthIn35mmFilm { get; set; }
Gets or sets the unit for measuring FocalPlaneXResolution and FocalPlaneYResolution.
public ExifResolutionUnit FocalPlaneResolutionUnit { get; set; }
Gets or sets the unit for measuring FocalPlaneXResolution and FocalPlaneYResolution.
The value is in raw format as defined in Exif specification.
public ushort? FocalPlaneResolutionUnitRaw { get; set; }
Gets or sets the number of pixels in the image width (X) direction per FocalPlaneResolutionUnit on the camera focal plane.
public float? FocalPlaneXResolution { get; set; }
Gets or sets the number of pixels in the image height (Y) direction per FocalPlaneResolutionUnit on the camera focal plane.
public float? FocalPlaneYResolution { get; set; }
Gets or sets the degree of overall image gain adjustment.
public ExifGainControl GainControl { get; set; }
Gets or sets the degree of overall image gain adjustment.
The value is in raw format as defined in Exif specification.
public ushort? GainControlRaw { get; set; }
Gets or sets the value of coefficient gamma.
public float? Gamma { get; set; }
Gets or sets the altitude based on the reference in GPSAltitudeRef.
public float? GpsAltitude { get; set; }
Gets or sets the altitude used as the reference altitude.
public GpsAltitudeRef GpsAltitudeRef { get; set; }
Gets or sets the altitude used as the reference altitude.
The value is in raw format as defined in Exif specification.
public byte? GpsAltitudeRefRaw { get; set; }
Gets or sets the name of the GPS area.
public string GpsAreaInformation { get; set; }
Gets or sets the name of the GPS area.
The value is in raw format as defined in Exif specification.
public byte[] GpsAreaInformationRaw { get; set; }
Gets or sets date and time information relative to UTC (Coordinated Universal Time). The format is "YYYY:MM:DD".
public string GpsDateStamp { get; set; }
Gets or sets the bearing to the destination point.
public float? GpsDestBearing { get; set; }
Gets or sets the reference used for giving the bearing to the destination point.
public GpsDirectionRef GpsDestBearingRef { get; set; }
Gets or sets the reference used for giving the bearing to the destination point.
The value is in raw format as defined in Exif specification.
public string GpsDestBearingRefRaw { get; set; }
Gets or sets the distance to the destination point.
public float? GpsDestDistance { get; set; }
Gets or sets the unit used to express the distance to the destination point.
public GpsDistanceRef GpsDestDistanceRef { get; set; }
Gets or sets the unit used to express the distance to the destination point.
The value is in raw format as defined in Exif specification.
public string GpsDestDistanceRefRaw { get; set; }
Gets or sets the latitude of the destination point.
public float[] GpsDestLatitude { get; set; }
Gets or sets a value indicating whether the latitude of the destination point is north or south latitude.
public GpsLatitudeRef GpsDestLatitudeRef { get; set; }
Gets or sets a value indicating whether the latitude of the destination point is north or south latitude.
The value is in raw format as defined in Exif specification.
public string GpsDestLatitudeRefRaw { get; set; }
Gets or sets the longitude of the destination point.
public float[] GpsDestLongitude { get; set; }
Gets or sets a value indicating whether the longitude of the destination point is east or west longitude.
public GpsLongitudeRef GpsDestLongitudeRef { get; set; }
Gets or sets a value indicating whether the longitude of the destination point is east or west longitude.
The value is in raw format as defined in Exif specification.
public string GpsDestLongitudeRefRaw { get; set; }
Gets or sets a value indicating if the differential correction is applied to the GPS receiver.
public ushort? GpsDifferential { get; set; }
Gets or sets the GPS DOP (data degree of precision).
public float? GpsDOP { get; set; }
Gets or sets the horizontal positioning errors in meters.
public float? GpsHPositioningError { get; set; }
Gets or sets the direction of the image when it was captured.
public float? GpsImgDirection { get; set; }
Gets or sets the reference for giving the direction of the image when it is captured.
public GpsDirectionRef GpsImgDirectionRef { get; set; }
Gets or sets the reference for giving the direction of the image when it is captured.
The value is in raw format as defined in Exif specification.
public string GpsImgDirectionRefRaw { get; set; }
Gets or sets the latitude.
public float[] GpsLatitude { get; set; }
Gets or sets a value indicating whether the latitude is north or south latitude.
public GpsLatitudeRef GpsLatitudeRef { get; set; }
Gets or sets a value indicating whether the latitude is north or south latitude.
The value is in raw format as defined in Exif specification.
public string GpsLatitudeRefRaw { get; set; }
Gets or sets the longitude.
public float[] GpsLongitude { get; set; }
Gets or sets a value indicating whether the longitude is east or west longitude.
public GpsLongitudeRef GpsLongitudeRef { get; set; }
Gets or sets a value indicating whether the longitude is east or west longitude.
The value is in raw format as defined in Exif specification.
public string GpsLongitudeRefRaw { get; set; }
Gets or sets the geodetic survey data used by the GPS receiver.
public string GpsMapDatum { get; set; }
Gets or sets the GPS measurement mode.
public GpsMeasureMode GpsMeasureMode { get; set; }
Gets or sets the GPS measurement mode.
The value is in raw format as defined in Exif specification.
public string GpsMeasureModeRaw { get; set; }
Gets or sets the name of the method used for location finding.
public string GpsProcessingMethod { get; set; }
Gets or sets the name of the method used for location finding.
The value is in raw format as defined in Exif specification.
public byte[] GpsProcessingMethodRaw { get; set; }
Gets or sets the GPS satellites used for measurements.
public string GpsSatellites { get; set; }
Gets or sets the speed of GPS receiver movement.
public float? GpsSpeed { get; set; }
Gets or sets the unit used to express the GPS receiver speed of movement.
public GpsSpeedRef GpsSpeedRef { get; set; }
Gets or sets the unit used to express the GPS receiver speed of movement.
The value is in raw format as defined in Exif specification.
public string GpsSpeedRefRaw { get; set; }
Gets or sets the status of the GPS receiver when the image is recorded.
public GpsStatus GpsStatus { get; set; }
Gets or sets the status of the GPS receiver when the image is recorded.
The value is in raw format as defined in Exif specification.
public string GpsStatusRaw { get; set; }
Gets or sets the time as UTC (Coordinated Universal Time). TimeStamp is expressed as three RATIONAL values giving the hour, minute, and second.
public float[] GpsTimeStamp { get; set; }
Gets or sets the direction of GPS receiver movement.
public float? GpsTrack { get; set; }
Gets or sets the reference for giving the direction of GPS receiver movement.
public GpsDirectionRef GpsTrackRef { get; set; }
Gets or sets the reference for giving the direction of GPS receiver movement.
The value is in raw format as defined in Exif specification.
public string GpsTrackRefRaw { get; set; }
Gets or sets the version of GPSInfoIFD.
public string GpsVersionID { get; set; }
Gets or sets the humidity as the ambient situation at the shot, the unit is %.
public float? Humidity { get; set; }
Gets or sets a string that describes the subject of the image.
public string ImageDescription { get; set; }
Gets or sets an identifier assigned uniquely to each image.
public string ImageUniqueID { get; set; }
Gets or sets the identification of the Interoperability rule.
public string InteroperabilityIndex { get; set; }
Gets or sets the ISO speed value of a camera or input device that is defined in ISO 12232.
public uint? ISOSpeed { get; set; }
Gets or sets the ISO speed latitude yyy value of a camera or input device that is defined in ISO 12232.
public uint? ISOSpeedLatitudeyyy { get; set; }
Gets or sets the ISO speed latitude zzz value of a camera or input device that is defined in ISO 12232.
public uint? ISOSpeedLatitudezzz { get; set; }
Gets the value corresponding to the specific tag.
public ExifValue this[ExifTag tag] { get; }
tag
ExifTagGets or sets the lens manufacturer.
public string LensMake { get; set; }
Gets or sets the lens’s model name and model number.
public string LensModel { get; set; }
Gets or sets the serial number of the interchangeable lens that was used in photography.
public string LensSerialNumber { get; set; }
Gets or sets the minimum focal length, maximum focal length, minimum F number in the minimum focal length, and minimum F number in the maximum focal length, which are specification information for the lens that was used in photography.
public float[] LensSpecification { get; set; }
Gets or sets the kind of light source.
public ExifLightSource LightSource { get; set; }
Gets or sets the kind of light source.
The value is in raw format as defined in Exif specification.
public ushort? LightSourceRaw { get; set; }
Gets or sets the scanner manufacturer.
public string Make { get; set; }
Gets or sets the manufacturer specific information.
public byte[] MakerNote { get; set; }
Gets or sets the smallest F number of the lens.
public float? MaxApertureValue { get; set; }
Gets or sets the metering mode.
public ExifMeteringMode MeteringMode { get; set; }
Gets or sets the metering mode.
The value is in raw format as defined in Exif specification.
public ushort? MeteringModeRaw { get; set; }
Gets or sets the scanner model name or number.
public string Model { get; set; }
Gets or sets the Opto-Electric Conversion Function (OECF) specified in ISO 14524.
public byte[] OECF { get; set; }
Gets or sets the offset from UTC (the time difference from Universal Time Coordinated including daylight saving time) of the time of DateTime tag.
public TimeSpan? OffsetTime { get; set; }
Gets or sets the offset from UTC (the time difference from Universal Time Coordinated including daylight saving time) of the time of DateTimeDigitized tag.
public TimeSpan? OffsetTimeDigitized { get; set; }
Gets or sets the offset from UTC (the time difference from Universal Time Coordinated including daylight saving time) of the time of DateTimeDigitized tag.
The format when recording the offset is "±HH:MM". The part of "±" shall be recorded as "+" or "-".
public string OffsetTimeDigitizedRaw { get; set; }
Gets or sets the offset from UTC (the time difference from Universal Time Coordinated including daylight saving time) of the time of DateTimeOriginal tag.
public TimeSpan? OffsetTimeOriginal { get; set; }
Gets or sets the offset from UTC (the time difference from Universal Time Coordinated including daylight saving time) of the time of DateTimeOriginal tag.
The format when recording the offset is "±HH:MM". The part of "±" shall be recorded as "+" or "-".
public string OffsetTimeOriginalRaw { get; set; }
Gets or sets the offset from UTC (the time difference from Universal Time Coordinated including daylight saving time) of the time of DateTime tag.
The format when recording the offset is "±HH:MM". The part of "±" shall be recorded as "+" or "-".
public string OffsetTimeRaw { get; set; }
Gets or sets the orientation of the image with respect to the rows and columns.
public ExifOrientation Orientation { get; set; }
Gets or sets the orientation of the image with respect to the rows and columns.
The value is in raw format as defined in Exif specification.
public ushort? OrientationRaw { get; set; }
Gets or sets the ISO Speed and ISO Latitude of the camera or input device as specified in ISO 12232.
public ushort? PhotographicSensitivity { get; set; }
Gets or sets the valid width of the meaningful image (specific to compressed data).
public uint? PixelXDimension { get; set; }
Gets or sets the valid height of the meaningful image (specific to compressed data).
public uint? PixelYDimension { get; set; }
Gets or sets the pressure as the ambient situation at the shot, the unit is hPa.
public float? Pressure { get; set; }
Gets or sets the chromaticities of the primaries of the image.
public float[] PrimaryChromaticities { get; set; }
Gets or sets the recommended exposure index value of a camera or input device defined in ISO 12232.
public uint? RecommendedExposureIndex { get; set; }
Gets or sets the name of an audio file related to the image data.
public string RelatedSoundFile { get; set; }
Gets or sets the unit of measurement for XResolution and YResolution.
public ExifResolutionUnit ResolutionUnit { get; set; }
Gets or sets the unit of measurement for XResolution and YResolution.
The value is in raw format as defined in Exif specification.
public ushort? ResolutionUnitRaw { get; set; }
Gets or sets the direction of saturation processing applied by the camera when the image was shot.
public ExifSaturation Saturation { get; set; }
Gets or sets the direction of saturation processing applied by the camera when the image was shot.
The value is in raw format as defined in Exif specification.
public ushort? SaturationRaw { get; set; }
Gets or sets the type of scene that was shot.
public ExifSceneCaptureType SceneCaptureType { get; set; }
Gets or sets the type of scene that was shot.
The value is in raw format as defined in Exif specification.
public ushort? SceneCaptureTypeRaw { get; set; }
Gets or sets the type of scene.
public byte? SceneType { get; set; }
Gets or sets the image sensor type on the camera or input device.
public ExifSensingMethod SensingMethod { get; set; }
Gets or sets the image sensor type on the camera or input device.
The value is in raw format as defined in Exif specification.
public ushort? SensingMethodRaw { get; set; }
Gets or sets a value indicating which one of the parameters of ISO12232 is the PhotographicSensitivity tag.
public ExifSensitivityType SensitivityType { get; set; }
Gets or sets a value indicating which one of the parameters of ISO12232 is the PhotographicSensitivity tag.
The value is in raw format as defined in Exif specification.
public ushort? SensitivityTypeRaw { get; set; }
Gets or sets the direction of sharpness processing applied by the camera when the image was shot.
public ExifSharpness Sharpness { get; set; }
Gets or sets the direction of sharpness processing applied by the camera when the image was shot.
The value is in raw format as defined in Exif specification.
public ushort? SharpnessRaw { get; set; }
Gets or sets the shutter speed. The unit is the APEX (Additive System of Photographic Exposure) setting.
public float? ShutterSpeedValue { get; set; }
Gets or sets the name and version number of the software package(s) used to create the image.
public string Software { get; set; }
Gets or sets the camera or input device spatial frequency table and SFR values in the direction of image width, image height, and diagonal direction, as specified in ISO 12233.
public byte[] SpatialFrequencyResponse { get; set; }
Gets or sets the spectral sensitivity of each channel of the camera used.
public string SpectralSensitivity { get; set; }
Gets or sets the standard output sensitivity value of a camera or input device defined in ISO 12232.
public uint? StandardOutputSensitivity { get; set; }
Gets or sets the location and area of the main subject in the overall scene.
public ushort[] SubjectArea { get; set; }
Gets or sets the distance to the subject, given in meters.
public float? SubjectDistance { get; set; }
Gets or sets the distance to the subject.
public ExifSubjectDistanceRange SubjectDistanceRange { get; set; }
Gets or sets the distance to the subject.
The value is in raw format as defined in Exif specification.
public ushort? SubjectDistanceRangeRaw { get; set; }
Gets or sets the location of the main subject in the scene.
public ushort[] SubjectLocation { get; set; }
Gets or sets the fractions of seconds for the DateTime tag.
The value is between 0.0 and 1.0.
public double? SubsecTime { get; set; }
Gets or sets the fractions of seconds for the DateTimeDigitized tag.
The value is between 0.0 and 1.0.
public double? SubsecTimeDigitized { get; set; }
Gets or sets the fractions of seconds for the DateTimeDigitized tag.
The value is in raw format as defined in Exif specification.
public string SubsecTimeDigitizedRaw { get; set; }
Gets or sets the fractions of seconds for the DateTimeOriginal tag.
The value is between 0.0 and 1.0.
public double? SubsecTimeOriginal { get; set; }
Gets or sets the fractions of seconds for the DateTimeOriginal tag.
The value is in raw format as defined in Exif specification.
public string SubsecTimeOriginalRaw { get; set; }
Gets or sets the fractions of seconds for the DateTime tag.
The value is in raw format as defined in Exif specification.
public string SubsecTimeRaw { get; set; }
Gets or sets the temperature as the ambient situation at the shot, the unit is °C.
public float? Temperature { get; set; }
Gets the list of values with unknown tags.
public List<ExifValue> UnknownTags { get; }
Gets or sets the keywords or comments on the image; complements ImageDescription.
public string UserComment { get; set; }
Gets or sets the keywords or comments on the image; complements ImageDescription.
The value is in raw format as defined in Exif specification.
public byte[] UserCommentRaw { get; set; }
Gets or sets the water depth as the ambient situation at the shot, the unit is m.
public float? WaterDepth { get; set; }
Gets or sets the white balance mode set when the image was shot.
public ExifWhiteBalance WhiteBalance { get; set; }
Gets or sets the white balance mode set when the image was shot.
The value is in raw format as defined in Exif specification.
public ushort? WhiteBalanceRaw { get; set; }
Gets or sets the chromaticity of the white point of the image.
public float[] WhitePoint { get; set; }
Gets or sets the number of pixels per ResolutionUnit in the ImageWidth direction.
public float? XResolution { get; set; }
Gets or sets the number of pixels per ResolutionUnit in the ImageLength direction.
public float? YResolution { get; set; }
Clears all known and unknown tags and resets the instance of ExifProfile to the default state.
public void Clear()
Creates a copy of this ExifProfile.
public ExifProfile Clone()
Returns an array of all known tags in the profile.
public ExifTag[] GetTags()
Returns the list of all known tags in the profile and their corresponding values.
public List<KeyValuePair<ExifTag, ExifValue>> GetValues()
Returns a value indicating if the specified tag is defined in the profile.
public bool HasValue(ExifTag tag)
tag
ExifTagLoads Exif metadata from a byte array.
public void Load(byte[] data, int offset = 0, int length = 0)
data
byte[]offset
intlength
intLoads Exif metadata from a Stream.
public void Load(Stream stream)
stream
System.IO.StreamRemoves the specified tag from the profile.
public bool RemoveValue(ExifTag tag)
tag
ExifTagtrue if the tag is successfully found and removed; otherwise, false. This method returns false if tag is not found in the profile.
Saves Exif metadata to a Stream.
public void SaveToStream(Stream stream)
stream
System.IO.StreamSaves Exif metadata to a byte array.
public byte[] ToByteArray()