JPEG colours vs darkroom preview

I got myself a proper screen for editing in darktable (instead of the sad 12" ThinkPad IPS) and realized the colours in the darkroom preview do not match the generated JPEG at all. The latter is a lot more saturated.

I opened the JPEG both in Eog and Gimp and it looks similar but very different from what darktable shows.

Here’s an example, left Eog, right the darktable preview

What is the reason these differ so much? How can I make sure I get something that’s closer to WYSIWYG? Otherwise it feels like I am flying blind.

Calibrate your screen, make sure proper monitor profile is selected and it’ll make it WYSIWYG :slight_smile:

But given the differences are visible on the screenshot I would think it has nothing to do with the particular calibration of the screen? Or am I thinking wrong?

Use a color managed image viewer like geeqie, eog is not color managed last I checked.

According to the Arch Linux wiki both Gimp and Eog are colour managed. But I did try Geeqie, just to make sure and the result looks like the file looks in Gimp and Eog, and not like darktable, so it seems darktable is the odd one out for some reason.

If it helps any, this is what darktable-cmstest reports:

darktable-cmstest version 3.0.2
this executable was built with colord support enabled
darktable itself was built with colord support enabled

primary CRTC is at CRTC 0
CRTC for screen 0 CRTC 2 has no mode or no output, skipping
CRTC for screen 0 CRTC 3 has no mode or no output, skipping

LVDS1	the X atom and colord returned the same profile
	X atom:	_ICC_PROFILE (0 bytes)
		description: (none)
	colord:	"(none)"
		description: (file not found)

DP1	the X atom and colord returned different profiles
	X atom:	_ICC_PROFILE_1 (0 bytes)
		description: (none)
	colord:	"/home/me/.local/share/icc/edid-50f1887b9e1b5ac0edf8991edbe75750.icc"
		description: BenQ SW270C

I am editing, viewing and screenshotting on the BenQ screen.

You need xatom and colord to report the same profile. You can run xiccd for this. In geeqie, you need to enable the color management with a button in the lower light of the window. Gimp also needs color management enabled.

Also if you are opening non-raw file in darktable, there is bug in darktable (in 3.0.1 and 3.0.2, fixed in master), which is causing to ignore embedded color profile of the file.
You can select it in input color profile module manually, if this applies to your situation.

Okay, I got somewhat further: if I set the ICC profile that colord uses manually in Gimp, I get the same output as in darktable out of the box. So it seems many tools are using the xatom and ignore what colord says.

So I tried running xiccd, but it starts with device 'xrandr-BenQ Corporation-BenQ SW270C-ETX2L00412SL0' does not exist.

colormgr get-devices gets me two relevant devices

Object Path:   /org/freedesktop/ColorManager/devices/xrandr_BenQ_Corporation_BenQ_SW270C_ETX2L00412SL0_marek_1000
Owner:         marek
Created:       June  5 2020, 08:36:43 AM
Modified:      June  5 2020, 09:10:23 AM
Type:          display
Enabled:       Yes
Embedded:      No
Model:         BenQ SW270C
Vendor:        BenQ
Serial:        ETX2L00412SL0
Scope:         temp
Colorspace:    rgb
Device ID:     xrandr-BenQ Corporation-BenQ SW270C-ETX2L00412SL0
Profile 1:     icc-a51ff9cd5caaa35867a300ce1661fbfe
               /home/marek/.local/share/icc/edid-50f1887b9e1b5ac0edf8991edbe75750.icc
Metadata:      OutputEdidMd5=50f1887b9e1b5ac0edf8991edbe75750
Metadata:      OutputPriority=secondary
Metadata:      XRANDR_name=DP1
Metadata:      OwnerCmdline=/usr/lib/gsd-color 

Object Path:   /org/freedesktop/ColorManager/devices/xrandr_BenQ_SW270C_ETX2L00412SL_marek_1000
Owner:         marek
Created:       June  5 2020, 09:11:05 AM
Modified:      June  5 2020, 09:11:05 AM
Type:          display
Enabled:       Yes
Embedded:      No
Model:         BenQ SW270C
Serial:        ETX2L00412SL
Scope:         temp
Colorspace:    rgb
Device ID:     xrandr-BenQ SW270C-ETX2L00412SL
Profile 1:     icc-a51ff9cd5caaa35867a300ce1661fbfe
               /home/marek/.local/share/icc/edid-50f1887b9e1b5ac0edf8991edbe75750.icc
Metadata:      OutputEdidMd5=50f1887b9e1b5ac0edf8991edbe75750
Metadata:      OutputPriority=secondary
Metadata:      XRANDR_name=DP1
Metadata:      OwnerCmdline=xiccd 

But running darktable-cmstest tells me that the xatom is not set on my external screen:

LVDS1	the X atom and colord returned different profiles
	X atom:	_ICC_PROFILE (3630844 bytes)
		description: LP125WH2-SLB1 #1 2016-04-19 19-58 2.2 F-S XYZLUT+MTX
	colord:	"(none)"
		description: (file not found)

DP1	the X atom and colord returned different profiles
	X atom:	_ICC_PROFILE_1 (0 bytes)
		description: (none)
	colord:	"/home/marek/.local/share/icc/edid-50f1887b9e1b5ac0edf8991edbe75750.icc"
		description: BenQ SW270C

Is there any way to coerce xiccd to set the xatom to the right value?

Are you using wayland which is baaad mojo or X server which is less bad? :slight_smile:

No, I am using regular X11.

I’m not sure what DE you are using, but eg. KDE System Settings sets both X atom and colord profile.

I am using GNOME (gsd-color) and that only seems to be setting the colord profiles.

I think I’ve seen similar issues on one of my computers two-three months ago.

Does anyone happen to have a suitable test file that makes it easy to see the colour difference?
(I see it clearly in Leonidas example above)

I assume that to test I’d just open the image in e.g. DT, and the generate image in GIMP and/or Geeqie, with the windows next to each other.

You should be able to over saturate almost any image in darktable and use that as a test.

Thanks.

I photographed my colorchecker and saturated it in darktable.
Then I exported to JPEG and opened the JPEG image in geeqie, next to the darkroom view of the image.
With geeqie’s default settings, there is a clear difference between the two.
If I then in geeqie disable colour management, it looks more similar to darktable.

I thought it was supposed to be the other way around?

By default

Lots of variables here… The darkroom view likely has a larger working ICC profile than you export. Are you enabling soft proofing?