Added several easy-access functions. (Patch by Jens Mueller)

v0.27.3
Andreas Huggel 15 years ago
parent dc6c8086da
commit 48e169db2e

@ -18,15 +18,26 @@ struct EasyAccess {
}; };
static const EasyAccess easyAccess[] = { static const EasyAccess easyAccess[] = {
{ "Orientation", Exiv2::orientation }, { "Orientation", Exiv2::orientation },
{ "ISO speed", Exiv2::isoSpeed }, { "ISO speed", Exiv2::isoSpeed },
{ "Flash bias", Exiv2::flashBias }, { "Flash bias", Exiv2::flashBias },
{ "Exposure mode", Exiv2::exposureMode }, { "Exposure mode", Exiv2::exposureMode },
{ "Scene mode", Exiv2::sceneMode }, { "Scene mode", Exiv2::sceneMode },
{ "Macro mode", Exiv2::macroMode }, { "Macro mode", Exiv2::macroMode },
{ "Image quality", Exiv2::imageQuality }, { "Image quality", Exiv2::imageQuality },
{ "White balance", Exiv2::whiteBalance }, { "White balance", Exiv2::whiteBalance },
{ "Lens name", Exiv2::lensName } { "Lens name", Exiv2::lensName },
{ "Saturation", Exiv2::saturation },
{ "Sharpness", Exiv2::sharpness },
{ "Contrast", Exiv2::contrast },
{ "Scene capture type", Exiv2::sceneCaptureType },
{ "Metering mode", Exiv2::meteringMode },
{ "Camera make", Exiv2::make },
{ "Camera model", Exiv2::model },
{ "Exposure time", Exiv2::exposureTime },
{ "FNumber", Exiv2::fNumber },
{ "Subject distance", Exiv2::subjectDistance },
{ "Camera serial number", Exiv2::serialNumber }
}; };
int main(int argc, char **argv) int main(int argc, char **argv)

@ -284,4 +284,94 @@ namespace Exiv2 {
}; };
return findMetadatum(ed, keys, EXV_COUNTOF(keys)); return findMetadatum(ed, keys, EXV_COUNTOF(keys));
} }
ExifData::const_iterator meteringMode(const ExifData& ed)
{
static const char* keys[] = {
"Exif.Photo.MeteringMode",
"Exif.Image.MeteringMode",
"Exif.CanonCs.MeteringMode"
};
return findMetadatum(ed, keys, EXV_COUNTOF(keys));
}
ExifData::const_iterator make(const ExifData& ed)
{
static const char* keys[] = {
"Exif.Image.Make"
};
return findMetadatum(ed, keys, EXV_COUNTOF(keys));
}
ExifData::const_iterator model(const ExifData& ed)
{
static const char* keys[] = {
"Exif.Image.Model"
};
return findMetadatum(ed, keys, EXV_COUNTOF(keys));
}
ExifData::const_iterator exposureTime(const ExifData& ed)
{
static const char* keys[] = {
"Exif.Photo.ExposureTime",
"Exif.Image.ExposureTime"
};
return findMetadatum(ed, keys, EXV_COUNTOF(keys));
}
ExifData::const_iterator fNumber(const ExifData& ed)
{
static const char* keys[] = {
"Exif.Photo.FNumber",
"Exif.Image.FNumber"
};
return findMetadatum(ed, keys, EXV_COUNTOF(keys));
}
ExifData::const_iterator subjectDistance(const ExifData& ed)
{
static const char* keys[] = {
"Exif.Photo.SubjectDistance",
"Exif.Image.SubjectDistance",
"Exif.CanonSi.SubjectDistance",
"Exif.MinoltaCsNew.FocusDistance",
"Exif.Nikon1.FocusDistance",
"Exif.Nikon3.FocusDistance",
"Exif.NikonLd2.FocusDistance",
"Exif.NikonLd3.FocusDistance",
"Exif.Olympus.FocusDistance",
"Exif.OlympusFi.FocusDistance"
};
return findMetadatum(ed, keys, EXV_COUNTOF(keys));
}
ExifData::const_iterator serialNumber(const ExifData& ed)
{
static const char* keys[] = {
"Exif.Image.CameraSerialNumber",
"Exif.Canon.SerialNumber",
"Exif.Nikon3.SerialNumber",
"Exif.Nikon3.SerialNO",
"Exif.Fujifilm.SerialNumber",
"Exif.Olympus.SerialNumber",
"Exif.Sigma.SerialNumber"
};
return findMetadatum(ed, keys, EXV_COUNTOF(keys));
}
ExifData::const_iterator focalLength(const ExifData& ed)
{
static const char* keys[] = {
"Exif.Photo.FocalLength",
"Exif.Image.FocalLength",
"Exif.Canon.FocalLength",
"Exif.NikonLd2.FocalLength",
"Exif.NikonLd3.FocalLength",
"Exif.MinoltaCsNew.FocalLength",
"Exif.Pentax.FocalLength"
};
return findMetadatum(ed, keys, EXV_COUNTOF(keys));
}
} // namespace Exiv2 } // namespace Exiv2

@ -64,6 +64,22 @@ namespace Exiv2 {
EXIV2API ExifData::const_iterator contrast(const ExifData& ed); EXIV2API ExifData::const_iterator contrast(const ExifData& ed);
//! Return the scene capture type //! Return the scene capture type
EXIV2API ExifData::const_iterator sceneCaptureType(const ExifData& ed); EXIV2API ExifData::const_iterator sceneCaptureType(const ExifData& ed);
//! Return the metering mode setting
EXIV2API ExifData::const_iterator meteringMode(const ExifData& ed);
//! Return the camera make
EXIV2API ExifData::const_iterator make(const ExifData& ed);
//! Return the camera model
EXIV2API ExifData::const_iterator model(const ExifData& ed);
//! Return the exposure time
EXIV2API ExifData::const_iterator exposureTime(const ExifData& ed);
//! Return the F number
EXIV2API ExifData::const_iterator fNumber(const ExifData& ed);
//! Return the subject distance
EXIV2API ExifData::const_iterator subjectDistance(const ExifData& ed);
//! Return the camera serial number
EXIV2API ExifData::const_iterator serialNumber(const ExifData& ed);
//! Return the focal lenght setting
EXIV2API ExifData::const_iterator focalLength(const ExifData& ed);
} // namespace Exiv2 } // namespace Exiv2

Loading…
Cancel
Save