diff --git a/rtengine/histmatching.cc b/rtengine/histmatching.cc index 9128aa75e..87eb672c8 100644 --- a/rtengine/histmatching.cc +++ b/rtengine/histmatching.cc @@ -171,6 +171,7 @@ void RawImageSource::getAutoMatchedToneCurve(std::vector &outCurve) ProcParams neutral; neutral.raw.bayersensor.method = RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::FAST); neutral.raw.xtranssensor.method = RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::FAST); + neutral.icm.output = "sRGB"; std::unique_ptr source; { diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h index 83ffc12d6..8204516fd 100644 --- a/rtengine/improcfun.h +++ b/rtengine/improcfun.h @@ -348,7 +348,7 @@ public: void localContrast(LabImage *lab); void colorToningLabGrid(LabImage *lab, int xstart, int xend, int ystart, int yend, bool MultiThread); - Image8* lab2rgb (LabImage* lab, int cx, int cy, int cw, int ch, const procparams::ColorManagementParams &icm); + Image8* lab2rgb (LabImage* lab, int cx, int cy, int cw, int ch, const procparams::ColorManagementParams &icm, bool consider_histogram_settings=true); Imagefloat* lab2rgbOut (LabImage* lab, int cx, int cy, int cw, int ch, const procparams::ColorManagementParams &icm, GammaValues *ga = nullptr); // CieImage *ciec; diff --git a/rtengine/iplab2rgb.cc b/rtengine/iplab2rgb.cc index ba2fe6ffb..27d9982fb 100644 --- a/rtengine/iplab2rgb.cc +++ b/rtengine/iplab2rgb.cc @@ -122,7 +122,7 @@ void ImProcFunctions::lab2monitorRgb (LabImage* lab, Image8* image) // // If output profile used, divide by 327.68 then apply the "profile" profile (eventually with a standard gamma) // otherwise divide by 327.68, convert to xyz and apply the RGB transform, before converting with gamma2curve -Image8* ImProcFunctions::lab2rgb (LabImage* lab, int cx, int cy, int cw, int ch, const procparams::ColorManagementParams &icm) +Image8* ImProcFunctions::lab2rgb (LabImage* lab, int cx, int cy, int cw, int ch, const procparams::ColorManagementParams &icm, bool consider_histogram_settings) { //gamutmap(lab); @@ -147,7 +147,7 @@ Image8* ImProcFunctions::lab2rgb (LabImage* lab, int cx, int cy, int cw, int ch, bool standard_gamma; - if(settings->HistogramWorking) { + if(settings->HistogramWorking && consider_histogram_settings) { profile = icm.working; standard_gamma = true; } else { diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc index 1a8d18897..2dcb6b9e0 100644 --- a/rtengine/rtthumbnail.cc +++ b/rtengine/rtthumbnail.cc @@ -137,6 +137,7 @@ extern Options options; namespace rtengine { + using namespace procparams; Thumbnail* Thumbnail::loadFromImage (const Glib::ustring& fname, int &w, int &h, int fixwh, double wbEq, bool inspectorMode) @@ -1303,7 +1304,7 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, eSensorT readyImg = new Image8 (fw, fh); ipf.lab2monitorRgb (labView, readyImg); } else { - readyImg = ipf.lab2rgb(labView, 0, 0, fw, fh, params.icm); + readyImg = ipf.lab2rgb(labView, 0, 0, fw, fh, params.icm, false); } delete labView; delete baseImg;