From 8721b08346116683a07c779f7eb09bf448c4f1f1 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Wed, 31 Jan 2018 20:59:32 +0100 Subject: [PATCH] Show correct rgb values in histogram, navigator and colour picker when using 'Rec2020' --- rtengine/color.cc | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/rtengine/color.cc b/rtengine/color.cc index b62f9a170..3be412b6d 100644 --- a/rtengine/color.cc +++ b/rtengine/color.cc @@ -394,6 +394,24 @@ void Color::rgb2lab01 (const Glib::ustring &profile, const Glib::ustring &profil r = pow_F(r, 1.8f); g = pow_F(g, 1.8f); b = pow_F(b, 1.8f); + } else if (profile == "Rec2020") { + if (r > 0.0795f) { + r = pow_F(((r + 0.0954f) / 1.0954f), 2.2f); + } else { + r /= 4.5f; + } + + if (g > 0.0795f) { + g = pow_F(((g + 0.0954f) / 1.0954f), 2.2f); + } else { + g /= 4.5f; + } + + if (b > 0.0795f) { + b = pow_F(((b + 0.0954f) / 1.0954f), 2.2f); + } else { + b /= 4.5f; + } } else { // apply inverse gamma 2.2 r = pow_F(r, 2.2f); g = pow_F(g, 2.2f); @@ -428,7 +446,7 @@ void Color::rgb2lab01 (const Glib::ustring &profile, const Glib::ustring &profil } else { b /= 12.92f; } - } else if (profile == "RT_sRGB_gBT709" || profile == "RT_Large_gBT709") { + } else if (profile == "RT_sRGB_gBT709" || profile == "RT_Large_gBT709" || profile == "Rec2020") { if (r > 0.0795f) { r = pow_F(((r + 0.0954f) / 1.0954f), 2.2f); } else {