Merge pull request #4908 from Beep6581/getridoffeahistogramcache

Get rid of aehistogram files in RT cache.

Merged to get more tests. Issue and pr stay open for a while
This commit is contained in:
Ingo Weyrich
2018-10-31 21:56:00 +01:00
committed by GitHub
4 changed files with 87 additions and 21 deletions

View File

@@ -279,6 +279,11 @@ Thumbnail* Thumbnail::loadFromImage (const Glib::ustring& fname, int &w, int &h,
printf ("loadFromImage: Unsupported image type \"%s\"!\n", img->getType());
}
ProcParams paramsForAutoExp; // Dummy for constructor
ImProcFunctions ipf (&paramsForAutoExp, false);
ipf.getAutoExp (tpp->aeHistogram, tpp->aeHistCompression, 0.02, tpp->aeExposureCompensation, tpp->aeLightness, tpp->aeContrast, tpp->aeBlack, tpp->aeHighlightCompression, tpp->aeHighlightCompressionThreshold);
tpp->aeValid = true;
if (n > 0) {
ColorTemp cTemp;
@@ -923,6 +928,11 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati
}
}
}
ProcParams paramsForAutoExp; // Dummy for constructor
ImProcFunctions ipf (&paramsForAutoExp, false);
ipf.getAutoExp (tpp->aeHistogram, tpp->aeHistCompression, 0.02, tpp->aeExposureCompensation, tpp->aeLightness, tpp->aeContrast, tpp->aeBlack, tpp->aeHighlightCompression, tpp->aeHighlightCompressionThreshold);
tpp->aeValid = true;
if (ri->get_colors() == 1) {
pixSum[0] = pixSum[1] = pixSum[2] = 1.;
n[0] = n[1] = n[2] = 1;
@@ -993,6 +1003,13 @@ Thumbnail::Thumbnail () :
wbEqual (-1.0),
wbTempBias (0.0),
aeHistCompression (3),
aeValid(false),
aeExposureCompensation(0.0),
aeLightness(0),
aeContrast(0),
aeBlack(0),
aeHighlightCompression(0),
aeHighlightCompressionThreshold(0),
embProfileLength (0),
embProfileData (nullptr),
embProfile (nullptr),
@@ -1223,8 +1240,17 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, eSensorT
int hlcompr = params.toneCurve.hlcompr;
int hlcomprthresh = params.toneCurve.hlcomprthresh;
if (params.toneCurve.autoexp && aeHistogram) {
ipf.getAutoExp (aeHistogram, aeHistCompression, params.toneCurve.clip, expcomp, bright, contr, black, hlcompr, hlcomprthresh);
if (params.toneCurve.autoexp) {
if (aeValid) {
expcomp = aeExposureCompensation;
bright = aeLightness;
contr = aeContrast;
black = aeBlack;
hlcompr = aeHighlightCompression;
hlcomprthresh = aeHighlightCompressionThreshold;
} else if (aeHistogram) {
ipf.getAutoExp (aeHistogram, aeHistCompression, 0.02, expcomp, bright, contr, black, hlcompr, hlcomprthresh);
}
}
LUTf curve1 (65536);
@@ -1991,6 +2017,38 @@ bool Thumbnail::readData (const Glib::ustring& fname)
aeHistCompression = keyFile.get_integer ("LiveThumbData", "AEHistCompression");
}
aeValid = true;
if (keyFile.has_key ("LiveThumbData", "AEExposureCompensation")) {
aeExposureCompensation = keyFile.get_double ("LiveThumbData", "AEExposureCompensation");
} else {
aeValid = false;
}
if (keyFile.has_key ("LiveThumbData", "AELightness")) {
aeLightness = keyFile.get_integer ("LiveThumbData", "AELightness");
} else {
aeValid = false;
}
if (keyFile.has_key ("LiveThumbData", "AEContrast")) {
aeContrast = keyFile.get_integer ("LiveThumbData", "AEContrast");
} else {
aeValid = false;
}
if (keyFile.has_key ("LiveThumbData", "AEBlack")) {
aeBlack = keyFile.get_integer ("LiveThumbData", "AEBlack");
} else {
aeValid = false;
}
if (keyFile.has_key ("LiveThumbData", "AEHighlightCompression")) {
aeHighlightCompression = keyFile.get_integer ("LiveThumbData", "AEHighlightCompression");
} else {
aeValid = false;
}
if (keyFile.has_key ("LiveThumbData", "AEHighlightCompressionThreshold")) {
aeHighlightCompressionThreshold = keyFile.get_integer ("LiveThumbData", "AEHighlightCompressionThreshold");
} else {
aeValid = false;
}
if (keyFile.has_key ("LiveThumbData", "RedMultiplier")) {
redMultiplier = keyFile.get_double ("LiveThumbData", "RedMultiplier");
}
@@ -2064,7 +2122,12 @@ bool Thumbnail::writeData (const Glib::ustring& fname)
keyFile.set_double ("LiveThumbData", "RedAWBMul", redAWBMul);
keyFile.set_double ("LiveThumbData", "GreenAWBMul", greenAWBMul);
keyFile.set_double ("LiveThumbData", "BlueAWBMul", blueAWBMul);
keyFile.set_integer ("LiveThumbData", "AEHistCompression", aeHistCompression);
keyFile.set_double ("LiveThumbData", "AEExposureCompensation", aeExposureCompensation);
keyFile.set_integer ("LiveThumbData", "AELightness", aeLightness);
keyFile.set_integer ("LiveThumbData", "AEContrast", aeContrast);
keyFile.set_integer ("LiveThumbData", "AEBlack", aeBlack);
keyFile.set_integer ("LiveThumbData", "AEHighlightCompression", aeHighlightCompression);
keyFile.set_integer ("LiveThumbData", "AEHighlightCompressionThreshold", aeHighlightCompressionThreshold);
keyFile.set_double ("LiveThumbData", "RedMultiplier", redMultiplier);
keyFile.set_double ("LiveThumbData", "GreenMultiplier", greenMultiplier);
keyFile.set_double ("LiveThumbData", "BlueMultiplier", blueMultiplier);