diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index a489bd681..bc0972092 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -813,7 +813,8 @@ void Crop::update(int todo) const bool needstransform = parent->ipf.needsTransform(skips(parent->fw, skip), skips(parent->fh, skip), parent->imgsrc->getRotateDegree(), parent->imgsrc->getMetaData()); // transform - if (needstransform || ((todo & (M_TRANSFORM | M_RGBCURVE)) && params.dirpyrequalizer.cbdlMethod == "bef" && params.dirpyrequalizer.enabled && !params.colorappearance.enabled)) { + // if (needstransform || ((todo & (M_TRANSFORM | M_RGBCURVE)) && params.dirpyrequalizer.cbdlMethod == "bef" && params.dirpyrequalizer.enabled && !params.colorappearance.enabled)) { + if (needstransform || ((todo & (M_TRANSFORM | M_RGBCURVE)) && params.dirpyrequalizer.cbdlMethod == "bef" && params.dirpyrequalizer.enabled && params.colorappearance.modelmethod != "02")) { if (!transCrop) { transCrop = new Imagefloat(cropw, croph); } @@ -834,7 +835,8 @@ void Crop::update(int todo) transCrop = nullptr; } - if ((todo & (M_TRANSFORM | M_RGBCURVE)) && params.dirpyrequalizer.cbdlMethod == "bef" && params.dirpyrequalizer.enabled && !params.colorappearance.enabled) { + // if ((todo & (M_TRANSFORM | M_RGBCURVE)) && params.dirpyrequalizer.cbdlMethod == "bef" && params.dirpyrequalizer.enabled && !params.colorappearance.enabled) { + if ((todo & (M_TRANSFORM | M_RGBCURVE)) && params.dirpyrequalizer.cbdlMethod == "bef" && params.dirpyrequalizer.enabled && params.colorappearance.modelmethod != "02") { const int W = baseCrop->getWidth(); const int H = baseCrop->getHeight(); @@ -1329,21 +1331,24 @@ void Crop::update(int todo) parent->ipf.vibrance(labnCrop, params.vibrance, params.toneCurve.hrenabled, params.icm.workingProfile); parent->ipf.labColorCorrectionRegions(labnCrop); - if ((params.colorappearance.enabled && !params.colorappearance.tonecie) || (!params.colorappearance.enabled)) { + // if ((params.colorappearance.enabled && !params.colorappearance.tonecie) || (!params.colorappearance.enabled)) { + if ((params.colorappearance.enabled && !params.colorappearance.tonecie) || (params.colorappearance.modelmethod != "02")) { parent->ipf.EPDToneMap(labnCrop, 0, skip); } //parent->ipf.EPDToneMap(labnCrop, 5, 1); //Go with much fewer than normal iterates for fast redisplay. // for all treatments Defringe, Sharpening, Contrast detail , Microcontrast they are activated if "CIECAM" function are disabled if (skip == 1) { - if ((params.colorappearance.enabled && !settings->autocielab) || (!params.colorappearance.enabled)) { + // if ((params.colorappearance.enabled && !settings->autocielab) || (!params.colorappearance.enabled)) { + if ((params.colorappearance.enabled && !settings->autocielab) || (params.colorappearance.modelmethod != "02")) { parent->ipf.impulsedenoise(labnCrop); parent->ipf.defringe(labnCrop); } parent->ipf.MLsharpen(labnCrop); - if ((params.colorappearance.enabled && !settings->autocielab) || (!params.colorappearance.enabled)) { + // if ((params.colorappearance.enabled && !settings->autocielab) || (!params.colorappearance.enabled)) { + if ((params.colorappearance.enabled && !settings->autocielab) || (params.colorappearance.modelmethod != "02")) { parent->ipf.MLmicrocontrast(labnCrop); parent->ipf.sharpening(labnCrop, params.sharpening, parent->sharpMask); } @@ -1352,7 +1357,8 @@ void Crop::update(int todo) // if (skip==1) { if (params.dirpyrequalizer.cbdlMethod == "aft") { - if (((params.colorappearance.enabled && !settings->autocielab) || (!params.colorappearance.enabled))) { + // if (((params.colorappearance.enabled && !settings->autocielab) || (!params.colorappearance.enabled))) { + if (((params.colorappearance.enabled && !settings->autocielab) || (params.colorappearance.modelmethod != "02"))) { parent->ipf.dirpyrequalizer(labnCrop, skip); // parent->ipf.Lanczoslab (labnCrop,labnCrop , 1.f/skip); } diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 604d353c4..8a6fd06e4 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -860,7 +860,8 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) bool needstransform = ipf.needsTransform(fw, fh, imgsrc->getRotateDegree(), imgsrc->getMetaData()); - if ((needstransform || ((todo & (M_TRANSFORM | M_RGBCURVE)) && params->dirpyrequalizer.cbdlMethod == "bef" && params->dirpyrequalizer.enabled && !params->colorappearance.enabled))) { + // if ((needstransform || ((todo & (M_TRANSFORM | M_RGBCURVE)) && params->dirpyrequalizer.cbdlMethod == "bef" && params->dirpyrequalizer.enabled && !params->colorappearance.enabled))) { + if ((needstransform || ((todo & (M_TRANSFORM | M_RGBCURVE)) && params->dirpyrequalizer.cbdlMethod == "bef" && params->dirpyrequalizer.enabled && params->colorappearance.modelmethod != "02"))) { // Forking the image assert(oprevi); Imagefloat *op = oprevi; @@ -882,7 +883,8 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) } } - if ((todo & (M_TRANSFORM | M_RGBCURVE)) && params->dirpyrequalizer.cbdlMethod == "bef" && params->dirpyrequalizer.enabled && !params->colorappearance.enabled) { + // if ((todo & (M_TRANSFORM | M_RGBCURVE)) && params->dirpyrequalizer.cbdlMethod == "bef" && params->dirpyrequalizer.enabled && !params->colorappearance.enabled) { + if ((todo & (M_TRANSFORM | M_RGBCURVE)) && params->dirpyrequalizer.cbdlMethod == "bef" && params->dirpyrequalizer.enabled && params->colorappearance.modelmethod != "02") { const int W = oprevi->getWidth(); const int H = oprevi->getHeight(); LabImage labcbdl(W, H); @@ -1755,12 +1757,14 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) ipf.vibrance(nprevl, params->vibrance, params->toneCurve.hrenabled, params->icm.workingProfile); ipf.labColorCorrectionRegions(nprevl); - if ((params->colorappearance.enabled && !params->colorappearance.tonecie) || (!params->colorappearance.enabled)) { + // if ((params->colorappearance.enabled && !params->colorappearance.tonecie) || (!params->colorappearance.enabled)) { + if ((params->colorappearance.enabled && !params->colorappearance.tonecie) || (params->colorappearance.modelmethod != "02")) { ipf.EPDToneMap(nprevl, 0, scale); } if (params->dirpyrequalizer.cbdlMethod == "aft") { - if (((params->colorappearance.enabled && !settings->autocielab) || (!params->colorappearance.enabled))) { + // if (((params->colorappearance.enabled && !settings->autocielab) || (!params->colorappearance.enabled))) { + if (((params->colorappearance.enabled && !settings->autocielab) || (params->colorappearance.modelmethod != "02"))) { ipf.dirpyrequalizer(nprevl, scale); } } diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc index 1691912a1..1816a7470 100644 --- a/rtengine/rtthumbnail.cc +++ b/rtengine/rtthumbnail.cc @@ -1528,7 +1528,8 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, eSensorT - if ((params.colorappearance.enabled && !params.colorappearance.tonecie) || !params.colorappearance.enabled) { + // if ((params.colorappearance.enabled && !params.colorappearance.tonecie) || !params.colorappearance.enabled) { + if ((params.colorappearance.enabled && !params.colorappearance.tonecie) || params.colorappearance.modelmethod != "02") { ipf.EPDToneMap (labView, 5, 6); } diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index e7d13884c..241d628e9 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -1004,7 +1004,7 @@ private: } } } - + //colorappearance.modelmethod == "02" bool execcam = false; //execcam => work around for pre-ciecam in LA: about 0.1 second @@ -1523,7 +1523,8 @@ private: ipf.chromiLuminanceCurve(nullptr, 1, labView, labView, curve1, curve2, satcurve, lhskcurve, clcurve, lumacurve, utili, autili, butili, ccutili, cclutili, clcutili, dummy, dummy); - if ((params.colorappearance.enabled && !params.colorappearance.tonecie) || (!params.colorappearance.enabled)) { + // if ((params.colorappearance.enabled && !params.colorappearance.tonecie) || (!params.colorappearance.enabled)) { + if ((params.colorappearance.enabled && !params.colorappearance.tonecie) || (params.colorappearance.modelmethod != "02")) { ipf.EPDToneMap(labView, 0, 1); } @@ -1533,7 +1534,8 @@ private: // for all treatments Defringe, Sharpening, Contrast detail ,Microcontrast they are activated if "CIECAM" function are disabled - if ((params.colorappearance.enabled && !settings->autocielab) || (!params.colorappearance.enabled)) { + // if ((params.colorappearance.enabled && !settings->autocielab) || (!params.colorappearance.enabled)) { + if ((params.colorappearance.enabled && !settings->autocielab) || (params.colorappearance.modelmethod != "02")) { ipf.impulsedenoise(labView); ipf.defringe(labView); } @@ -1543,12 +1545,14 @@ private: } if (params.sharpenMicro.enabled) { - if ((params.colorappearance.enabled && !settings->autocielab) || (!params.colorappearance.enabled)) { + // if ((params.colorappearance.enabled && !settings->autocielab) || (!params.colorappearance.enabled)) { + if ((params.colorappearance.enabled && !settings->autocielab) || (params.colorappearance.modelmethod != "02")) { ipf.MLmicrocontrast(labView); //!params.colorappearance.sharpcie } } - if (((params.colorappearance.enabled && !settings->autocielab) || (!params.colorappearance.enabled)) && params.sharpening.enabled) { + // if (((params.colorappearance.enabled && !settings->autocielab) || (!params.colorappearance.enabled)) && params.sharpening.enabled) { + if (((params.colorappearance.enabled && !settings->autocielab) || (params.colorappearance.modelmethod != "02")) && params.sharpening.enabled) { ipf.sharpening(labView, params.sharpening); } @@ -1557,7 +1561,8 @@ private: // directional pyramid wavelet if (params.dirpyrequalizer.cbdlMethod == "aft") { - if ((params.colorappearance.enabled && !settings->autocielab) || !params.colorappearance.enabled) { + // if ((params.colorappearance.enabled && !settings->autocielab) || !params.colorappearance.enabled) { + if ((params.colorappearance.enabled && !settings->autocielab) || params.colorappearance.modelmethod != "02") { ipf.dirpyrequalizer(labView, 1); //TODO: this is the luminance tonecurve, not the RGB one } } @@ -1935,7 +1940,8 @@ private: } } - bool bwonly = params.blackwhite.enabled && !params.colorToning.enabled && !autili && !butili && !params.colorappearance.enabled; + // bool bwonly = params.blackwhite.enabled && !params.colorToning.enabled && !autili && !butili && !params.colorappearance.enabled; + bool bwonly = params.blackwhite.enabled && !params.colorToning.enabled && !autili && !butili && params.colorappearance.modelmethod != "02"; ///////////// Custom output gamma has been removed, the user now has to create ///////////// a new output profile with the ICCProfileCreator