Re: [Gimp-developer] GIMP useability - choosing linear vs perceptually uniform RGB

2015-05-02 Thread Gez
El sáb, 02-05-2015 a las 12:40 -0400, Elle Stone escribió:

> Well, you might be able to answer that question. I'm not qualified.
> Personally I don't use alpha channels except in the extremely rare 
> instance when I'm exporting a png with a transparent background for use 
> on a website.

See, this is exactly what I intended to discuss.
You know a lot about linear and perceptual gamma, so in your opinion
everything has to be tailored to allow you to play as you wish with
gamma. For you it is essential.
Now, you think you don't use alpha channels, so you don't care much
about the options provided. But you actually use alpha channels a lot:
every time you create a layer mask you're creating an alpha channel for
that layer, and if that alpha is associated or unassociated makes a big
difference.
AFAIK, most of the time alpha channel is unassociated in GIMP, but when
you have to apply any convolution you have to "pre-multiply" it.
And what about alpha channels being linear or perceptual? Why don't you
care?
In that case, developers chose for you, and you don't seem to feel too
bad about it.
And believe me, when it comes to alpha channel THERE IS right and wrong,
no matter what the artist says.
Blending modes and other operations have been designed to work in
certain way. They have an intended result.
Unfortunately limitations in the available technology in the past forced
programs to do things as alpha compositing in 8 bit gamma.
It looks like shit but users got used to that appearance. That doesn't
mean that alpha compositing in gamma space is ok and it is a valid
option so programs SHOULD allow it.
It's an infortunate legacy that could be corrected by making the tool
work as it should work, as it is intended to work.
Some people may want having the uglyness back, so a special (optional)
tool to override the proper behavior with that crap could be used.

Personally, I'd love to see all the operations work on linear data only.
If a mechanism for overrides is in place, getting legacy support would
be probably just matter of setting a global override making everything
work in gamma.
In both cases an extra tool could allow flipping stuff to the other
"mode" temporarily. In the case of gamma we've been discussing it is
something that seems to be just one "gamma node" away.
Actually, you don't even need that. with enough bit depth the levels
tool alone is good for making gamma stuff more or less linear and linear
more or less perceptually uniform, for artistic purposes. And since you
don't seem to worry about "right" or "wrong" results, that should
suffice.

Gez.

___
gimp-developer-list mailing list
List address:gimp-developer-list@gnome.org
List membership: https://mail.gnome.org/mailman/listinfo/gimp-developer-list
List archives:   https://mail.gnome.org/archives/gimp-developer-list


[Gimp-developer] GIMP needs a new color management person, take 2

