Added new color toning method "L*a*b* regions"

Allows to specify various "regions" of the image with masks, and to correct
for hue, saturation and lightness.

Inspired by the existing L*a*b* grid (in turn taken from darktable)
This commit is contained in:
Alberto Griggio
2018-10-25 16:46:11 +02:00
parent eee6837385
commit 1a3fd9f157
18 changed files with 854 additions and 32 deletions

View File

@@ -46,6 +46,8 @@
class LabGrid: public Gtk::DrawingArea, public BackBuffer {
private:
rtengine::ProcEvent evt;
Glib::ustring evtMsg;
enum State { NONE, HIGH, LOW };
State litPoint;
float low_a;
@@ -64,11 +66,14 @@ private:
sigc::connection delayconn;
static const int inset = 2;
bool grid_visible;
bool low_enabled;
bool notifyListener();
void getLitPoint();
public:
LabGrid(rtengine::ProcEvent evt);
LabGrid(rtengine::ProcEvent evt, const Glib::ustring &msg, bool enable_low=true);
void getParams(double &la, double &lb, double &ha, double &hb) const;
void setParams(double la, double lb, double ha, double hb, bool notify);
@@ -78,6 +83,9 @@ public:
void reset(bool toInitial);
void setListener(ToolPanelListener *l);
bool lowEnabled() const;
void setLowEnabled(bool yes);
bool on_draw(const ::Cairo::RefPtr<Cairo::Context> &crf);
void on_style_updated ();
bool on_button_press_event(GdkEventButton *event);