[Gimp-developer] Appropriate scales for curves and levels

Hi all,

When working on a 16-bit integer or 32-bit floating point image, Gimp
from git "levels" tool shows increments of 0.1 on a scale from 0 to
100.0, theoretically giving 999 increments.

However, when using levels to slowly raise or lower the black point or
the white point, the displayed input/output number jumps by 1 halfway
between integer increments - eg jumps from 0 to 1 at 0.5, from 1 to 2
at 1.5, and so forth. And the image display doesn't change until the
jump occurs. So instead of 999 increments, there are really only 99
increments, less than half as many increments as are available with
any 8-bit image editor using a scale that runs from 0 to 255.

Whether 99 increments or 255 increments, both scales are too coarse
for accurately setting a black point (levels or curves) or modifying
tonality in the shadows (curves) of a linear gamma image. 99
increments is not all that great for more perceptually uniform color
spaces, either.

At one point Gimp had a very fine-grained scale for curves, even
though it only supported 8-bit image editing. Now that Gimp supports
high bit depths, are there there plans to (re)introduce fine-grained
curves and levels scales to match the higher bit depths?

Matching the scales for curves, levels, eye-dropper/pointer/sample points:

The levels scale is from 0.0 to 100.0 except for 8-bit images, where
the scale is from 0 to 255.

The curves scale and histogram "info" scale are always from 0 to 255,
regardless of the image bit depth.

The RGB eye-dropper (which recently has seen some serious love from
someone - whoever you are, thank you!) displays RGB values from 0 to
255, 0 to 65535, or 0 to 1.00000, depending on the bit-depth of the
image. (The floating point eye-dropper also shows values that are less
than 0 and greater than 1 - again, thank you most wonderful person for
making possible the proper eyedroppering of floating point hdr/exr
images without having to resort to Cinepaint or Krita!)

As going back and forth between curves, levels, and the eye-dropper is
such a basic and common action while editing, it would be nice if the
various scales always matched each other at any given bit depth. As it
is, I end up dividing and multiplying a lot to translate between the
different scales.

I would request/suggest making all 8-bit scales (eye-dropper, levels,
curves, and of course the pointer information and sample points) as
0-255, all 16-bit integer scales as 0-65535, and all floating point
scales (eye-dropper, levels, curves, pointer, sample points) as 0 to
1.000000, so at any given bit depth all three ways of
sampling/viewing/modifying the image match.

Kind regards,

http://ninedegreesbelow.com - articles on open source digital photography

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]