diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index 41c6e962b..95fca7263 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -2140,7 +2140,7 @@ void ImProcFunctions::rgbProc (Imagefloat* working, LabImage* lab, EditBuffer *e const float comp = (max(0.0, expcomp) + 1.0)*hlcompr/100.0; const float shoulder = ((65536.0/max(1.0f,exp_scale))*(hlcomprthresh/200.0))+0.1; const float hlrange = 65536.0-shoulder; - + const bool isProPhoto = (params->icm.working == "ProPhoto"); // extracting datas from 'params' to avoid cache flush (to be confirmed) ToneCurveParams::eTCModeId curveMode = params->toneCurve.curveMode; ToneCurveParams::eTCModeId curveMode2 = params->toneCurve.curveMode2; @@ -2666,6 +2666,23 @@ void ImProcFunctions::rgbProc (Imagefloat* working, LabImage* lab, EditBuffer *e } } + if (isProPhoto) { // this is a hack to avoid the blue=>black bug (Issue 2141) + for (int i=istart,ti=0; i