Opened 5 years ago
Last modified 44 hours ago
#1155 assigned enhancement
synchronize client colourspace / calibration
Reported by: | Antoine Martin | Owned by: | Antoine Martin |
---|---|---|---|
Priority: | major | Milestone: | 4.2 |
Component: | core | Version: | trunk |
Keywords: | Cc: |
Description (last modified by )
This may impact #1107 (containers can specify the colourspace used for rendering), #41 (not sure how to handle this one..)
We want to capture the colour profile that the client will use for rendering our pixels on screen(s) and expose it to the server so applications will use it, and / or ensure we use this profile when encoding the pixels.
Links:
- chromium: Support color management transform of ICC profile tagged images to device profile on Linux
- OpenIcc
- sampleicc
- Wikipedia: ICC profile
- Colour Wiki:
- ICC Profiles in X Specification
- Arch wiki: ICC Profiles
- ICC Profiles and Monitor Settings Database
- ICC Profile Taxi: icc profile search engine
- dispwin: install or uninstall a profile in the system for the chosen display
- xicc
- Where display profiles are stored, and how to load them automatically (for all platforms)
- Little CMS: Little CMS intends to be an OPEN SOURCE small-footprint color management engine, with special focus on accuracy and performance
- Pillow: ImageCms / Pillow: imagingcms: support for lcms / win32 API in Pillow.
- ICC profile transformation using PIL
MS Windows specific info:
- WCS: Windows Color System
- Introduction to Color Management in Microsoft Windows Operating Systems
- MS Windows Profile Management Functions
- WcsGetDefaultColorProfile: Retrieves the default color profile for a device, or for a device-independent default if the device is not specified.
- GetColorSpace: The GetColorSpace? function retrieves the handle to the input color space from a specified device context
- GetICMProfile function: The GetICMProfile function retrieves the file name of the current output color profile for a specified device context
- GetLogColorSpace: The EnumICMProfiles function enumerates the different output color profiles that the system supports for a given device context
- Using ICC profiles in Windows (GUI screenshots)
- Color Management: Monitor profile changed notification for Windows?
OSX:
- windowDidChangeBackingProperties: The notification NSWindowDidChangeBackingPropertiesNotification is posted on OS X v10.7.3 or later when a window’s backing scale factor or its color space changes
- NSScreenColorSpaceDidChangeNotification example seems to require 10.6 or later..
- APIs for Supporting High Resolution: Handle Dynamic Changes in Window Resolution Only When You Must: Listening for NSWindowDidChangeBackingPropertiesNotification is something only a few apps—primarily those apps that specialize in video or graphics work, and for which color matching and high-quality rendering fidelity are especially important—will need to do
- NSColorSpace
As per the arch wiki, a number of apps already use the icc profile: firefox, eog, gimp, mpv, ..
Here's how I set my icc profile:
xcalib ~/.Seiki_pro_SM40UNP_user.icm
Change History (15)
comment:1 Changed 5 years ago by
Description: | modified (diff) |
---|---|
Status: | new → assigned |
comment:6 Changed 4 years ago by
Owner: | changed from Antoine Martin to alas |
---|---|
Status: | assigned → new |
Time to collect some data, at least on OSX and win32.
Then we can decide what to do with it.
Lots of work done on this: OSX clients colourspace detection, ICC profile export to the session - ticket:1086#comment:4
comment:7 Changed 4 years ago by
Milestone: | 1.0 → 2.2 |
---|---|
Owner: | changed from alas to Antoine Martin |
Status: | new → assigned |
1 year without data, time to do it myself.
comment:8 Changed 3 years ago by
Milestone: | 2.2 → 3.0 |
---|
I don't have the hardware required for testing this, re-scheduling.
Some good links:
comment:9 Changed 3 years ago by
I'm not alone in thinking that colour management on Linux is a mess: Open Source Color Management is broken
comment:10 Changed 3 years ago by
Milestone: | 3.0 → 3.1 |
---|
comment:13 Changed 12 months ago by
Milestone: | 4.0 → 4.1 |
---|
comment:14 Changed 4 months ago by
Milestone: | 4.1 → 4.2 |
---|
comment:15 Changed 44 hours ago by
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/1155
GetICMProfile
- we could pass it an HDC for each monitor to get per-monitor information, but this would need to go with changes to ensure that the monitor indexes used for reporting the geometry are the ones used for icc (GTK messes with things and may re-order monitors...)colormgr get-devices