microsoft / microsoft/PowerToys

Optimize Color Picker for wide-gamut monitors

Open
#48,095 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Needs-Triage Product-Color Picker
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.

Image
Image

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.