Tom Rathborne wrote [Sun Feb 20, 20:27 ]:

> <snipped...>
> Yes, but you haven't gone far enough.
>
> Each colour at a gradient node should be customizable through an
> expression language (like in MathMap), so instead of gradients like
> 'Tube_Red', there would just be 'Tube'. The highlight for 'Tube' could
> be 'hsv(fg.h,sqr(fg.s),sqrt(fg.v))', the shadow edge could be
> 'rgb(fg.r/2,fg.g/2,fg.b/2)', and the deepest shadow could be 'bg'.
> Then you set the FG and BG colour and get a tube gradient based on
> those two colours.
>
> (Note that my sample expressions think of colour value on the range
> 0.0-1.0 so sqr() makes a value smaller and sqrt() makes it bigger.)
>
> Just an idea :)

Kind of like gradient templates. I was wondering if C++ was
going to work its way into this project one way or another. ;)

For intuitive use, I'm partial to the idea of
(1) Mouse down at some point in the image (start generating a line
    indicia, a.k.a. <Shift>brush tool or measure tool)
(2) Mouse up at some other point in an image.
(3) Plot all pixels of the image between mouse down and up
    inclusive as points in an RGBA color space.
(4) Now treat it as a problem in spatial geometry.
    and find a least squares solution with respect to some
    degree 2 bezier spline basis (some thought required as to
    finding optimal nonuniform knot spacing to capture large
    deltas nicely - See [1] for background)
(5) The control points found in color space map to the
    color section markings in the gradient editor. The
    join points of adjacent degree two splines are black
    section markers; the interior control points are white
    markers.
(6) From the user's prospect, this is a gradient snapshot
    tool: see a nice gradient in an image? Swipe a line over
    it and then name it. Bring up the gradient editor to tweak.
(7) From the programmer's perspective, its a GtkObject that
    embeds L.S. logic to wean way-over-determined datasets
    into something more managable. The same logic can turn
    pen strokes into spline vectors or data reduce tablet
    output into sparse events, which, methinks, would help
    most pen-like Gimp tools deal with tablet data (#5947
    lead to this thought).

All this is very much post 1.2 thinking. Back to bug fixing.

Be good, be well

Garry Osgood






[1] Press, William H. et alia. "Numerical Recipes in C" 2nd Ed.
    (1992) Section 15.4 "General Linear Least Squares"

Reply via email to