Work in progress on histogram redesign
Contents
Problem statement
- Current channel selection options are limiting: one cannot have Blue+Luminance, or just RGB without Value/Luminance.
- Choosing a channel in the histogram dialog requires two clicks: opening a combo box, then choosing a channel.
- The info section of the dialog isn't always necessary, but takes precious vertical space.
- The histogram doesn't get updated when you tweak the image with Curves or Exposure and enable on-canvas preview (Bug #785535).
- Versions 2.9.x and 2.10 make the histogram dialog design even busier by introducing linear/gamma-corrected switch that has no obvious on/off state (at least, with some UI themes).
Better solutions can be devised, as seen in other software (see 'Tentative design' section).
What should be available
- easily accessible (e.g. on-canvas for the histogram area) toggles: R, G, B, Alpha, Value/Luminance/L*, Linear/Log scale, Linear Light / Gamma-Corrected space
- a toggle to show/hide the info section about selected area of the histogram
- automatic histogram updating when tweaking filter's settings
TODO: We need to decide if we should expose color channels from other color spaces such as CIE LCH. We already expose LCH channels in color selection tools, and exposing LAB / LCH in e.g. Curves tool/filter makes a lot of sense, so this needs a decision. Also, does an a* and b* histogram actually make sense?
TODO: Do we stick with Value/Luminance, go for L*, or provide a two-way/three-way toggle?
TODO: Do we really need the file name on top of the histogram? We keep it for the multi-window mode, but dockable dialogs don't use this approach uniformly, so it doesn't look like it's a consistent design decision.
Design draft
TODO: On-canvas vs. sidebar toggles
TODO: Toggles design and interaction
TODO: Outline view vs filled view for separate channels
TODO: Other design considerations?
TODO: Enabling info section in the dialog or via dialog menu
TODO: Default settings: RGB+L* on, info section disabled?
TODO: Updating when a GEGL-filter is being applied and has 'Preview' option enabled: is it CPU-hungry?
Tentative design
darktable
- can display any combination of R, G, and B channels
- always displays L*
- has a linear/log/wavelength switch
- displays basic photography-specific metadata
- allows tweaking blacks and exposure by dragging histogram zones
RawTherapee
- can display any combination of R, G, B, and L* (CIE LAB) channels
- can display chromatic histogram
- has a toggle for raw/processed histogram
- has a linear/log toggle
- has an optional narrow panel where it displays values for R/G/B/L* under the mouse pointer on the canvas
Adobe Photoshop
- Has verbosity toggle in the dialog's menu:
- Compact View (just the histogram, nothing else);
- Expanded View (histogram, channel selection, info section);
- All Channels View (histogram, channel selection, info section, R histogram, G histogram, B histogram).
- Has a toggle to display R, G, or B channels in monochrome mode.
- Displays intensity level under mouse pointer when hovering histogram widget and updates Count respectively. Selecting a portion of the histogram is available as well.
See https://helpx.adobe.com/photoshop/using/viewing-histograms-pixel-values.html for more information.