Brainstorming/UI/ColorSelector

Bitmap Color Selector
Instead of plugins, we could have a series of PNG images that define a color selector / color changer. Eg. one bitmap that is interpreted as the saturation/value change, and another one just as hue change. And an semi-transparent overlay image for absolute colors (eg. wheel) and one for appearance/border. Even a color-coded image for placing the previous color(s) is thinkable.

Pros:
 * Generic, encourages the MyPaint (power)users to play around and find the best (TM) color changer.

Cons:
 * Implementation effort, especially if we want a GUI to select between different color selectors.
 * It might be actually too tricky to generate smooth color change bitmaps in programs like GIMP.
 * This would mostly make interactive elements hard/impossible, eg. a growing/shrinking rectangle.

-- maxy 19:44, 7 June 2010 (UTC)



Neutral Gray and Gaps between colors (why?)




Gray Zone Padding
Based on request from tobi on IRC--I agree. --SeanJM 13:18, 8 November 2009 (UTC)

Inner Saturation Lightness Selector Options
Based on comments from n-pigeon and maxy on IRC. --SeanJM 12:46, 8 November 2009 (UTC)

Combine Selector and History
Another idea for combining the color selector and history dialogs. Place the recent history around the saturation/value box. --DementedSnake



Color Wheel Popup Selector


I think this will make a lot of people happier, it's like the GTK wheel only better. --SeanJM 21:04, 26 August 2009 (UTC)

I like this version with the GTK wheel included.--Deevad 23:38, 26 August 2009 (UTC) Also check out this overview and the koffice wiki.
 * drag on the ring (realtime color feedback)
 * Use a pop-up version of the regular colour selector?
 * MMB-drag could rotate the hue ring (without clicking on it)
 * If you press the hotkey long enough the dialog should disappear when released Done in SVN. (this could apply to all windows, including the brush list).
 * Mixing is best done on the canvas. Maybe provide a popup that just is a drawing area dedicated to mixing.

Color-Changer
Current state: The color-changer is a color selector that appear after pressing the assigned shortcut key ( default one in mypaint 0.8 : 'V' ) while working on full screen. Actually, the color changer display a cross for the Value and saturation on a background with various color gradient with different hue/saturation/value relative to the active color selected. A single click on it select the color and close it.| If you press twice the 'V' key ( color-changer ) you get 3 color rings for Hue / Saturation / Value, for a 3 mouses clicks color sélection.--Deevad, 7 June 2010

Proposed change: Trying to make the color selection more efficient while working fullscreen to not have to use a palette with a GTK color wheel displaying all the time. Make the color-ring/color-changer become only one tool. For this I try to keep the philosophy of:
 * one shortcut/action to call the tool at the mouse position
 * User action done with only mouse-hover, positioning
 * User close/select/cancel with a click.

Here are various brainstorming propositions :

Color-wheel + Colorchanger


Pros:


 * User can find the accurate color with only 1 keyboard key / 1 mouse-or-tablet click action. --Deevad

Cons:


 * the color changer become a pure 'color selector', and the philosophy of the first color-changer is also to propose some other -sometime it look almost random- relatives colors to help inspiration while creating drawing. This aspect didn't remain in the mockup above. --Deevad

Hue wheel + Diagonals lines


Pros:


 * Easy to code cause already in a git branch, and a lot of way to change color in a box. This color-changer keeps the various hue/sat/val a bit random in background to be creative. --Deevad

Cons:


 * Visually a bit of overload of informations. Diagonal lines ( really usefull ) are hidden by the hue-wheel. The lake of antialiasing make it look dirty. --Deevad

Hue outside square + Diagonals lines


Pros:


 * Add the diagonals lines( really usefull ), and are less visually confusing than the previous. As developement time, I can imagine this proposition can be not a big challenge ( exept for the dynamic square previewing, but that's not a must have at first , imo )  --Deevad

Cons:


 * Having the rainbow hue flashing in front of eyes each time a color is selected is may be not the best solution. And the look of this color-changer start to be...mmm... 'special' --Deevad

'HSV/L' up, and 'Blend to color history' down


I saw I could compress the colour declination to HSV/L and color history in the color changer. Of course the picture mockup above show a rough version with big painted dot ; I don't mean with this picture I want the final information look like this.

This color changer don't display a hue wheel, but maybe hue wheel feature overlap too much with the 'Color Selector'. We can still imagine merging this idea with the Color-wheel + Colorchanger proposition ( a hue wheel appearing when mouse is over the external ring ). Like this, this feature can merge Colorchanger/Color history/Colorchanger to one keystroke and function.

Pros:


 * Split the gradient bars in pure colours blocks make the colour reading easier, and so, colour choosing I guess. On the picture I split each gradient bar in 5 colour block/dot, relatively low to do exact work. I think increasing this to 8 would look ok.  --Deevad

Cons:


 * No hue wheel selection, and no auto-Hue declination compare to the old ones  --Deevad

Paint Mixer Dialog
A user requested an area for paint mixing in the FAQ page. I moved it here. This is their example image.


 * The Scratchpad tool in current git versions of MyPaint can be used for paint mixing :) --Achadwick 16:28, 3 October 2011 (UTC)

