First I confess all my images are 8-bit integer perceptual because that's the default=I am lazy. Having said that, I assumed that that was the explanation, and that the difference would disappear when I went to 32-bit floating point. Not so.
ofnuts wrote:
How do you define 80% gray?
On the foreground color pulldown, I put '80' in the 'L' field--whatever that means, for whatever 'L' means. Lightness?
ofnuts wrote:
Create two images, one 8-bit integer perceptual (the usual 2.8 kind), one 32-bit FP linear...
What is displayed is always perceptual. But in the normal case, Gimp will work on linear values, so what you get is gamma[1-reverse_gamma(gray)], while in legacy it works on the gamma values directly (as it did in 2.8) you get [1-gray].
I did, not quite, as you suggested: creating one new 32-bit Floating Point (FP) linear image and creating new layers rather than risking copying layers out of the old 8-bit image, which in fact it was.
To create the New image, I had to File->New, +Advanced Options, and click on 32-bit Floating Point (FP) for Precision and Linear Light for Gamma.
I created a WHITE layer and put a text 'A' letter, colored 'bbbbbb', on two different layers above it: a Default and a Legacy. In Subtract mode, the results are indeed different. I created a New Layer from Visible, and used the Pointer dialog to examine pixels in each. (I'm glad you mentioned 'dialog' because I had just been reading about 'Dialogs' vs. 'Windows' and knew to go to Windows->Dockable Dialogs to enable the Pointer which I've never had open.)
On the New Visible layer, resting the Pointer over a Legacy-mode Subtracted pixel, the color is reported as '444444' (White/'ffffff' - 50%/'bbbbbb'). Over a Default-mode subtraction, the color is 'bcbcbc.'
Seeing the obvious difference, I thought that it might be a result of the image having Linear gamma so I created another New image with 32-bit FP and Perceptual gamma.
The result was the same: Subtract operates differently on Default and Legacy layers.
The QUESTION:
Is there a way to get the Legacy-mode Subtract result using only-Default modes?
If not, I'll at least know why I'm attached to Legacy. :^)