diff --git a/rtdata/iccprofiles/output/RTv2_Medium.icc b/rtdata/iccprofiles/output/RTv2_Medium.icc index 065c43bc4..454f40d90 100644 Binary files a/rtdata/iccprofiles/output/RTv2_Medium.icc and b/rtdata/iccprofiles/output/RTv2_Medium.icc differ diff --git a/rtengine/iplab2rgb.cc b/rtengine/iplab2rgb.cc index b2fd20cb8..9094f3526 100644 --- a/rtengine/iplab2rgb.cc +++ b/rtengine/iplab2rgb.cc @@ -367,8 +367,12 @@ Imagefloat* ImProcFunctions::lab2rgbOut(LabImage* lab, int cx, int cy, int cw, i gammaParams[6] = 0.0; cmsToneCurve* GammaTRC[3]; - - GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildParametricToneCurve(nullptr, 5, gammaParams); //5 = smoother than 4 + if(slopetag == 0.) { + GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildGamma(NULL, gammatag); + } + else { + GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildParametricToneCurve(nullptr, 5, gammaParams); //5 = smoother than 4 + } cmsWriteTag(oprof, cmsSigRedTRCTag, GammaTRC[0]); cmsWriteTag(oprof, cmsSigGreenTRCTag, GammaTRC[1]); cmsWriteTag(oprof, cmsSigBlueTRCTag, GammaTRC[2]); diff --git a/rtgui/iccprofilecreator.cc b/rtgui/iccprofilecreator.cc index 03d46471d..97d22ca0b 100644 --- a/rtgui/iccprofilecreator.cc +++ b/rtgui/iccprofilecreator.cc @@ -1310,6 +1310,8 @@ void ICCProfileCreator::savePressed() GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildGamma(NULL, 1.80078125); } else if (gammaPreset == "linear_g1.0") { GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildGamma(NULL, 1.0); + } else if(gammaPreset == "Custom" && slope == 0.0) { + GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildGamma(NULL, gamma); } else { GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildParametricToneCurve(nullptr, 5, ga); }