3
\$\begingroup\$

I've found out GIMP supports 16 bits color editing, e.g. here Can I use 10bit effectively today and if yes how?:

Software support for editing in 16- and 32-bit color is good:

Photoshop, before the CS versions even existed
GIMP, since 2.9.2

I have GIMP 2.10, I've created new file with precision of 16-bits, however my color editing dialogs still show color as ffffff, not ffffffffffff.

  1. How to edit in 16 bits?
  2. Is there a way to save in 10 bits?
\$\endgroup\$

1 Answer 1

7
\$\begingroup\$

You can use the 0..100 scale:

enter image description here

This is a percentage with one decimal digit, so in high precision modes, it is mapped to 1000 different values, and therefore about 10 bits.

To edit in 16-bit set the image to a high precision mode (Image > Precision). Technically, there is no point in using 16-bit precision in Gimp unless you are very RAM-constrained. The Gimp engine works with 32-bit floating point values that are even more fine-grained, so if the image is 32-bit FP linear, you skip conversions.

When you save the image as XCF, if it of course saved with its current precision.

When you export to other formats, it depends on the format but I don't known of any 10-bit formats, it's usually 8-bit/16-bit integer or 16/32-bit FP.

  • When exporting to PNG Gimp uses PNG16 by default if the image is in high precision (anything but 8-bit).
  • When exporting to TIFF it uses the relevant TIFF variant: 8/16/32 bits (at least as long as you don't use JPEG compression).

IMHO the accuracy of the color isn't what is important (I sincerely doubt that between your camera, the display, the lighting conditions, you can be accurate to 10-bit). High-precision is more about giving more intermediate values and avoiding round-off errors.

Edit: Complement: the single decimal digit in the color selector is an arbitrary limit for the UI. In the Python console, try this:

>>> import gimpcolor
>>> gimp.get_foreground()
gimpcolor.RGB(0.0, 0.0, 0.0, 1.0)
>>> gimp.set_foreground(gimpcolor.RGB(0.12345678,0.98765432,0.23456789))
>>> gimp.get_foreground()
gimpcolor.RGB(0.12345678, 0.98765432, 0.23456789, 1.0)

The 0% ➜ 100% values in the color selector are really 0.0 ➜ 1.0 values for Gimp. The 4th number is the alpha channel. The above shows that Gimp can use fore fine-grained values. Try yourself with other values, but see if you can spot a difference between two colors that differ only by the 5th digit in a high-precision image.

\$\endgroup\$
7
  • \$\begingroup\$ Thank you. You say only one decimal point can be edited (I've tried and it is correct at least on my install) and it is about 10bit. What than does it mean that GIMP support 16 bits? "The Gimp engine works with 32-bit floating point values" - by default or when in high precision mode? \$\endgroup\$ Nov 24, 2021 at 12:00
  • \$\begingroup\$ When you create a new document 8/16/32 bit is an advanced options selection. \$\endgroup\$ Nov 24, 2021 at 14:49
  • \$\begingroup\$ @Martian The image "precision" is how the data is stored in layers/channels. The engine is always in 32-bitFP. As said in the post, precision is more about intermediate values and round-off errors. With 10bit/channel you can already pick one billion colors... \$\endgroup\$
    – xenoid
    Nov 24, 2021 at 17:23
  • \$\begingroup\$ @Martian The image "precision" is how the data is stored in layers/channels. So with any of the high-precision modes you have more range than what a camera produces. The engine is always in 32-bitFP. And with 10bit/channel you can already pick one billion colors... \$\endgroup\$
    – xenoid
    Nov 24, 2021 at 17:33
  • \$\begingroup\$ @StevenKersting You also ask Gimp to promote all loaded images to high-precision \$\endgroup\$
    – xenoid
    Nov 24, 2021 at 17:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.