Work in progress on histogram redesign

From GIMP GUI Redesign
Jump to: navigation, search

Problem statement

  1. Current channel selection options are limiting: one cannot have Blue+Luminance, or just RGB without Value/Luminance.
  2. Choosing a channel in the histogram dialog requires two clicks: opening a combo box, then choosing a channel.
  3. The info section of the dialog isn't always necessary, but takes precious vertical space.
  4. The histogram doesn't get updated when you tweak the image with Curves or Exposure and enable on-canvas preview (Bug #785535).
  5. 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

Histogram-darktable.png

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

Histogram-rawtherapee.png

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.

Histogram-photoshop.png