2015-05-02 Thread Elle Stone
You all have created an amazing RGB image editor. But proper color 
management has always taken a back seat. GIMP users have requested 
better color management and CMYK support for a long time now. You could 
have taken full working color management code from Cinepaint or Krita 
years ago, but you didn't. Instead you tried to reinvent the color 
management wheel with unbounded sRGB as a universal RGB working space, 
which apparently nobody bothered to test to see if it actually worked 
(it doesn't: 
http://ninedegreesbelow.com/photography/unbounded-srgb-as-universal-working-space.html). 
Not too long ago one of the devs stated on IRC that GIMP 2.10 would use 
unbounded sRGB, leaving me with the impression that the several months 
of hard work that I spent documenting problems with unbounded sRGB as a 
universal working space were completely wasted.


The GIMP devs need to rid the babl/GEGL/GIMP code of all traces of "only 
sRGB" coding 
(http://ninedegreesbelow.com/bug-reports/gimp-hard-coded-sRGB.html). But 
other software that uses GEGL needs babl to only use the sRGB primaries 
and TRC until someone finds the time to write new code to exist 
alongside the "sRGB only" babl code. So GIMP color management is taking 
a backseat to other software that uses babl/GEGL.


A long time ago I wrote code for the LCMS plugin that enables GIMP to do 
RGB/grayscale conversions, as a preliminary step towards figuring out 
how to do RGB/CMYK conversions (not saying I would have succeeded, good 
CMYK code probably needs to be written by someone who actually uses 
CMYK). But then the developers announced that the LCMS code was going to 
be moved to GEGL (still hasn't happened, thankfully) and I lost interest 
in working on the LCMS code. GIMP should not let GEGL handle color 
management as GEGL is used in other programs and GIMP would always have 
to compete with the color management needs of those other programs.


A Google summer of code student wrote fourier code for GEGL, and it 
can't be used because of GEGL license issues. This is just wrong. GIMP 
needs fourier code for proper lens blur 
(http://ninedegreesbelow.com/bug-reports/camera-fourier-gaussian-blurs-compared.html; 
Krita has proper lens blur; GIMP does not). GIMP shouldn't be hampered 
by GEGL licensing.


Right now for OpenEXR images, the image is opened, it's assumed to be a 
linear gamma sRGB image (really bad assumption), the sRGB TRC is 
applied, and the GIMP built-in sRGB profile is assigned 
(https://bugzilla.gnome.org/show_bug.cgi?id=316646). This is laughably 
wrong. Instead of removing the coding step that applies the sRGB TRC and 
giving the user a chance to *assign* the right ICC profile (I supplied a 
patch to do just that), the plan as discussed on IRC and in the bug 
report seems to be to extend the "auto sRGB TRC" assumption right into 
the LCMS plugin itself, which is a mind-boggling wrong thing to do.


My apologies for double-posting. I didn't mean this to be a reply to the 
thread on user options to choose linear vs perceptual RGB. So I'm 
posting again as a separate thread. Maybe it's against protocol, but I 
find I don't care much.


I use hacked versions of high bit depth GIMP for image editing - four of 
them, one for each color space that I use - and I'm very much enjoying 
finally being able to edit high bit depth images with masks and layers 
using free/libre software (other than having excellent color management, 
Cinepaint turned out to be a joke; Krita is aimed at digital artists and 
until recently flat-out wouldn't run on my system, but now runs just 
fine, thank you Krita devs!).


In my hacked versions of babl/GEGL/GIMP the babl flips are disabled, 
with LCH blend modes patched in 
(http://ninedegreesbelow.com/photography/gimp-lch-blend-modes.html), and 
with all the hard-coded sRGB values replaced by the Y and XYZ values 
that are appropriate to my preferred RGB working spaces 
(http://ninedegreesbelow.com/photography/users-guide-to-high-bit-depth-gimp.html#wider-gamut-working-space-workarounds).


I wish that having proper GIMP RGB color management didn't mean hacking 
the code for each and every color space I want to use, but that's the 
current situation. I wish I had the coding skills to recode 
babl/GEGL/GIMP color management to give the user control over her RGB 
data and to not use hard-coded sRGB, but I don't. I wish the 
babl/GEGL/GIMP devs could be persuaded to use the babl flips to empower 
GIMP users than to limit what users are allowed to do with their own RGB 
data, but I don't have much hope for that happening. I wish I were rich 
and could hire developers to fork GIMP and do color management the right 
way, but I'm not.


I'm very glad to have had the chance to work with you all for the last 
couple of years. For various reasons I've decided to bow out from 
further active participation in GIMP development, though I still plan to 
make bug reports and submit the occasional patch. If anyone has a color 
mana

[Gimp-developer] GIMP needs a new color management person

2015-05-02 Thread Elle Stone
You all have created an amazing RGB image editor. But proper color 
management has always taken a back seat. GIMP users have requested 
better color management and CMYK support for a long time now. You could 
have taken full working color management code from Cinepaint or Krita 
years ago, but you didn't. Instead you tried to reinvent the color 
management wheel with unbounded sRGB as a universal RGB working space, 
which apparently nobody bothered to test to see if it actually worked 
(it doesn't: 
http://ninedegreesbelow.com/photography/unbounded-srgb-as-universal-working-space.html). 
Not too long ago one of the devs stated on IRC that GIMP 2.10 would use 
unbounded sRGB, leaving me with the impression that the several months 
of hard work that I spent documenting problems with unbounded sRGB as a 
universal working space were completely wasted.


The GIMP devs need to rid the babl/GEGL/GIMP code of all traces of "only 
sRGB" coding 
(http://ninedegreesbelow.com/bug-reports/gimp-hard-coded-sRGB.html). But 
other software that uses GEGL needs babl to only use the sRGB primaries 
and TRC until someone finds the time to write new code to exist 
alongside the "sRGB only" babl code. So GIMP color management is taking 
a backseat to other software that uses babl/GEGL.


A long time ago I wrote code for the LCMS plugin that enables GIMP to do 
RGB/grayscale conversions, as a preliminary step towards figuring out 
how to do RGB/CMYK conversions (not saying I would have succeeded, good 
CMYK code probably needs to be written by someone who actually uses 
CMYK). But then the developers announced that the LCMS code was going to 
be moved to GEGL (still hasn't happened, thankfully) and I lost interest 
in working on the LCMS code. GIMP should not let GEGL handle color 
management as GEGL is used in other programs and GIMP would always have 
to compete with the color management needs of those other programs.


A Google summer of code student wrote fourier code for GEGL, and it 
can't be used because of GEGL license issues. This is just wrong. GIMP 
needs fourier code for proper lens blur 
(http://ninedegreesbelow.com/bug-reports/camera-fourier-gaussian-blurs-compared.html; 
Krita has proper lens blur; GIMP does not). GIMP shouldn't be hampered 
by GEGL licensing.


Right now for OpenEXR images, the image is opened, it's assumed to be a 
linear gamma sRGB image (really bad assumption), the sRGB TRC is 
applied, and the GIMP built-in sRGB profile is assigned 
(https://bugzilla.gnome.org/show_bug.cgi?id=316646). This is laughably 
wrong. Instead of removing the coding step that applies the sRGB TRC and 
giving the user a chance to *assign* the right ICC profile (I supplied a 
patch to do just that), the plan as discussed on IRC and in the bug 
report seems to be to extend the "auto sRGB TRC" assumption right into 
the LCMS plugin itself, which is a mind-boggling wrong thing to do.


I use hacked versions of high bit depth GIMP for image editing - four of 
them, one for each color space that I use - and I'm very much enjoying 
finally being able to edit high bit depth images with masks and layers 
using free/libre software (other than having excellent color management, 
Cinepaint turned out to be a joke; Krita is aimed at digital artists and 
until recently flat-out wouldn't run on my system, but now runs just 
fine, thank you Krita devs!).


In my hacked versions of babl/GEGL/GIMP the babl flips are disabled, 
with LCH blend modes patched in 
(http://ninedegreesbelow.com/photography/gimp-lch-blend-modes.html), and 
with all the hard-coded sRGB values replaced by the Y and XYZ values 
that are appropriate to my preferred RGB working spaces 
(http://ninedegreesbelow.com/photography/users-guide-to-high-bit-depth-gimp.html#wider-gamut-working-space-workarounds).


I wish that having proper GIMP RGB color management didn't mean hacking 
the code for each and every color space I want to use, but that's the 
current situation. I wish I had the coding skills to recode 
babl/GEGL/GIMP color management to give the user control over her RGB 
data and to not use hard-coded sRGB, but I don't. I wish the 
babl/GEGL/GIMP devs could be persuaded to use the babl flips to empower 
GIMP users than to limit what users are allowed to do with their own RGB 
data, but I don't have much hope for that happening. I wish I were rich 
and could hire developers to fork GIMP and do color management the right 
way, but I'm not.


I'm very glad to have had the chance to work with you all for the last 
couple of years. For various reasons I've decided to bow out from 
further active participation in GIMP development, though I still plan to 
make bug reports and submit the occasional patch. If anyone has a color 
management question that I might be able to help with, send me a private 
email (I'm unsubscribing from the list). And if anyone wants to fork 
GIMP, send me an email because I might want to lend a hand.


Best,
Elle Stone
--
http://ninedegree

Re: [Gimp-developer] GIMP useability - choosing linear vs perceptually uniform RGB

2015-05-02 Thread Elle Stone

On 05/02/2015 03:39 PM, Øyvind Kolås wrote:

I'm not entirely sure what you are proposing or how it could be implemented
>in the UI. Is this what you mean?
>
>1. Make a list of all RGB editing operations that are provided by GIMP.
>
>2. Decide for each operation whether it should be done using linear or
>perceptual RGB and set that as the default way the operation will be done.
>
>3. Figure out which RGB operations "legitimately" should also be allowed to
>be done using the opposite choice from what the developers decided.
>
>4. For the operations for which users can choose other than the default, do
>what? I can think of two possibilities:
>
>  i. Make an entirely new RGB editing operation. For example
>Curves-linear and Curves-perceptual, Gradient-linear and
>Gradient-perceptual, Soft-light-blend-linear and
>Soft-light-blend-perceptual, and so forth. Then stuff these new editing
>operations into the menu.
>
>  ii. Put an override button on the UI for the particular layer blend
>mode or tools/operation UI. But you said specifically said you don't want to
>put additional, possibly confusing buttons in the UI.
>
>Is above close to what you are envisioning?



Nope, I envison the operator of GIMP to do a*separate*  action before
a particular action to override the default/sane pixelformat for, and
then a*separate*  action afterwards.


What does this separate action before and after the RGB operation look 
like in the UI?


You are saying that this "three click" approach is better from a user 
viewpoint than simply having a button on the Curves UI to switch between 
the clearly marked default and the alternative?



For some particular operations
more direct ways of achieving it can be provided if it is common
tasks; like for instance adding the ability to do curves/levels in CIE
Lab instead of RGB; but in general the sledge hammer to offer the
operator this ability is additional actions.



So if users are allowed to choose between perceptual and linear for RGB 
Curves, there might be two Curves operations, each with their own entry 
in the UI, one for linear RGB and one for perceptual RGB? How is this a 
cleaner UI than one Curves dialog with a button?


Or do you mean one UI entry for linear RGB Curves and one for CIELAB 
Curves? CIELAB Curves is not a substitute for RGB Curves, though CIELAB 
Curves would be an excellent addition to GIMP.


What about layer blend modes? Will there be two layer blend modes, one 
for linear and one for perceputal, for those layer blend modes for which 
the devs decide the user should be given a choice? The "button on the 
layer or tool interface" approach does seem like a cleaner solution from 
the UI point of view.


Best,
Elle

___
gimp-developer-list mailing list
List address:gimp-developer-list@gnome.org
List membership: https://mail.gnome.org/mailman/listinfo/gimp-developer-list
List archives:   https://mail.gnome.org/archives/gimp-developer-list


[Gimp-developer] I got on this list by accident - which should not be possible but that's another issue. Can you please delete me

2015-05-02 Thread colin billowes

___
gimp-developer-list mailing list
List address:gimp-developer-list@gnome.org
List membership: https://mail.gnome.org/mailman/listinfo/gimp-developer-list
List archives:   https://mail.gnome.org/archives/gimp-developer-list


Re: [Gimp-developer] GIMP useability - choosing linear vs perceptually uniform RGB

2015-05-02 Thread Øyvind Kolås
On Sat, May 2, 2015 at 3:12 PM, Elle Stone
 wrote:
> On 05/02/2015 02:44 PM, Øyvind Kolås wrote:
>>
>> On Sat, May 2, 2015 at 9:45 AM, Elle Stone
>>  wrote:
>>>
>>> To be more blunt, the babl flips are Pippin's brain-child. If Pippin says
>>> "no user choice", is there any real benefit to anyone if I write up a
>>> spec?
>>> Wouldn't it just be a waste of everyone's time?
>>
>>
>> I have not stated *no*user*choice*, but I have stated that good ways
>> to let the user override these choices seem to be more along the lines
>> of what Gez is proposing, explicit conversions to and from other
>> working spaces / linearity / unpremultiplication. Let it be a separate
>> manual step to override sane defaults where sane defaults helps the
>> vast majority of uses by both operators of the software unaware of
>> these nuances as well as color management experts. This can be done as
>> separate actions without having additional, possibly confusing,
>> buttons in the UI.
>
>
> I'm not entirely sure what you are proposing or how it could be implemented
> in the UI. Is this what you mean?
>
> 1. Make a list of all RGB editing operations that are provided by GIMP.
>
> 2. Decide for each operation whether it should be done using linear or
> perceptual RGB and set that as the default way the operation will be done.
>
> 3. Figure out which RGB operations "legitimately" should also be allowed to
> be done using the opposite choice from what the developers decided.
>
> 4. For the operations for which users can choose other than the default, do
> what? I can think of two possibilities:
>
>  i. Make an entirely new RGB editing operation. For example
> Curves-linear and Curves-perceptual, Gradient-linear and
> Gradient-perceptual, Soft-light-blend-linear and
> Soft-light-blend-perceptual, and so forth. Then stuff these new editing
> operations into the menu.
>
>  ii. Put an override button on the UI for the particular layer blend
> mode or tools/operation UI. But you said specifically said you don't want to
> put additional, possibly confusing buttons in the UI.
>
> Is above close to what you are envisioning?

Nope, I envison the operator of GIMP to do a *separate* action before
a particular action to override the default/sane pixelformat for, and
then a *separate* action afterwards. For some particular operations
more direct ways of achieving it can be provided if it is common
tasks; like for instance adding the ability to do curves/levels in CIE
Lab instead of RGB; but in general the sledge hammer to offer the
operator this ability is additional actions.

> Sometimes babl/GEGL/GIMP developers say things that make me think that some
> of the devs think GIMP users as a whole are not very bright people.

Even though humans and other primates that glow in the dark are part
of our intended user base, too bright people might have problems - in
particular if their screens are reflective. Designing user interfaces
is tricky; and often it helps to try to make them work well also for
drunk or otherwise impaired operators; if they work well for that –
the tools should work even better for fully present and competent
operators.

/pippin
___
gimp-developer-list mailing list
List address:gimp-developer-list@gnome.org
List membership: https://mail.gnome.org/mailman/listinfo/gimp-developer-list
List archives:   https://mail.gnome.org/archives/gimp-developer-list


Re: [Gimp-developer] GIMP useability - choosing linear vs perceptually uniform RGB

2015-05-02 Thread Elle Stone

On 05/02/2015 02:44 PM, Øyvind Kolås wrote:

On Sat, May 2, 2015 at 9:45 AM, Elle Stone
 wrote:

To be more blunt, the babl flips are Pippin's brain-child. If Pippin says
"no user choice", is there any real benefit to anyone if I write up a spec?
Wouldn't it just be a waste of everyone's time?


I have not stated *no*user*choice*, but I have stated that good ways
to let the user override these choices seem to be more along the lines
of what Gez is proposing, explicit conversions to and from other
working spaces / linearity / unpremultiplication. Let it be a separate
manual step to override sane defaults where sane defaults helps the
vast majority of uses by both operators of the software unaware of
these nuances as well as color management experts. This can be done as
separate actions without having additional, possibly confusing,
buttons in the UI.


I'm not entirely sure what you are proposing or how it could be 
implemented in the UI. Is this what you mean?


1. Make a list of all RGB editing operations that are provided by GIMP.

2. Decide for each operation whether it should be done using linear or 
perceptual RGB and set that as the default way the operation will be done.


3. Figure out which RGB operations "legitimately" should also be allowed 
to be done using the opposite choice from what the developers decided.


4. For the operations for which users can choose other than the default, 
do what? I can think of two possibilities:


 i. Make an entirely new RGB editing operation. For example 
Curves-linear and Curves-perceptual, Gradient-linear and 
Gradient-perceptual, Soft-light-blend-linear and 
Soft-light-blend-perceptual, and so forth. Then stuff these new editing 
operations into the menu.


 ii. Put an override button on the UI for the particular layer 
blend mode or tools/operation UI. But you said specifically said you 
don't want to put additional, possibly confusing buttons in the UI.


Is above close to what you are envisioning?

Does anyone on this list seriously find the idea of a button that says 
"Linear", that can be clicked to become "Perceptual" or vice versa, too 
confusing to use?


Sometimes babl/GEGL/GIMP developers say things that make me think that 
some of the devs think GIMP users as a whole are not very bright people.


Best,
Elle


___
gimp-developer-list mailing list
List address:gimp-developer-list@gnome.org
List membership: https://mail.gnome.org/mailman/listinfo/gimp-developer-list
List archives:   https://mail.gnome.org/archives/gimp-developer-list


Re: [Gimp-developer] GIMP useability - choosing linear vs perceptually uniform RGB

2015-05-02 Thread Øyvind Kolås
On Sat, May 2, 2015 at 9:45 AM, Elle Stone
 wrote:
> To be more blunt, the babl flips are Pippin's brain-child. If Pippin says
> "no user choice", is there any real benefit to anyone if I write up a spec?
> Wouldn't it just be a waste of everyone's time?

I have not stated *no*user*choice*, but I have stated that good ways
to let the user override these choices seem to be more along the lines
of what Gez is proposing, explicit conversions to and from other
working spaces / linearity / unpremultiplication. Let it be a separate
manual step to override sane defaults where sane defaults helps the
vast majority of uses by both operators of the software unaware of
these nuances as well as color management experts. This can be done as
separate actions without having additional, possibly confusing,
buttons in the UI.

On a related note, I hope we get rid of the FIR / IIR UI choice in
gaussian blur - that is parts of our UI which in reality are even less
useful for our operators.

/pippin
___
gimp-developer-list mailing list
List address:gimp-developer-list@gnome.org
List membership: https://mail.gnome.org/mailman/listinfo/gimp-developer-list
List archives:   https://mail.gnome.org/archives/gimp-developer-list


Re: [Gimp-developer] GIMP useability - choosing linear vs perceptually uniform RGB

2015-05-02 Thread Elle Stone

On 05/02/2015 10:21 AM, Gez wrote:

El sáb, 02-05-2015 a las 06:09 -0400, Elle Stone escribió:


But you're not proposing to add a toggle to gradients alone, you're
proposing to put them*everywhere*.


Yes.


And your reason is that users have to decide how operations are
performed, no matter the result, no matter if it makes any sense or it
doesn't.


In the specific case of perceptual vs linear RGB, the user is the only 
person qualified to say whether it makes sense or not.


The toggle or other mechanism for allowing the user choice between 
perceptual and linear RGB should plainly indicate the default choice 
made by the devs. But the user needs the option to override the default 
choice made by the devs.


A tooltip that educates the user about why the default makes sense would 
be a nice addition.



So what about other aspects like alpha association then? Should toggles
be added everywhere for that too so the users can decide if alpha will
be associated or unassociated?


Well, you might be able to answer that question. I'm not qualified.
Personally I don't use alpha channels except in the extremely rare 
instance when I'm exporting a png with a transparent background for use 
on a website.



I'd like to see this discussion heading towards a real world list of
examples of real needs for such options that can't be satisfied with
anything else than these toggles.


You are presupposing that the devs can foresee every possible use to
which a user might put a given editing operation.


No, I'm saying that users like us should describe real world situations
where certain options are needed in order to convince developers of the
necessity of such options.
"Let me do whatever I want" is not a good argument.


Gez, you want explicit, known-in-advance justifications for every 
exception to your proposed rule that all RGB editing operations should 
operate on linear RGB, with no user choise to override the default.


Let's say that as developers we take the time to examine every single 
RGB editing operation supplied by GIMP. Let's say we can find good 
reasons for allowing 50% of all RGB operations to have a user choice 
between linear and perceptually uniform RGB:


First, how much is the UI less complicated if only 50% (or 30%, or 
whatever percentage you'd like to pull out of a hat) of the RGB editing 
operations have a means to allow the user to override the developer-set 
default?


Second, what if we make a mistake with one of the "no user option" 
operations? Right now drawing a gradient can only be done using 
perceptual RGB, and on radiometric grounds that is a mistake. But on 
artistic grounds, it depends on the artist's intention. Giving the user 
choice with respect to linear vs perceptual RGB provides a necessary 
safety net for developer mistakes.


Unlike Robert Krawitz's wonderful examples from Gutenprint, GIMP users 
aren't running any risk of physically harming their digital darkroom 
when they go against developer defaults. The worse thing that might 
happen is they might learn something about why certain defaults were 
chosen in the first place.




The need of linear and perceptually uniform gradients is a real need.
You can easily document when you need one or the other and create simple
examples.

Now, give me a good example why scaling should be better done in
perceptual gamma (other than preserving legacy appearance, which is the
ugly situation that took us here in the first place).


Personally I can only think of two specific use cases:

Pedagogic: teaching a class on why scaling should be done using linear RGB.
Artistic: I was quite amused to see that the lights in this image 
twinkle as the image is scaled larger and smaller by the Firefox 
browser: http://ninedegreesbelow.com/tcb/img/pine-branch-over-lake.jpg
I can imagine an artist deliberately making a background image where 
lights twinkle as the image scales up and down. You will rightly say 
that there are other ways to acheive the same effect. So what?




You'll find soon that aside from keeping legacy appearance,

> the situations where you need operations to actually work in
> perceptual gamma are rare.

I don't have a personal stake in keeping legacy appearance, not having 
any legacy files. Nonetheless, removing user choice regarding perceptual 
vs linear will invalidate an awful lot of user workflows right off the 
bat before the user has a chance to figure out why linear gamma RGB is 
often a better choice to get them to where they want to go.


I've been working with linear gamma image editing in the specific 
context of editing high bit depth photographic images since around 2005, 
which doesn't make me an expert, just saying I do have some experience.


I prefer to edit using linear gamma RGB as much as possible. However, 
the instances where I choose to use perceptual RGB aren't rare but 
rather fairly common depending on the particular editing task and 
artistic goal.


There are specific editing operations 

Re: [Gimp-developer] GIMP useability - choosing linear vs perceptually uniform RGB

2015-05-02 Thread Gez
El sáb, 02-05-2015 a las 11:18 -0400, Robert Krawitz escribió:
> On Sat, 02 May 2015 11:21:37 -0300, Gez wrote:
> > El sáb, 02-05-2015 a las 06:09 -0400, Elle Stone escribió:
> >> > I'd like to see this discussion heading towards a real world list of
> >> > examples of real needs for such options that can't be satisfied with
> >> > anything else than these toggles.
> >> 
> >> You are presupposing that the devs can foresee every possible use to 
> >> which a user might put a given editing operation.
> >
> > No, I'm saying that users like us should describe real world situations
> > where certain options are needed in order to convince developers of the
> > necessity of such options.
> > "Let me do whatever I want" is not a good argument.
> 
> Yes it is, because we don't know every possible use to which someone
> will put something.
> 
> We've had the same issue come up in Gutenprint.  Gutenprint exposes
> just about every internal control option to users, if they want to
> play with them.  It allows things that could actually cause _physical_
> damage to printers, in particular specifying ink limits so high that
> they would completely soak through non-coated paper and would form
> large puddles on coated papers that could gum up the print head.
> 
> But then it turned out that people wanted to do things with printers
> that we had never envisioned: printing T-shirts, and doing chemical
> deposition (in one case, literally printing circuits onto paper using
> electroconductive inks).  It turned out to be very fortunate for those
> users that we had never imposed limits of that kind because "that
> isn't something anybody should be doing".
> 
> The one concession that we did make was to group options into
> different levels of interface complexity, and add an option to the PPD
> file generator to generate simplified PPD files with only the basic
> options.  But the default is to use the full-featured interface.
> 
> Obviously there are resource constraints here; developers can only do
> so much, and have to make decisions about what to do that are mutually
> exclusive on time constraints alone.  But deliberately leaving
> something out of this kind of project because there isn't an obvious
> real world use case is not, in my view, a good thing.

Let me clarify that I'm not against flexibility or giving users control
on the processes.
It's not about choosing between no control and full control. Is finding
a balance where a UI provides the necessary tools for the regular job
without hindering the possibility of experimentation.
It's extremely difficult to create a UI that both exposes every possible
user and provides a fast and comfortable workflow.
Adding checkboxes and buttons for every need doesn't solve the issue.
Pretending that you can separate the "basic" and the "advanced" users in
two simple groups by providing insufficient tools for basic users and
the cluttered UI for advanced ones is not going to result in a good
tool.
Nodal UIs aren't perfect, but provide a good balance because every tool
is an individual node, and power and flexibility come from combining
those nodes.
In this case of linear vs. perceptual, a gamma node would allow to turn
every operation in a linear workflow into perceptual.
Notice how different is the paradigm: a single tool that changes how
other tools act instead of adding an extra option to every single tool.
And a tool that is added on demand, only people who want to use it will
be exposed to it, and the rest wouldn't be disturbed by a cluttered
interface.
Unfortunately, the UI paradigm in GIMP and similar applications makes
this really difficult, because it's inherited from a time where all the
operations were sequential and destructive.
Again legacy stopping progress.

Part of this is a UI problem, and adding buttons or checkboxes for every
possible alternative isn't a good way to design UIs. 
https://twitter.com/cowbs/status/516045565847535616

___
gimp-developer-list mailing list
List address:gimp-developer-list@gnome.org
List membership: https://mail.gnome.org/mailman/listinfo/gimp-developer-list
List archives:   https://mail.gnome.org/archives/gimp-developer-list


Re: [Gimp-developer] GIMP useability - choosing linear vs perceptually uniform RGB

2015-05-02 Thread Robert Krawitz
On Sat, 02 May 2015 11:21:37 -0300, Gez wrote:
> El sáb, 02-05-2015 a las 06:09 -0400, Elle Stone escribió:
>> > I'd like to see this discussion heading towards a real world list of
>> > examples of real needs for such options that can't be satisfied with
>> > anything else than these toggles.
>> 
>> You are presupposing that the devs can foresee every possible use to 
>> which a user might put a given editing operation.
>
> No, I'm saying that users like us should describe real world situations
> where certain options are needed in order to convince developers of the
> necessity of such options.
> "Let me do whatever I want" is not a good argument.

Yes it is, because we don't know every possible use to which someone
will put something.

We've had the same issue come up in Gutenprint.  Gutenprint exposes
just about every internal control option to users, if they want to
play with them.  It allows things that could actually cause _physical_
damage to printers, in particular specifying ink limits so high that
they would completely soak through non-coated paper and would form
large puddles on coated papers that could gum up the print head.

But then it turned out that people wanted to do things with printers
that we had never envisioned: printing T-shirts, and doing chemical
deposition (in one case, literally printing circuits onto paper using
electroconductive inks).  It turned out to be very fortunate for those
users that we had never imposed limits of that kind because "that
isn't something anybody should be doing".

The one concession that we did make was to group options into
different levels of interface complexity, and add an option to the PPD
file generator to generate simplified PPD files with only the basic
options.  But the default is to use the full-featured interface.

Obviously there are resource constraints here; developers can only do
so much, and have to make decisions about what to do that are mutually
exclusive on time constraints alone.  But deliberately leaving
something out of this kind of project because there isn't an obvious
real world use case is not, in my view, a good thing.
-- 
Robert Krawitz 

***  MIT Engineers   A Proud Tradition   http://mitathletics.com  ***
Member of the League for Programming Freedom  --  http://ProgFree.org
Project lead for Gutenprint   --http://gimp-print.sourceforge.net

"Linux doesn't dictate how I work, I dictate how Linux works."
--Eric Crampton
___
gimp-developer-list mailing list
List address:gimp-developer-list@gnome.org
List membership: https://mail.gnome.org/mailman/listinfo/gimp-developer-list
List archives:   https://mail.gnome.org/archives/gimp-developer-list


Re: [Gimp-developer] GIMP useability - choosing linear vs perceptually uniform RGB

2015-05-02 Thread Gez
El sáb, 02-05-2015 a las 06:09 -0400, Elle Stone escribió:

> > But you're not proposing to add a toggle to gradients alone, you're
> > proposing to put them*everywhere*.
> 
> Yes.

And your reason is that users have to decide how operations are
performed, no matter the result, no matter if it makes any sense or it
doesn't.
So what about other aspects like alpha association then? Should toggles
be added everywhere for that too so the users can decide if alpha will
be associated or unassociated?


> > I'd like to see this discussion heading towards a real world list of
> > examples of real needs for such options that can't be satisfied with
> > anything else than these toggles.
> 
> You are presupposing that the devs can foresee every possible use to 
> which a user might put a given editing operation.

No, I'm saying that users like us should describe real world situations
where certain options are needed in order to convince developers of the
necessity of such options.
"Let me do whatever I want" is not a good argument.

The need of linear and perceptually uniform gradients is a real need.
You can easily document when you need one or the other and create simple
examples.

Now, give me a good example why scaling should be better done in
perceptual gamma (other than preserving legacy appearance, which is the
ugly situation that took us here in the first place).

You'll find soon that aside from keeping legacy appearance, the situations 
where you need operations to actually work in perceptual gamma are rare.

So in practice, combining linear and perceptual back and forth during
your work is not something you need all the time.

Tell me for instance why in your UI proposal you merged a layer using
the screen blending mode in perceptual gamma. 
What's the need there, what's the effect achieved?

Each case is different and should be designed according the needs.
That's what design is about. Addressing needs and crafting solutions.
Again: "I want to do whatever I want with the tool" is not a good
starting point.
You can use your laptop as a hammer if you want, but it's not designed
for that use and you can't expect designers to contemplate that use when
they plan the thing.


> Currently the user does already have linear vs perceptual choices 
> through the GIMP UI for most editing operations (scaling is always 
> linear, drawing a gradient is always perceptual).
> 
> Currently the user can use or not use the gamma hack. And the user can 
> use linear or gamma precision. That's two time two equals four 
> possibilities for the user to try for each and every editing operation.

Again: developers have already said that the gamma hack and even the
precision modes are a temporary situation and they are not final.
You're exposing your case based on the wrong assumption that those
things are going to stay as they are.

> Now tell me without taking the time to try all four possibilities:
> 
> How does the user get a linear gradient? (sorry, you can't)

That's a reasonable question. It's easy to show why true linear
gradients are necessary.

> How does the user get linear gamma channel mixer?
> How does the user get perceptually uniform Filter/Noise/Add RGB noise?

I think you're asking the wrong questions.
The real question is: Why and when operations should be performed in
perceptual gamma?
The answer seems to be (at this point at least) legacy appearance. Most
of the times.
So, if the goal is to release a GEGLized GIMP that provides the same
results as 2.8.x, tools have to work like that.

I don't like it and I'd prefer that a true linear workflow is
implemented where nothing has to be flipped to perceptual unless there's
a good reason. And I bet that those good reasons would be rare, real
exceptions that could be treated as such.

Why don't we use the energy and time we're using for these discussions
for documenting an artist workflow based on linear RGBA (as most of the
modern digital compositing packages use)?

___
gimp-developer-list mailing list
List address:gimp-developer-list@gnome.org
List membership: https://mail.gnome.org/mailman/listinfo/gimp-developer-list
List archives:   https://mail.gnome.org/archives/gimp-developer-list


Re: [Gimp-developer] GIMP useability - choosing linear vs perceptually uniform RGB

2015-05-02 Thread Elle Stone

On 05/02/2015 09:00 AM, Michael Schumacher wrote:



On 05/02/2015 01:28 PM, Elle Stone wrote:

On 04/30/2015 05:43 PM, Michael Schumacher wrote:



For examples have a look at the Save & Export and Single Window Mode
specifications:

* http://gui.gimp.org/index.php/Save_%2B_export_specification

* http://gui.gimp.org/index.php/Single-window_mode_specification



I am willing to write up formal specifications but only if there is a
consensus from the main devs that the proposal for changing the UI to
allow easy switching between linear and perceptual RGB might actually be
seriously considered.


The specs as linked above are what convinced and convinces the main
developers of the usefulness of the changes.

So "I will only write a spec if the main developers already agree with
said spec" will be a bit hard.


If the core devs are interested in allowing the user to easily choose 
between linear and perceptual RGB on a per op/per layer blend mode 
basis, then a spec would seem to provide a starting point for figuring 
out how to implement the user's ability to choose between linear and 
perceptual RGB.


If the devs already have agreed among themselves to remove that choice 
from the user, there's no point in my writing a spec for functionality 
that goes against developer consensus.


To be more blunt, the babl flips are Pippin's brain-child. If Pippin 
says "no user choice", is there any real benefit to anyone if I write up 
a spec? Wouldn't it just be a waste of everyone's time?





If the main devs are opposed to the idea then I don't want to put any
more effort into the topic.


Any change needs support, preferably by many people who are involved in
the project already.If there is the choice between the status quo and
something they do not understand, guess what they will support.



Hmm, well, see, I have this website devoted to color management. Half 
(well, probably only a third) the articles on my website were written to 
help the GIMP devs understand various aspects of color management.


It seems I have failed to boil color management down to bites that are 
small enough for easy developer consumption and yet comprehensive enough 
to be sufficiently informative. I do keep trying. Please ask questions!


Best,
Elle
--
http://ninedegreesbelow.com
Color management and free/libre photography

___
gimp-developer-list mailing list
List address:gimp-developer-list@gnome.org
List membership: https://mail.gnome.org/mailman/listinfo/gimp-developer-list
List archives:   https://mail.gnome.org/archives/gimp-developer-list


Re: [Gimp-developer] GIMP useability - choosing linear vs perceptually uniform RGB

2015-05-02 Thread Michael Schumacher


On 05/02/2015 01:28 PM, Elle Stone wrote:
> On 04/30/2015 05:43 PM, Michael Schumacher wrote:

>> For examples have a look at the Save & Export and Single Window Mode
>> specifications:
>>
>> * http://gui.gimp.org/index.php/Save_%2B_export_specification
>>
>> * http://gui.gimp.org/index.php/Single-window_mode_specification

> I am willing to write up formal specifications but only if there is a
> consensus from the main devs that the proposal for changing the UI to
> allow easy switching between linear and perceptual RGB might actually be
> seriously considered.

The specs as linked above are what convinced and convinces the main
developers of the usefulness of the changes.

So "I will only write a spec if the main developers already agree with
said spec" will be a bit hard.

> If the main devs are opposed to the idea then I don't want to put any
> more effort into the topic.

Any change needs support, preferably by many people who are involved in
the project already. If there is the choice between the status quo and
something they do not understand, guess what they will support.


-- 
Regards,
Michael
GPG: 96A8 B38A 728A 577D 724D 60E5 F855 53EC B36D 4CDD
___
gimp-developer-list mailing list
List address:gimp-developer-list@gnome.org
List membership: https://mail.gnome.org/mailman/listinfo/gimp-developer-list
List archives:   https://mail.gnome.org/archives/gimp-developer-list


Re: [Gimp-developer] GIMP useability - choosing linear vs perceptually uniform RGB

2015-05-02 Thread Elle Stone

On 04/30/2015 05:43 PM, Michael Schumacher wrote:

On 04/30/2015 11:40 PM, Elle Stone wrote:

What are specifications?


Something that describes how features are supposed to work when they are
implemented.

For examples have a look at the Save & Export and Single Window Mode
specifications:

* http://gui.gimp.org/index.php/Save_%2B_export_specification

* http://gui.gimp.org/index.php/Single-window_mode_specification


Thanks! for the links.

On 04/29/2015 03:57 PM, Joao S. O. Bueno wrote:

So, I hope that with the previous e-mail you could get to a good
summary of what would be needed for GIMP not only to be vaibale, but
to surpass current photoshop U.I. when dealing with these issues . I hope so.

Now help us think on the next steps. For example get that e-mail
worked into a feasible specification: If you can, refine it, then
maybe try to get someone with UI expertise that could fine tune that
your suggestions into specifications that could be really great -  now
we don't have Peter helping the project anymore.
(could be someone from your area, to whom you could get face to face
meetings) - (I'd rather have another switch along the layer modes than
to duplicate all layer modes in the UI, for example) -

And then...help use having more people who could help with development. :-)


FWIW, I put up a call for GIMP programmers "above the fold" on the home 
page of my website: http://ninedegreesbelow.com/


There's "title text" if you hover over the link.



At least I can see the suggested features as great. And I can't think
of a way to even begin takling them without an enormous amount of
weekly hours to dedicate to it (or Americo's issues for the matter)


I am willing to write up formal specifications but only if there is a 
consensus from the main devs that the proposal for changing the UI to 
allow easy switching between linear and perceptual RGB might actually be 
seriously considered.


If the main devs are opposed to the idea then I don't want to put any 
more effort into the topic.


Best,
Elle
___
gimp-developer-list mailing list
List address:gimp-developer-list@gnome.org
List membership: https://mail.gnome.org/mailman/listinfo/gimp-developer-list
List archives:   https://mail.gnome.org/archives/gimp-developer-list


Re: [Gimp-developer] GIMP useability - choosing linear vs perceptually uniform RGB

2015-05-02 Thread Elle Stone

On 05/01/2015 07:03 PM, Gez wrote:



You chose one of the few cases where both linear and perceptually
uniform could be valid options and none of them are right or wrong.
Of course I'm not against allowing two valid instances of the same
thing, like in this case.


I've already given other examples.


But you're not proposing to add a toggle to gradients alone, you're
proposing to put them*everywhere*.


Yes.


I'd like to see this discussion heading towards a real world list of
examples of real needs for such options that can't be satisfied with
anything else than these toggles.


You are presupposing that the devs can foresee every possible use to 
which a user might put a given editing operation.


Currently the user does already have linear vs perceptual choices 
through the GIMP UI for most editing operations (scaling is always 
linear, drawing a gradient is always perceptual).


Currently the user can use or not use the gamma hack. And the user can 
use linear or gamma precision. That's two time two equals four 
possibilities for the user to try for each and every editing operation.


Now tell me without taking the time to try all four possibilities:

How does the user get a linear gradient? (sorry, you can't)
How does the user get linear gamma channel mixer?
How does the user get perceptually uniform Filter/Noise/Add RGB noise?

I'm proposing to make the current GIMP UI for switching between linear 
and perceptually uniform RGB much simpler and clear to use:


1. Eliminate the precision switches by putting the linear vs gamma 
choice on each layer, rather than having to convert the entire layer 
stack to a new precision. This will have the side benefit of cutting the 
number of precision dialog entries in half.


2. Replace the gamma hack dialog with a "Linear/Perceptual" switch or 
drop-down menu that shows the default setting that was set by the devs, 
and also allows the user to quickly and easily choose the other setting.


Right now the babl flips and GIMP UI give the user a choice, at least 
for most editing operations. But how to get linear or perceptual out of 
any given editing operation isn't at all clear.


The current UI wasn't ever intended to be permanent and does need to be 
redesigned. The babl flips and GIMP UI can be redesigned to:


* Prevent the user from making an edit on linear RGB if the devs decide 
the particular editing operation "should" be done on perceptually 
uniform RGB.
* Prevent the user from making an edit on perceptually uniform RGB if 
the devs decide the particular editing operation "should" be done on 
linear RGB.


Or the babl flips and GIMP UI can be used to provide the user with the 
same choices that users of PhotoShop and Krita and every other high bit 
depth image editor already have: which is to perform all edits on either 
linear or perceptually uniform RGB.


In PhotoShop, Krita, etc, the only way to change whether the RGB data is 
linear or perceptually uniform is by doing an ICC profile conversion.


In GIMP the UI could be designed so the switch between linear and 
perceptually uniform can be done easily on a per-op basis, if the UI 
were redesigned the way I am suggesting, or some way that provides 
equivalent functionality.


Or in GIMP the UI could be redesigned so the switch between linear and 
perceptually uniform is taken completely out of the user's control.


I fail to see any advantage at all to giving the user a choice for some 
operations and not for all operations. It places the devs in the 
not-so-nice position of having to know in advance all possible uses to 
which the user might want to put all possible editing operations.



Why do you want to put roadblocks in the user's way?

There are certainly rights and wrongs when using a tool. If the tool is
designed to work some way and you don't respect that, you're doing it
wrong.
Try taking a hammer upside-down and hammer nails with the handle.
That's wrong.


Sorry. Not a good analogy. Like all tools, a hammer is a means to 
accomplish a goal, nothing more, nothing less. The precise goal, and 
hence the right way to use the hammer, depends on the goal of the person 
using the hammer.


Not every problem for which a hammer is a good solution happens to be a 
nail:


Maybe you want to mold some soft metal into a curved shape and the 
hammer's handle happens to be the right shape for the task.


Maybe you are using the hammer to hold something in place so you can 
accomplish some other task. Recently I used a sledge hammer to hold down 
a spring-clipped cover so I could access some bolts hidden behind the 
cover. Should I have gone to the store and asked for a "heavy duty 
spring-clipped cover holder downer"?


Maybe you want to reset a nail that is coming out of place, but you use 
the side of the hammer to gently press the nail back in place because 
you don't want to further damage some old and rotted wood.


The person who made the hammer doesn't and can't know all the inventive 
uses