increased precision of the channel mixer (allow 1 decimal figure)
This commit is contained in:
parent
99caa76f75
commit
93d442f802
@ -2255,15 +2255,15 @@ void ImProcFunctions::rgbProc (Imagefloat* working, LabImage* lab, PipetteBuffer
|
|||||||
|
|
||||||
float Balan = float (params->colorToning.balance);
|
float Balan = float (params->colorToning.balance);
|
||||||
|
|
||||||
float chMixRR = float (params->chmixer.red[0]);
|
float chMixRR = float (params->chmixer.red[0])/10.f;
|
||||||
float chMixRG = float (params->chmixer.red[1]);
|
float chMixRG = float (params->chmixer.red[1])/10.f;
|
||||||
float chMixRB = float (params->chmixer.red[2]);
|
float chMixRB = float (params->chmixer.red[2])/10.f;
|
||||||
float chMixGR = float (params->chmixer.green[0]);
|
float chMixGR = float (params->chmixer.green[0])/10.f;
|
||||||
float chMixGG = float (params->chmixer.green[1]);
|
float chMixGG = float (params->chmixer.green[1])/10.f;
|
||||||
float chMixGB = float (params->chmixer.green[2]);
|
float chMixGB = float (params->chmixer.green[2])/10.f;
|
||||||
float chMixBR = float (params->chmixer.blue[0]);
|
float chMixBR = float (params->chmixer.blue[0])/10.f;
|
||||||
float chMixBG = float (params->chmixer.blue[1]);
|
float chMixBG = float (params->chmixer.blue[1])/10.f;
|
||||||
float chMixBB = float (params->chmixer.blue[2]);
|
float chMixBB = float (params->chmixer.blue[2])/10.f;
|
||||||
|
|
||||||
bool blackwhite = params->blackwhite.enabled;
|
bool blackwhite = params->blackwhite.enabled;
|
||||||
bool complem = params->blackwhite.enabledcc;
|
bool complem = params->blackwhite.enabledcc;
|
||||||
|
@ -1787,19 +1787,19 @@ bool VignettingParams::operator !=(const VignettingParams& other) const
|
|||||||
ChannelMixerParams::ChannelMixerParams() :
|
ChannelMixerParams::ChannelMixerParams() :
|
||||||
enabled(false),
|
enabled(false),
|
||||||
red{
|
red{
|
||||||
100,
|
1000,
|
||||||
0,
|
0,
|
||||||
0
|
0
|
||||||
},
|
},
|
||||||
green{
|
green{
|
||||||
0,
|
0,
|
||||||
100,
|
1000,
|
||||||
0
|
0
|
||||||
},
|
},
|
||||||
blue{
|
blue{
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
100
|
1000
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@ -3523,6 +3523,13 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
|||||||
memcpy (chmixer.green, gmix.data(), 3 * sizeof (int));
|
memcpy (chmixer.green, gmix.data(), 3 * sizeof (int));
|
||||||
memcpy (chmixer.blue, bmix.data(), 3 * sizeof (int));
|
memcpy (chmixer.blue, bmix.data(), 3 * sizeof (int));
|
||||||
}
|
}
|
||||||
|
if (ppVersion < 338) {
|
||||||
|
for (int i = 0; i < 3; ++i) {
|
||||||
|
chmixer.red[i] *= 10;
|
||||||
|
chmixer.green[i] *= 10;
|
||||||
|
chmixer.blue[i] *= 10;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (pedited) {
|
if (pedited) {
|
||||||
pedited->chmixer.red[0] = pedited->chmixer.red[1] = pedited->chmixer.red[2] = true;
|
pedited->chmixer.red[0] = pedited->chmixer.red[1] = pedited->chmixer.red[2] = true;
|
||||||
|
@ -39,9 +39,9 @@ ChMixer::ChMixer (): FoldableToolPanel(this, "chmixer", M("TP_CHMIXER_LABEL"), f
|
|||||||
rlabel->set_markup (Glib::ustring("\t<span foreground=\"#b00000\"><b>") + M("TP_CHMIXER_RED") + Glib::ustring(":</b></span>"));
|
rlabel->set_markup (Glib::ustring("\t<span foreground=\"#b00000\"><b>") + M("TP_CHMIXER_RED") + Glib::ustring(":</b></span>"));
|
||||||
rlabel->set_alignment(Gtk::ALIGN_START);
|
rlabel->set_alignment(Gtk::ALIGN_START);
|
||||||
|
|
||||||
red[0] = Gtk::manage (new Adjuster ("", -200, 200, 1, 100, imgIcon[0]));
|
red[0] = Gtk::manage (new Adjuster ("", -200, 200, 0.1, 100, imgIcon[0]));
|
||||||
red[1] = Gtk::manage (new Adjuster ("", -200, 200, 1, 0, imgIcon[1]));
|
red[1] = Gtk::manage (new Adjuster ("", -200, 200, 0.1, 0, imgIcon[1]));
|
||||||
red[2] = Gtk::manage (new Adjuster ("", -200, 200, 1, 0, imgIcon[2]));
|
red[2] = Gtk::manage (new Adjuster ("", -200, 200, 0.1, 0, imgIcon[2]));
|
||||||
|
|
||||||
Gtk::HSeparator* rsep = Gtk::manage (new Gtk::HSeparator ());
|
Gtk::HSeparator* rsep = Gtk::manage (new Gtk::HSeparator ());
|
||||||
|
|
||||||
@ -58,9 +58,9 @@ ChMixer::ChMixer (): FoldableToolPanel(this, "chmixer", M("TP_CHMIXER_LABEL"), f
|
|||||||
glabel->set_alignment(Gtk::ALIGN_START);
|
glabel->set_alignment(Gtk::ALIGN_START);
|
||||||
|
|
||||||
|
|
||||||
green[0] = Gtk::manage (new Adjuster ("", -200, 200, 1, 0, imgIcon[3]));
|
green[0] = Gtk::manage (new Adjuster ("", -200, 200, 0.1, 0, imgIcon[3]));
|
||||||
green[1] = Gtk::manage (new Adjuster ("", -200, 200, 1, 100, imgIcon[4]));
|
green[1] = Gtk::manage (new Adjuster ("", -200, 200, 0.1, 100, imgIcon[4]));
|
||||||
green[2] = Gtk::manage (new Adjuster ("", -200, 200, 1, 0, imgIcon[5]));
|
green[2] = Gtk::manage (new Adjuster ("", -200, 200, 0.1, 0, imgIcon[5]));
|
||||||
|
|
||||||
Gtk::HSeparator* gsep = Gtk::manage (new Gtk::HSeparator ());
|
Gtk::HSeparator* gsep = Gtk::manage (new Gtk::HSeparator ());
|
||||||
|
|
||||||
@ -75,9 +75,9 @@ ChMixer::ChMixer (): FoldableToolPanel(this, "chmixer", M("TP_CHMIXER_LABEL"), f
|
|||||||
Gtk::Label* blabel = Gtk::manage (new Gtk::Label ());
|
Gtk::Label* blabel = Gtk::manage (new Gtk::Label ());
|
||||||
blabel->set_markup (Glib::ustring("\t<span foreground=\"#1377d7\"><b>") + M("TP_CHMIXER_BLUE") + Glib::ustring(":</b></span>"));
|
blabel->set_markup (Glib::ustring("\t<span foreground=\"#1377d7\"><b>") + M("TP_CHMIXER_BLUE") + Glib::ustring(":</b></span>"));
|
||||||
blabel->set_alignment(Gtk::ALIGN_START);
|
blabel->set_alignment(Gtk::ALIGN_START);
|
||||||
blue[0] = Gtk::manage (new Adjuster ("", -200, 200, 1, 0, imgIcon[6]));
|
blue[0] = Gtk::manage (new Adjuster ("", -200, 200, 0.1, 0, imgIcon[6]));
|
||||||
blue[1] = Gtk::manage (new Adjuster ("", -200, 200, 1, 0, imgIcon[7]));
|
blue[1] = Gtk::manage (new Adjuster ("", -200, 200, 0.1, 0, imgIcon[7]));
|
||||||
blue[2] = Gtk::manage (new Adjuster ("", -200, 200, 1, 100, imgIcon[8]));
|
blue[2] = Gtk::manage (new Adjuster ("", -200, 200, 0.1, 100, imgIcon[8]));
|
||||||
|
|
||||||
for (int i = 0; i < 3; i++) {
|
for (int i = 0; i < 3; i++) {
|
||||||
red[i]->setAdjusterListener (this);
|
red[i]->setAdjusterListener (this);
|
||||||
@ -111,9 +111,9 @@ void ChMixer::read (const ProcParams* pp, const ParamsEdited* pedited)
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 3; i++) {
|
for (int i = 0; i < 3; i++) {
|
||||||
red[i]->setValue (pp->chmixer.red[i]);
|
red[i]->setValue (pp->chmixer.red[i] / 10.0);
|
||||||
green[i]->setValue (pp->chmixer.green[i]);
|
green[i]->setValue (pp->chmixer.green[i] / 10.0);
|
||||||
blue[i]->setValue (pp->chmixer.blue[i]);
|
blue[i]->setValue (pp->chmixer.blue[i] / 10.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
enableListener ();
|
enableListener ();
|
||||||
@ -123,9 +123,9 @@ void ChMixer::write (ProcParams* pp, ParamsEdited* pedited)
|
|||||||
{
|
{
|
||||||
|
|
||||||
for (int i = 0; i < 3; i++) {
|
for (int i = 0; i < 3; i++) {
|
||||||
pp->chmixer.red[i] = (int) red[i]->getValue ();
|
pp->chmixer.red[i] = red[i]->getValue() * 10;
|
||||||
pp->chmixer.green[i] = (int) green[i]->getValue ();
|
pp->chmixer.green[i] = green[i]->getValue() * 10;
|
||||||
pp->chmixer.blue[i] = (int) blue[i]->getValue ();
|
pp->chmixer.blue[i] = blue[i]->getValue() * 10;
|
||||||
}
|
}
|
||||||
pp->chmixer.enabled = getEnabled();
|
pp->chmixer.enabled = getEnabled();
|
||||||
|
|
||||||
@ -143,9 +143,9 @@ void ChMixer::setDefaults (const ProcParams* defParams, const ParamsEdited* pedi
|
|||||||
{
|
{
|
||||||
|
|
||||||
for (int i = 0; i < 3; i++) {
|
for (int i = 0; i < 3; i++) {
|
||||||
red[i]->setDefault (defParams->chmixer.red[i]);
|
red[i]->setDefault (defParams->chmixer.red[i] / 10.f);
|
||||||
green[i]->setDefault (defParams->chmixer.green[i]);
|
green[i]->setDefault (defParams->chmixer.green[i] / 10.f);
|
||||||
blue[i]->setDefault (defParams->chmixer.blue[i]);
|
blue[i]->setDefault (defParams->chmixer.blue[i] / 10.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pedited)
|
if (pedited)
|
||||||
@ -167,9 +167,9 @@ void ChMixer::adjusterChanged (Adjuster* a, double newval)
|
|||||||
|
|
||||||
if (listener && getEnabled()) {
|
if (listener && getEnabled()) {
|
||||||
Glib::ustring descr = Glib::ustring::compose ("R=%1,%2,%3\nG=%4,%5,%6\nB=%7,%8,%9",
|
Glib::ustring descr = Glib::ustring::compose ("R=%1,%2,%3\nG=%4,%5,%6\nB=%7,%8,%9",
|
||||||
(int)red[0]->getValue(), (int)red[1]->getValue(), (int)red[2]->getValue(),
|
red[0]->getValue(), red[1]->getValue(), red[2]->getValue(),
|
||||||
(int)green[0]->getValue(), (int)green[1]->getValue(), (int)green[2]->getValue(),
|
green[0]->getValue(), green[1]->getValue(), green[2]->getValue(),
|
||||||
(int)blue[0]->getValue(), (int)blue[1]->getValue(), (int)blue[2]->getValue());
|
blue[0]->getValue(), blue[1]->getValue(), blue[2]->getValue());
|
||||||
listener->panelChanged (EvChMixer, descr);
|
listener->panelChanged (EvChMixer, descr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -215,8 +215,14 @@ void ChMixer::trimValues (rtengine::procparams::ProcParams* pp)
|
|||||||
{
|
{
|
||||||
|
|
||||||
for (int i = 0; i < 3; i++) {
|
for (int i = 0; i < 3; i++) {
|
||||||
red[i]->trimValue(pp->chmixer.red[i]);
|
double r = pp->chmixer.red[i] / 10.0;
|
||||||
green[i]->trimValue(pp->chmixer.green[i]);
|
double g = pp->chmixer.green[i] / 10.0;
|
||||||
blue[i]->trimValue(pp->chmixer.blue[i]);
|
double b = pp->chmixer.blue[i] / 10.0;
|
||||||
|
red[i]->trimValue(r);
|
||||||
|
green[i]->trimValue(g);
|
||||||
|
blue[i]->trimValue(b);
|
||||||
|
pp->chmixer.red[i] = r * 10;
|
||||||
|
pp->chmixer.green[i] = g * 10;
|
||||||
|
pp->chmixer.blue[i] = b * 10;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
// This number has to be incremented whenever the PP3 file format is modified or the behaviour of a tool changes
|
// This number has to be incremented whenever the PP3 file format is modified or the behaviour of a tool changes
|
||||||
#define PPVERSION 337
|
#define PPVERSION 338
|
||||||
#define PPVERSION_AEXP 301 //value of PPVERSION when auto exposure algorithm was modified
|
#define PPVERSION_AEXP 301 //value of PPVERSION when auto exposure algorithm was modified
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Log of version changes
|
Log of version changes
|
||||||
|
338 2018-06-15
|
||||||
|
increased precision for the channel mixer
|
||||||
337 2018-06-13
|
337 2018-06-13
|
||||||
new scales for the LabGrid color toning parameters
|
new scales for the LabGrid color toning parameters
|
||||||
336 2018-06-01
|
336 2018-06-01
|
||||||
|
Loading…
x
Reference in New Issue
Block a user