From 189e0c933821552b2d0934c83c3a21abbb3e8294 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Milo=C5=A1=20Komar=C4=8Devi=C4=87?= Date: Mon, 2 Nov 2020 10:25:19 +0100 Subject: [PATCH] Add more easy accessors for Exif & TIFF/EP overlap --- include/exiv2/easyaccess.hpp | 22 ++++++++ src/easyaccess.cpp | 99 ++++++++++++++++++++++++++++++++++++ 2 files changed, 121 insertions(+) diff --git a/include/exiv2/easyaccess.hpp b/include/exiv2/easyaccess.hpp index a77809b4..67f2d01a 100644 --- a/include/exiv2/easyaccess.hpp +++ b/include/exiv2/easyaccess.hpp @@ -74,12 +74,34 @@ namespace Exiv2 { EXIV2API ExifData::const_iterator exposureTime(const ExifData& ed); //! Return the F number EXIV2API ExifData::const_iterator fNumber(const ExifData& ed); + //! Return the shutter speed value + EXIV2API ExifData::const_iterator shutterSpeedValue(const ExifData& ed); + //! Return the aperture value + EXIV2API ExifData::const_iterator apertureValue(const ExifData& ed); + //! Return the brightness value + EXIV2API ExifData::const_iterator brightnessValue(const ExifData& ed); + //! Return the exposure bias value + EXIV2API ExifData::const_iterator exposureBiasValue(const ExifData& ed); + //! Return the max aperture value + EXIV2API ExifData::const_iterator maxApertureValue(const ExifData& ed); //! Return the subject distance EXIV2API ExifData::const_iterator subjectDistance(const ExifData& ed); + //! Return the kind of light source + EXIV2API ExifData::const_iterator lightSource(const ExifData& ed); + //! Return the status of flash + EXIV2API ExifData::const_iterator flash(const ExifData& ed); //! Return the camera serial number EXIV2API ExifData::const_iterator serialNumber(const ExifData& ed); //! Return the focal length setting EXIV2API ExifData::const_iterator focalLength(const ExifData& ed); + //! Return the subject location and area + EXIV2API ExifData::const_iterator subjectArea(const ExifData& ed); + //! Return the flash energy + EXIV2API ExifData::const_iterator flashEnergy(const ExifData& ed); + //! Return the exposure index + EXIV2API ExifData::const_iterator exposureIndex(const ExifData& ed); + //! Return the image sensor type + EXIV2API ExifData::const_iterator sensingMethod(const ExifData& ed); //! Return the AF point EXIV2API ExifData::const_iterator afPoint(const ExifData& ed); diff --git a/src/easyaccess.cpp b/src/easyaccess.cpp index 9302d6cc..f44aff5f 100644 --- a/src/easyaccess.cpp +++ b/src/easyaccess.cpp @@ -461,6 +461,51 @@ namespace Exiv2 { return findMetadatum(ed, keys, EXV_COUNTOF(keys)); } + ExifData::const_iterator shutterSpeedValue(const ExifData& ed) + { + static const char* keys[] = { + "Exif.Photo.ShutterSpeedValue", + "Exif.Image.ShutterSpeedValue" + }; + return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + } + + ExifData::const_iterator apertureValue(const ExifData& ed) + { + static const char* keys[] = { + "Exif.Photo.ApertureValue", + "Exif.Image.ApertureValue" + }; + return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + } + + ExifData::const_iterator brightnessValue(const ExifData& ed) + { + static const char* keys[] = { + "Exif.Photo.BrightnessValue", + "Exif.Image.BrightnessValue" + }; + return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + } + + ExifData::const_iterator exposureBiasValue(const ExifData& ed) + { + static const char* keys[] = { + "Exif.Photo.ExposureBiasValue", + "Exif.Image.ExposureBiasValue" + }; + return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + } + + ExifData::const_iterator maxApertureValue(const ExifData& ed) + { + static const char* keys[] = { + "Exif.Photo.MaxApertureValue", + "Exif.Image.MaxApertureValue" + }; + return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + } + ExifData::const_iterator subjectDistance(const ExifData& ed) { static const char* keys[] = { @@ -482,6 +527,24 @@ namespace Exiv2 { return findMetadatum(ed, keys, EXV_COUNTOF(keys)); } + ExifData::const_iterator lightSource(const ExifData& ed) + { + static const char* keys[] = { + "Exif.Photo.LightSource", + "Exif.Image.LightSource" + }; + return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + } + + ExifData::const_iterator flash(const ExifData& ed) + { + static const char* keys[] = { + "Exif.Photo.Flash", + "Exif.Image.Flash" + }; + return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + } + ExifData::const_iterator serialNumber(const ExifData& ed) { static const char* keys[] = { @@ -512,6 +575,42 @@ namespace Exiv2 { return findMetadatum(ed, keys, EXV_COUNTOF(keys)); } + ExifData::const_iterator subjectArea(const ExifData& ed) + { + static const char* keys[] = { + "Exif.Photo.SubjectArea", + "Exif.Image.SubjectLocation" + }; + return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + } + + ExifData::const_iterator flashEnergy(const ExifData& ed) + { + static const char* keys[] = { + "Exif.Photo.FlashEnergy", + "Exif.Image.FlashEnergy" + }; + return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + } + + ExifData::const_iterator exposureIndex(const ExifData& ed) + { + static const char* keys[] = { + "Exif.Photo.ExposureIndex", + "Exif.Image.ExposureIndex" + }; + return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + } + + ExifData::const_iterator sensingMethod(const ExifData& ed) + { + static const char* keys[] = { + "Exif.Photo.SensingMethod", + "Exif.Image.SensingMethod" + }; + return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + } + ExifData::const_iterator afPoint(const ExifData& ed) { static const char* keys[] = {