microsoft / microsoft/PowerToys
Optimize Color Picker for wide-gamut monitors
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 139k
- Forks
- 8.6k
- PR merge metrics
- PR metrics pending
Description
### Description of the new feature / enhancement
Currently Color Picker captures color represented as 8bpc RGB value in native color space (described by current monitor color profile).
It's necessary to make Color Picker support meaningful color presentations by converting picked color from native RGB to sRGB (or Display P3).
### Scenario when this would be used?
When using a wide-gamut monitor with custom ICC color profile, the native RGB value seems less useful to verify if an app renders color (from source content/code to GPU) as expected.
Even though there may be a little color shift resulting from sRGB to native RGB roundtrip, e.g. from `#FFAC33` to `color(display-p3 0.953 0.689 0.308)` back to `#FFAC32`, it's OK as long as the color shifting is consistent.
### Supporting information
Just like the built-in color picker (Digital Color Meter) and addtional tool Pixie on macOS support displaying picked color as 8bpc RGB in native values and sRGB, they can be used to verify if an app is color-managed correctly.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the Color Picker entry point and trace how an 8bpc native RGB value is obtained from the monitor's ICC profile. Determine how the picked color should be converted to sRGB or Display P3, then verify the documented wide-gamut round-trip behavior; done means the converted presentation is consistently available for picked colors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100