merge with dev
This commit is contained in:
@@ -306,6 +306,38 @@ FrameData::FrameData(rtexif::TagDirectory* frameRootDir_, rtexif::TagDirectory*
|
||||
}
|
||||
|
||||
if (lens == "Unknown") {
|
||||
const auto lens_from_make_and_model =
|
||||
[this, exif]() -> bool
|
||||
{
|
||||
if (!exif) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const rtexif::Tag* const lens_model = exif->getTag(0xA434);
|
||||
|
||||
if (lens_model) {
|
||||
const rtexif::Tag* const lens_make = exif->getTag(0xA433);
|
||||
const std::string make =
|
||||
lens_make
|
||||
? lens_make->valueToString()
|
||||
: std::string();
|
||||
const std::string model = lens_model->valueToString();
|
||||
|
||||
if (!model.empty()) {
|
||||
lens = make;
|
||||
|
||||
if (!lens.empty()) {
|
||||
lens += ' ';
|
||||
}
|
||||
|
||||
lens += model;
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
if (mnote) {
|
||||
|
||||
@@ -412,11 +444,15 @@ FrameData::FrameData(rtexif::TagDirectory* frameRootDir_, rtexif::TagDirectory*
|
||||
rtexif::Tag *lt = mnote->getTag("LensType");
|
||||
|
||||
if (lt) {
|
||||
std::string ldata = lt->valueToString();
|
||||
if (lt->toInt()) {
|
||||
std::string ldata = lt->valueToString ();
|
||||
|
||||
if (ldata.size() > 1) {
|
||||
found = true;
|
||||
lens = "Canon " + ldata;
|
||||
if (ldata.size() > 1) {
|
||||
found = true;
|
||||
lens = "Canon " + ldata;
|
||||
}
|
||||
} else {
|
||||
found = lens_from_make_and_model();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -446,7 +482,13 @@ FrameData::FrameData(rtexif::TagDirectory* frameRootDir_, rtexif::TagDirectory*
|
||||
}
|
||||
|
||||
if (mnote->getTag("LensType")) {
|
||||
lens = mnote->getTag("LensType")->valueToString();
|
||||
lens = mnote->getTag ("LensType")->valueToString();
|
||||
if (!mnote->getTag("LensType")->toInt()) {
|
||||
// try to find something better than "M-42 or No Lens"
|
||||
lens_from_make_and_model();
|
||||
}
|
||||
} else {
|
||||
lens_from_make_and_model();
|
||||
}
|
||||
|
||||
// Try to get the FocalLength from the LensInfo structure, where length below 10mm will be correctly set
|
||||
@@ -490,9 +532,7 @@ FrameData::FrameData(rtexif::TagDirectory* frameRootDir_, rtexif::TagDirectory*
|
||||
}
|
||||
} else if (exif->getTag("DNGLensInfo")) {
|
||||
lens = exif->getTag("DNGLensInfo")->valueToString();
|
||||
} else if (exif->getTag("LensModel")) {
|
||||
lens = exif->getTag("LensModel")->valueToString();
|
||||
} else if (exif->getTag("LensInfo")) {
|
||||
} else if (!lens_from_make_and_model() && exif->getTag ("LensInfo")) {
|
||||
lens = exif->getTag("LensInfo")->valueToString();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user