GNOME Bugzilla – Bug 470761
color picker tool and color picker in color selector windows give different results
Last modified: 2008-10-30 19:57:46 UTC
I was trying the RC1 when I found this bug. I have an image with two colours, black 000000 and dark grey 010101. I use the gamma display filter with gamma set to the maximum (10) so I can see something. If I use the colour picker tool on the dark grey part of the image, it returns the correct value (010101) but if I use the colour picker from the colour selector window (or from the tool options), it returns the colour value 929292 (which is the 010101 with gamma correction included). As a consequence, if I use the colour picker tool (with "set foreground color" option checked), I can add text, lines, ... on my image with the original dark grey, but if I use the colour picker from the colour selector (or from the tool options, for instance when adding text), the added stuff will not be of the same colour as the area under the selector: it is then 929292 and is displayed as f1f1f1 (white). GTK+: 2.10.13 Gimp: 2.4-RC1 OS: WinXP sp2
I believe this is not a bug. The color picker from the color dialog picks colors from what is on the screen -- anywhere on the screen, not just in your image. So naturally, it picks up the displayed color, not the color values pre-display; and normal eyedropper picks up colors pre-display, not color corrected. IMO this is correct behaviour, and you are simply confused about the implications of color management.
I filled this bug for the "interface" component. Two tools with same icon/metaphor (a pipet) and giving different behaviours is an interface bug. And I really think that I am not confused about colour management and its implications: The view filters are supposed to be a layer only affecting the way things are displayed (for colour blind people, etc.). You could even "imagine" to have a filter using ASCII art to encode the colours (for monochrome displays). The whole purpose of the display filters is suppressed if the colour selector associated to the tools (e.g. paintbrush, pencil, text) do not work in the image colour space but in the screen colour space instead. And if you try to reproduce the bug, you will notice that even when looking at the "displayed" colour, the mis-behaviour is still present: Select the colour area which is displayed as 929292 (and is 010101 in reality). All of gimp's colour indicators shows 929292 which is a middle grey but when you paint/type text on the image, you have white f1f1f1 instead on the screen.
The tool icons uses for the different pickers are different, aren't they? The ones which do work on the whole screen do show a monitor. Additionally, the picker in the color selector dialog is explained as "click any spot on screen to pick its color" by its tool tip. IMO any different behaviour from what does happen would be called a bug. The picker in the toolbox is explained as "pick colors from image". I do expect that a user does realize that an image in GIMP is somewhat more complex that "any spot on screen" and expects a different behaviour. If anything, you can complain that the color picker tool is not able to work like the other ones. Maybe we need an option that is even above "sample merged" and does take display filters into account?
As I wrote, the metaphor is the same... a pipet, so you expect the same behaviour. The colour picker of the toolbox is acting in a useful way, changing it to match the other one would be a serious regression. Imagine I want to make a logo using the colour management filter because I want it to display and print the same everywhere (ICC correction). I have some nice picture and would like to add some text with the same colour as something in the image (the sky, the grass...). If the tool option colour selector is not measuring the image data, I'll never be able to set my text colour to the desired colour. This is similar to my case, except it is with a different display filter. The colour picker tool is not available when I use the text tool (I have to leave the text tool to use the colour picker). The workflow is interrupted. The text tool options should use the colour picker tool way of measuring, i.e. measure the content of the _image_, not of the screen. This way, you can reliably write in the colour you selected. Of course, if you use the pipet outside an image, then there is no filter to account for and both work the same. When you work with filters on, there is nearly no cases where you want to pick the screen colour, because it has no meaning inside your image. The only need can be to see how it is transformed by the filter, but then it is more a work for the colour picker info window.
The screen color picker has been added to pick colors from the screen and it does exactly that. This is not a bug, no matter how much you argue about it.
Fine. I was mostly arguing that the metaphors should be different if you provide different functionality (eg. like the pencil and paintbrush metaphors are different). Then you could also see the oppotunity for an enhancement: It is at present not possible to set a text layer to match the colour of a desired area in the image. As an example, an enhancement could be to add a colour picker button next to the screen colour picker one in the colour selector. This would have the advantage that you can use the same metaphor, because the icons then are one next to the other and illustrate the difference of behaviour.
Why is that not possible? Pick the color from the desired area, then drag it to the text layer or to the color area in the text tool options.
So let's start from when I am typing my text, and would like to adjust font, colour and size and continue typing afterwards when I am satisfied with the adjustments. For size, I click the spin button in the text tool option. For font, I use the font button in the tool options (Aa). For colour, I have to: 1- select the layer containing the colour I want to pick up in the layer tab 2- click on the colour picker tool (the text editor is closed by this action) 3- pick the colour from the image 4- select the text layer in the layers tab 5- select the text tool 6- drag the colour from the foreground colour to the colour area of the text tool options. (5 and 6 may be replaced by 5b- drag the colour from the foreground colour area to the image). 7- double click the text layer to reopen the text editor and finish typing my text And I have to do this while there is a colour selector in the tool options, but this selector cannot be used to pick a colour from an image, only from the display/screen (i.e. after filtering). So it is possible, but there is room for enhancement. And because the interface suggests to use the tool option colour selector, it drags the user towards the non-working way.
Keep in mind that if you do not use strange gamma values or other display filters, then your 7 steps can be replaced by the following: 1. double-click on the color area of the text tool options 2. click the eyedropper icon in the Text Color window 3. click on the color that you want to pick Then you can continue typing your text as usual. It may be interesting to use a modifier to temporarily change the behavior of the color picker in the color selector window so that it behaves like the tool (but then only if you click inside a GIMP image window). But this would require various hacks in the code and I am not sure that it is worth the effort, considering the limited use cases and the workarounds that are already available.
This is a closed bug report. There's really no point in discussing such things here. If you want to suggest changes, please wait until 2.4 is done, then make your suggestions on the gimp-developer list and get our user interface experts involved. Bugzilla is the wrong place for this.
Sorry to put one more (hopefully last) comment to this bug... To Raphaël: Gimp 2.4 has the colour management display filters activated by default. If I understand correctly, the ICC colour profiles of the monitors, printer, images can now be used in Gimp. This is going be a much more common use of display filters than my situation. And the "screen" colour is then different than the image "colour". So I expect the problem to be met by the people who use the ICC colour profiles. And those people usually can't tolerate even small colour errors.