Gamut Masking Tool
James Gurney extensively described Gamut Masking as part of his workflow (also see: Part 2, Part 3. It involves defining a limited shape within the color wheel to use for the entire piece. Sort of a manual color correction, if you will.



Pros:
 * Based on traditional painting techniques, dating back centuries
 * Streamlined and uncomplicated; could be used in the background to modify the main color wheel
 * Can replace the Color Selector and its Harmonies submenu, simplifying the interface while improving functionality

-- Luftmensch 19:19, 25 September 2011

Thank you for bringing this up. I have to say I really like the method James Gurney describes (and I have the book which describes it very well). It seems far better then our existing Harmonies wheel, so I mocked something up a while back to see what sort of things would be needed. Looks a bit like this:



If we chose to make a selector out of this too, it would be a departure from the way we've always done it - which may not be a bad thing! These circles are Hue/Saturation choosers, with Value outside. The current ones are Saturation/Value choosers, with Hue on the outside wheel. Typically artists want to vary S+V closely together when shading, and may well leave H alone unless playing with different coloured light sources. But that can be worked around by blending on the canvas and premixing colour strings the way Gurney demonstrates in the video:


 * http://www.youtube.com/watch?v=qfE4E5goEIc

What I really like about H+S circles with a slider for value (like the ones above, only on the Color Wheel tab) is the enormous amount of space for choosing colours compared to the existing square or triangle selectors. They make quite good use of the space (when not masked with something tiny!), plus you're mapping the H rainbow as a circle which is quite a natural way of doing it.

I'm not sure how the mask would "modify the main colour wheel" - though I thought about how it might restrict colour choice by the user while in effect. You start by putting the H+S point on the circle, and if it's on the mask area, move it towards the centroid (the little + mark at the middle) of the mask shape nearest it until it finds an edge, then use that H+S instead. The shapes in my implementation are convex hulls in Cartesian space, btw. Would this be confusing? Perhaps less so if the main colour selector were also an H+S circle, and we only applied the restriction I'm describing to that.

--Achadwick 16:26, 3 October 2011 (UTC)


 * This mockup just made me thinking. What if you did not edit the "mask" at all, but it automatically builds up while you paint? The H+S circle can use the V to hilight colors (with some radius) that you have already used. It would serve as a reminder rather than an enforcement, and require no setup time at all. maxy 16:40, 4 October 2011 (UTC)


 * Sounds like a job for a histogram analyzer → palette saver. There are a few deliberate, pre-planned gamut schemes out there which it'd be difficult to make vector masks for. Bimodal distributions would be one example. --Achadwick 20:28, 25 June 2012 (UTC)




 * The way the gamut mask is designed, the smaller the range of colors you choose, the smaller your palette. What if the color wheel itself was altered to match the mask? I'm not sure how to make a mock-up because I'm not sure how color wheels are generated in the first place. Can color wheels be generated on-the-fly to match a given palette? --Luftmensch 17:20, 12 April 2013 (UTC)


 * Do you mean physically smaller? It might be possible to fit the mask voids to fill the area of the control. --Achadwick 16:14, 17 April 2013 (UTC)


 * For what it's worth, Kdenlive does something similar with its vectorscope tool. --Achadwick 16:14, 17 April 2013 (UTC)

Update Jun 2012
I've made a branch of the current git master featuring a gamut mask (as well as a load of other stuff including an editable palette): |color-window-revamp. It looks like screenshot on the right at the moment: note that the old preset harmonies have new mask-based equivalents, taken from.

I've opted for an HCY wheel for this because in that colour space you can scrub around and push the envelope of the shapes for a different hue and saturation without altering the brush colour's perceptual luminance.

--Achadwick 20:28, 25 June 2012 (UTC)


 * Stop me if this doesn't make any damned sense, but would it be possible to use the gamut mask to nondestructively edit the color space? Say, for example, I started working with a cool palette (see first image), but I later decided a warm palette would be more appropriate for the scene. With the current workflow, I could export to GIMP and either colorize (see second image) or adjust the color balance manually (see third image), but both techniques result in noticeable loss of color fidelity, and I still have to manually create a new gamut mask to match my work in GIMP. (or not, if there was a tool to create a gamut mask based on a chosen file...)
 * The-old-guitarist.jpgThe-old-guitarist-red.jpgThe-old-guitarist-red-improved.jpg
 * On the other hand, if the color selection wheel, instead of selecting a color, chose a location in the working color space, the working gamut could be shifted and even scaled, and the colors rendered on screen would simply shift to "fill" the new space, without any loss of fidelity or information. Though I guess that means the image data in a MyPaint file wouldn't actually contain colors, which is interesting.


 * The main disadvantages I can think of to this workflow is that first, the entire way MyPaint renders and saves colors would need to be reworked (I assume), and second, this would not serve users who want to paint different sections of the same piece in different gamuts. That second issue probably has a good compromise that could be worked out, but the first problem seems pretty daunting.


 * But I don't really know what I'm talking about technically speaking, so whatever happens I'm thrilled for the development of MyPaint and happy to see my little suggestion blossom into a full working feature. --Luftmensch 02:19, 13 July 2012 (UTC)