/// <summary> /// Gets image exposure metering mode information. /// </summary> /// <returns></returns> private ImageMeteringMode GetMeteringModeInfo() { ImageMeteringMode meteringModeInfo = new ImageMeteringMode(); try { PropertyItem piMeteringModeInfo = GetImageProperty(Constants.MeteringMode); if (piMeteringModeInfo != null && piMeteringModeInfo.Type == 3) { double meteringModeInfoValue = 0.00; for (int count = 0; count < piMeteringModeInfo.Value.Length; count++) { meteringModeInfoValue += piMeteringModeInfo.Value[count] * Math.Pow(256, count); } int meteringModeInfoData = Convert.ToInt32(meteringModeInfoValue); meteringModeInfo = (ImageMeteringMode)meteringModeInfoData; } else { meteringModeInfo = ImageMeteringMode.Unknown; } } catch (Exception) { meteringModeInfo = ImageMeteringMode.Undefined; } return(meteringModeInfo); }
/// <summary> /// Gets all the image property values. /// </summary> private void GetAllImagePropertyValues() { try { this.cameraMake = GetCameraMake(); this.cameraModel = GetCameraSpecificModel(); this.aperture = GetApertureData(); this.shutterSpeed = GetExposureTime(); this.iso = GetISOInformation(); this.focalLength = GetFocalLengthInformation(); this.pixelXDimension = GetPixelDimension(Dimension.X); this.pixelYDimension = GetPixelDimension(Dimension.Y); this.imageFileSource = GetImageFileSource(); this.flash = GetFlashInformation(); this.createdDateTimeStamp = GetImageDateTimeStamps(ImageTimeStamps.Created); this.modifiedDateTimeStamp = GetImageDateTimeStamps(ImageTimeStamps.Modified); this.exposureCompensation = GetExposureCompensation(); this.imageSceneMode = GetImageSceneMode(); this.meteringMode = GetMeteringModeInfo(); this.imageExposureMode = GetImageExposureMode(); this.imageWhiteBalance = GetImageWhiteBalance(); this.imageSubjectDistanceRange = GetImageSubjectDistanceInformation(); this.focalLength35mmEquivalent = GetFocalLength35mmEquivalent(); } catch (Exception) { } }