|
|
|
@ -5,14 +5,11 @@
|
|
|
|
|
#include <iomanip>
|
|
|
|
|
#include <iostream>
|
|
|
|
|
|
|
|
|
|
using EasyAccessFct = Exiv2::ExifData::const_iterator (*)(const Exiv2::ExifData&);
|
|
|
|
|
using EasyAccessFct = std::function<Exiv2::ExifData::const_iterator(const Exiv2::ExifData&)>;
|
|
|
|
|
using EasyAccess = std::pair<const char*, EasyAccessFct>;
|
|
|
|
|
|
|
|
|
|
struct EasyAccess {
|
|
|
|
|
const char* label_;
|
|
|
|
|
EasyAccessFct findFct_;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const EasyAccess easyAccess[] = {{"Orientation", Exiv2::orientation},
|
|
|
|
|
static const EasyAccess easyAccess[] = {
|
|
|
|
|
{"Orientation", Exiv2::orientation},
|
|
|
|
|
{"ISO speed", Exiv2::isoSpeed},
|
|
|
|
|
{"Date & time original", Exiv2::dateTimeOriginal},
|
|
|
|
|
{"Flash bias", Exiv2::flashBias},
|
|
|
|
@ -45,7 +42,8 @@ static const EasyAccess easyAccess[] = {{"Orientation", Exiv2::orientation},
|
|
|
|
|
{"Flash energy", Exiv2::flashEnergy},
|
|
|
|
|
{"Exposure index", Exiv2::exposureIndex},
|
|
|
|
|
{"Sensing method", Exiv2::sensingMethod},
|
|
|
|
|
{"AF point", Exiv2::afPoint}};
|
|
|
|
|
{"AF point", Exiv2::afPoint},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
int main(int argc, char** argv) {
|
|
|
|
|
try {
|
|
|
|
@ -64,9 +62,9 @@ int main(int argc, char** argv) {
|
|
|
|
|
image->readMetadata();
|
|
|
|
|
Exiv2::ExifData& ed = image->exifData();
|
|
|
|
|
|
|
|
|
|
for (auto&& ea : easyAccess) {
|
|
|
|
|
auto pos = ea.findFct_(ed);
|
|
|
|
|
std::cout << std::setw(21) << std::left << ea.label_;
|
|
|
|
|
for (auto&& [label, fct] : easyAccess) {
|
|
|
|
|
auto pos = fct(ed);
|
|
|
|
|
std::cout << std::setw(21) << std::left << label;
|
|
|
|
|
if (pos != ed.end()) {
|
|
|
|
|
std::cout << " (" << std::setw(35) << pos->key() << ") : " << pos->print(&ed) << "\n";
|
|
|
|
|
} else {
|
|
|
|
|