From f9396f2a4b5116fa3aa406dcc98fb875babc4e12 Mon Sep 17 00:00:00 2001 From: Alberto Griggio Date: Thu, 29 Mar 2018 14:28:54 +0200 Subject: [PATCH] avoid magenta highlights for thumbnails when higlight reconstruction is enabled --- rtengine/rtthumbnail.cc | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc index 971e8cf2a..0adf4ce84 100644 --- a/rtengine/rtthumbnail.cc +++ b/rtengine/rtthumbnail.cc @@ -1131,12 +1131,17 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, eSensorT for (int j = 0; j < rwidth; j++) { float red = baseImg->r (i, j) * rmi; - baseImg->r (i, j) = /*CLIP*/ (red); float green = baseImg->g (i, j) * gmi; - baseImg->g (i, j) = /*CLIP*/ (green); float blue = baseImg->b (i, j) * bmi; - baseImg->b (i, j) = /*CLIP*/ (blue); - + + // avoid magenta highlights if highlight recovery is enabled + if (params.toneCurve.hrenabled && red > MAXVALF && blue > MAXVALF) { + baseImg->r(i, j) = baseImg->g(i, j) = baseImg->b(i, j) = CLIP((red + green + blue) / 3.f); + } else { + baseImg->r(i, j) = CLIP(red); + baseImg->g(i, j) = CLIP(green); + baseImg->b(i, j) = CLIP(blue); + } } }