diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais index b5a1434bc..e90a61b41 100644 --- a/rtdata/languages/Francais +++ b/rtdata/languages/Francais @@ -703,6 +703,9 @@ HISTORY_MSG_472;PS - Adoucir les transitions HISTORY_MSG_473;PS - Utiliser LMMSE HISTORY_MSG_474;PS - Égaliser HISTORY_MSG_475;PS - Égaliser par canal +HISTORY_MSG_488;Compression tonale HDR +HISTORY_MSG_489;CT HDR - Seuil +HISTORY_MSG_490;CT HDR - Quantité HISTORY_NEWSNAPSHOT;Ajouter HISTORY_NEWSNAPSHOT_TOOLTIP;Raccourci: Alt-s HISTORY_SNAPSHOT;Capture @@ -1894,8 +1897,8 @@ TP_SHARPENMICRO_LABEL;Microcontraste TP_SHARPENMICRO_MATRIX;Matrice 3×3 au lieu de 5×5 TP_SHARPENMICRO_UNIFORMITY;Uniformité TP_TM_FATTAL_LABEL;Compression Tonale HDR (Fattal02) -TP_TM_FATTAL_ALPHA;Seuil (Alpha) -TP_TM_FATTAL_BETA;Quantité (Beta) +TP_TM_FATTAL_THRESHOLD;Seuil +TP_TM_FATTAL_AMOUNT;Quantité TP_VIBRANCE_AVOIDCOLORSHIFT;Éviter les dérives de teinte TP_VIBRANCE_CURVEEDITOR_SKINTONES;TT TP_VIBRANCE_CURVEEDITOR_SKINTONES_LABEL;Tons chair diff --git a/rtdata/languages/default b/rtdata/languages/default index a9fe2414e..f7c59e633 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -720,8 +720,8 @@ HISTORY_MSG_485;Lens Correction HISTORY_MSG_486;Lens Correction - Camera HISTORY_MSG_487;Lens Correction - Lens HISTORY_MSG_488;HDR Tone Mapping -HISTORY_MSG_489;HDR TM - Alpha -HISTORY_MSG_490;HDR TM - Beta +HISTORY_MSG_489;HDR TM - Threshold +HISTORY_MSG_490;HDR TM - Amount HISTORY_NEWSNAPSHOT;Add HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s HISTORY_SNAPSHOT;Snapshot @@ -1930,8 +1930,8 @@ TP_SHARPENMICRO_LABEL;Microcontrast TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5 TP_SHARPENMICRO_UNIFORMITY;Uniformity TP_TM_FATTAL_LABEL;HDR Tone Mapping (Fattal02) -TP_TM_FATTAL_ALPHA;Threshold (Alpha) -TP_TM_FATTAL_BETA;Amount (Beta) +TP_TM_FATTAL_THRESHOLD;Threshold (Alpha) +TP_TM_FATTAL_AMOUNT;Amount (Beta) TP_VIBRANCE_AVOIDCOLORSHIFT;Avoid color shift TP_VIBRANCE_CURVEEDITOR_SKINTONES;HH TP_VIBRANCE_CURVEEDITOR_SKINTONES_LABEL;Skin-tones diff --git a/rtengine/procevents.h b/rtengine/procevents.h index 2bd4107ed..3aa5505b5 100644 --- a/rtengine/procevents.h +++ b/rtengine/procevents.h @@ -517,8 +517,8 @@ enum ProcEvent { EvLensCorrLensfunLens = 486, // Fattal tone mapping EvTMFattalEnabled = 487, - EvTMFattalAlpha = 488, - EvTMFattalBeta = 489, + EvTMFattalThreshold = 488, + EvTMFattalAmount = 489, NUMOFEVENTS diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 9bbed9d4e..7662a9920 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2449,12 +2449,12 @@ int ProcParams::save (const Glib::ustring &fname, const Glib::ustring &fname2, b keyFile.set_boolean ("FattalToneMapping", "Enabled", fattal.enabled); } - if (!pedited || pedited->fattal.alpha) { - keyFile.set_double ("FattalToneMapping", "Alpha", fattal.alpha); + if (!pedited || pedited->fattal.threshold) { + keyFile.set_integer ("FattalToneMapping", "Threshold", fattal.threshold); } - if (!pedited || pedited->fattal.beta) { - keyFile.set_double ("FattalToneMapping", "Beta", fattal.beta); + if (!pedited || pedited->fattal.amount) { + keyFile.set_integer ("FattalToneMapping", "Amount", fattal.amount); } /* @@ -5613,19 +5613,19 @@ int ProcParams::load (const Glib::ustring &fname, ParamsEdited* pedited) } } - if (keyFile.has_key ("FattalToneMapping", "Alpha")) { - fattal.alpha = keyFile.get_double ("FattalToneMapping", "Alpha"); + if (keyFile.has_key ("FattalToneMapping", "Threshold")) { + fattal.threshold = keyFile.get_double ("FattalToneMapping", "Threshold"); if (pedited) { - pedited->fattal.alpha = true; + pedited->fattal.threshold = true; } } - if (keyFile.has_key ("FattalToneMapping", "Beta")) { - fattal.beta = keyFile.get_double ("FattalToneMapping", "Beta"); + if (keyFile.has_key ("FattalToneMapping", "Amount")) { + fattal.amount = keyFile.get_double ("FattalToneMapping", "Amount"); if (pedited) { - pedited->fattal.beta = true; + pedited->fattal.amount = true; } } } @@ -8489,8 +8489,8 @@ bool ProcParams::operator== (const ProcParams& other) && epd.scale == other.epd.scale && epd.reweightingIterates == other.epd.reweightingIterates && fattal.enabled == other.fattal.enabled - && fattal.alpha == other.fattal.alpha - && fattal.beta == other.fattal.beta + && fattal.threshold == other.fattal.threshold + && fattal.amount == other.fattal.amount && defringe.enabled == other.defringe.enabled && defringe.radius == other.defringe.radius && defringe.threshold == other.defringe.threshold diff --git a/rtengine/procparams.h b/rtengine/procparams.h index f2d1c7b00..c69df915b 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -743,8 +743,8 @@ public: class FattalToneMappingParams { public: bool enabled; - double alpha; - double beta; + int threshold; + int amount; FattalToneMappingParams() { @@ -754,8 +754,8 @@ public: void setDefaults() { enabled = false; - alpha = 1.0; - beta = 1.0; + threshold = 0; + amount = 0; } }; diff --git a/rtengine/refreshmap.cc b/rtengine/refreshmap.cc index 95e129ad6..fa6b52c4e 100644 --- a/rtengine/refreshmap.cc +++ b/rtengine/refreshmap.cc @@ -515,8 +515,8 @@ int refreshmap[rtengine::NUMOFEVENTS] = { DARKFRAME, // EvLensCorrLensfunCamera DARKFRAME, // EvLensCorrLensfunLens RGBCURVE, // EvTMFattalEnabled - RGBCURVE, // EvTMFattalAlpha - RGBCURVE // EvTMFattalBeta + RGBCURVE, // EvTMFattalThreshold + RGBCURVE // EvTMFattalAmount }; diff --git a/rtengine/tmo_fattal02.cc b/rtengine/tmo_fattal02.cc index d0c3ea640..b44f1c1b6 100644 --- a/rtengine/tmo_fattal02.cc +++ b/rtengine/tmo_fattal02.cc @@ -1093,7 +1093,13 @@ void tmo_fattal02_RT(Imagefloat *rgb, float alpha, float beta, int detail_level, void ImProcFunctions::ToneMapFattal02(Imagefloat *rgb) { const int detail_level = 3; - tmo_fattal02_RT(rgb, params->fattal.alpha, params->fattal.beta, detail_level, multiThread); + double alpha = 1.; + if (params->fattal.threshold < 0) { + alpha += (params->fattal.threshold * 0.9) / 100.; + } else if (params->fattal.threshold > 0) { + alpha += params->fattal.threshold / 100.; + } + tmo_fattal02_RT(rgb, alpha, 1. - (params->fattal.amount * 0.3) / 100., detail_level, multiThread); } diff --git a/rtgui/fattaltonemap.cc b/rtgui/fattaltonemap.cc index a1fd3d342..79e545908 100644 --- a/rtgui/fattaltonemap.cc +++ b/rtgui/fattaltonemap.cc @@ -28,18 +28,18 @@ FattalToneMapping::FattalToneMapping(): FoldableToolPanel(this, "fattal", M("TP_ { // setEnabledTooltipMarkup(M("TP_EPD_TOOLTIP")); - - alpha = Gtk::manage(new Adjuster (M("TP_TM_FATTAL_ALPHA"), 0.0, 2.0, 0.01, 1.0)); - beta = Gtk::manage(new Adjuster (M("TP_TM_FATTAL_BETA"), 0.7, 1.3, 0.01, 1.0)); - alpha->setAdjusterListener(this); - beta->setAdjusterListener(this); + threshold = Gtk::manage(new Adjuster (M("TP_TM_FATTAL_THRESHOLD"), -100., 100., 1., 0.0)); + amount = Gtk::manage(new Adjuster (M("TP_TM_FATTAL_AMOUNT"), -100., 100., 1., 0.0)); - alpha->show(); - beta->show(); + threshold->setAdjusterListener(this); + amount->setAdjusterListener(this); - pack_start(*alpha); - pack_start(*beta); + threshold->show(); + amount->show(); + + pack_start(*threshold); + pack_start(*amount); } void FattalToneMapping::read(const ProcParams *pp, const ParamsEdited *pedited) @@ -47,52 +47,52 @@ void FattalToneMapping::read(const ProcParams *pp, const ParamsEdited *pedited) disableListener(); if(pedited) { - alpha->setEditedState(pedited->fattal.alpha ? Edited : UnEdited); - beta->setEditedState(pedited->fattal.beta ? Edited : UnEdited); + threshold->setEditedState(pedited->fattal.threshold ? Edited : UnEdited); + amount->setEditedState(pedited->fattal.amount ? Edited : UnEdited); set_inconsistent(multiImage && !pedited->fattal.enabled); } setEnabled(pp->fattal.enabled); - alpha->setValue(pp->fattal.alpha); - beta->setValue(pp->fattal.beta); + threshold->setValue(pp->fattal.threshold); + amount->setValue(pp->fattal.amount); enableListener(); } void FattalToneMapping::write(ProcParams *pp, ParamsEdited *pedited) { - pp->fattal.alpha = alpha->getValue(); - pp->fattal.beta = beta->getValue(); + pp->fattal.threshold = threshold->getValue(); + pp->fattal.amount = amount->getValue(); pp->fattal.enabled = getEnabled(); if(pedited) { - pedited->fattal.alpha = alpha->getEditedState(); - pedited->fattal.beta = beta->getEditedState(); + pedited->fattal.threshold = threshold->getEditedState(); + pedited->fattal.amount = amount->getEditedState(); pedited->fattal.enabled = !get_inconsistent(); } } void FattalToneMapping::setDefaults(const ProcParams *defParams, const ParamsEdited *pedited) { - alpha->setDefault(defParams->fattal.alpha); - beta->setDefault(defParams->fattal.beta); + threshold->setDefault(defParams->fattal.threshold); + amount->setDefault(defParams->fattal.amount); if(pedited) { - alpha->setDefaultEditedState(pedited->fattal.alpha ? Edited : UnEdited); - beta->setDefaultEditedState(pedited->fattal.beta ? Edited : UnEdited); + threshold->setDefaultEditedState(pedited->fattal.threshold ? Edited : UnEdited); + amount->setDefaultEditedState(pedited->fattal.amount ? Edited : UnEdited); } else { - alpha->setDefaultEditedState(Irrelevant); - beta->setDefaultEditedState(Irrelevant); + threshold->setDefaultEditedState(Irrelevant); + amount->setDefaultEditedState(Irrelevant); } } void FattalToneMapping::adjusterChanged(Adjuster* a, double newval) { if(listener && getEnabled()) { - if(a == alpha) { - listener->panelChanged(EvTMFattalAlpha, Glib::ustring::format(std::setw(2), std::fixed, std::setprecision(2), a->getValue())); - } else if(a == beta) { - listener->panelChanged(EvTMFattalBeta, Glib::ustring::format(std::setw(2), std::fixed, std::setprecision(2), a->getValue())); + if(a == threshold) { + listener->panelChanged(EvTMFattalThreshold, a->getTextValue()); + } else if(a == amount) { + listener->panelChanged(EvTMFattalAmount, a->getTextValue()); } } } @@ -114,13 +114,13 @@ void FattalToneMapping::setBatchMode(bool batchMode) { ToolPanel::setBatchMode(batchMode); - alpha->showEditedCB(); - beta->showEditedCB(); + threshold->showEditedCB(); + amount->showEditedCB(); } void FattalToneMapping::setAdjusterBehavior (bool alphaAdd, bool betaAdd) { - alpha->setAddMode(alphaAdd); - beta->setAddMode(betaAdd); + threshold->setAddMode(alphaAdd); + amount->setAddMode(betaAdd); } diff --git a/rtgui/fattaltonemap.h b/rtgui/fattaltonemap.h index cb3abcfc3..2398970ce 100644 --- a/rtgui/fattaltonemap.h +++ b/rtgui/fattaltonemap.h @@ -26,8 +26,8 @@ class FattalToneMapping: public ToolParamBlock, public AdjusterListener, public FoldableToolPanel { protected: - Adjuster *alpha; - Adjuster *beta; + Adjuster *threshold; + Adjuster *amount; public: diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index 17e53f2dd..dc1a65b64 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -265,8 +265,8 @@ void ParamsEdited::set (bool v) epd.scale = v; epd.reweightingIterates = v; fattal.enabled = v; - fattal.alpha = v; - fattal.beta = v; + fattal.threshold = v; + fattal.amount = v; sh.enabled = v; sh.hq = v; sh.highlights = v; @@ -808,8 +808,8 @@ void ParamsEdited::initFrom (const std::vector epd.reweightingIterates = epd.reweightingIterates && p.epd.reweightingIterates == other.epd.reweightingIterates; fattal.enabled = fattal.enabled && p.fattal.enabled == other.fattal.enabled; - fattal.alpha = fattal.alpha && p.fattal.alpha == other.fattal.alpha; - fattal.beta = fattal.beta && p.fattal.beta == other.fattal.beta; + fattal.threshold = fattal.threshold && p.fattal.threshold == other.fattal.threshold; + fattal.amount = fattal.amount && p.fattal.amount == other.fattal.amount; sh.enabled = sh.enabled && p.sh.enabled == other.sh.enabled; sh.hq = sh.hq && p.sh.hq == other.sh.hq; @@ -1982,11 +1982,11 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten if (fattal.enabled) { toEdit.fattal.enabled = mods.fattal.enabled; } - if (fattal.alpha) { - toEdit.fattal.alpha = mods.fattal.alpha; + if (fattal.threshold) { + toEdit.fattal.threshold = mods.fattal.threshold; } - if (fattal.beta) { - toEdit.fattal.beta = mods.fattal.beta; + if (fattal.amount) { + toEdit.fattal.amount = mods.fattal.amount; } if (sh.enabled) { diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index 552aa8515..4d205b1f5 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -368,8 +368,8 @@ public: class FattalToneMappingParamsEdited { public: bool enabled; - bool alpha; - bool beta; + bool threshold; + bool amount; };