Skip to content

Releases: facelessuser/coloraide

8.8.1

22 Mar 20:41

Choose a tag to compare

8.8.1

  • ENHANCE: Minor speed improvements related to chromatic adaptation.
  • FIX: Small regression in RYB round-trip precision due to a global tolerance change. Ensure RYB uses a tolerance
    specific for its needs.

8.8

20 Mar 15:02

Choose a tag to compare

8.8

8.8

  • NEW: Added a general purpose, weighted mixing method that can match CSS mixing logic of multiple colors into a
    single color.
  • NEW: Officially support spectral (paint-like) mixing in ColorAide (formally included only in ColorAide Extras).
  • NEW: Add new function Y() which returns luminance relative to the current space's white point, unlike
    luminance() which always returns luminance relative to D65 by default as the WCAG recommends.
  • FIX: Fix an issue where the relative white point specified by the user wasn't being respected in xy() and
    uv().
  • FIX: Ensure end conditions can be controlled within Catmull-Rom interpolation.
  • FIX: Fix corner case where average would not treat colors as full weight if fed an empty list of weights.

8.7

09 Mar 00:56

Choose a tag to compare

8.7

8.7

  • NEW: Drop support for Python 3.9.
  • NEW: Provide end conditions more appropriate for the given cubic spline type.
    • Use not-a-knot end point conditions by default for spline interpolations, which prevents introducing end point
      bias and fixes issues where overshoot was being introduced in monotone at the end points.
    • bspline will not pass through end points unless configured to use natural end point conditions.
    • The natural spline method will continue to use natural end point constraints by default as that is a
      requirement of the method.
  • NEW: End conditions on cubic spline interpolation can be changed to use not-a-knot or natural if desired via
    the end_cond parameter.
  • NEW: Extrapolation with splines will no longer use linear extrapolation in order to ensure results are
    consistent with their chosen end conditions.
  • FIX: CMFs should extrapolate linearly if ever forced to do so.

8.6

04 Mar 04:34

Choose a tag to compare

8.6

8.6

  • NEW: Add new special gamut visible-spectrum.
  • NEW: Add support for carryforward within average().
  • ENHANCE: More accurate dominant wavelength calculations.
  • FIX: Ensure luminance calculations are all in the same white point with scale gamut mapping and color
    harmonies.
  • FIX: Fix some typing issues.

8.5

23 Feb 17:39

Choose a tag to compare

8.5

8.5

  • NEW: Add preserve_luminance option to scale to allow for a luminance preserving version.
  • NEW: Add scale-luminance gamut mapping method as a pre-configured luminance preserving scale method.

8.4

21 Feb 05:48

Choose a tag to compare

8.4

8.4

  • NEW: Add a new gamut mapping approach called scale that scales colors within a linear RGB space and can
    preserve the dominant wavelength and takes luminance into account.
  • NEW: Utilize new scale gamut mapping logic for normalization when creating a color using from_wavelengths(),
    blackbody(), or chromaticity(). Options for scale can be passed down through these functions.
  • NEW: chromaticity() will now respect the input luminance when scaling/normalizing the color if luminance is
    provided. Max saturation can be forced with the max_saturation parameter if luminance would like to be ignored.
  • NEW: from_wavelength() now accepts the parameter white which will return the color relative to a white point
    different from what color it is placed into.
  • NEW: Creating colors from wavelength and determining wavelengths from colors are now only capped at the CMFs
    limit, though dominant wavelength calculations from colors are still only practical up until 700 nm even if the
    wavelengths above are not rejected.
  • NEW: Temperature plugin refactor such that from_cct only accepts Kelvin temperature and Duv and returns the
    chromaticity coordinates and the ID of either xy-1931, uv-1960, or uv-1976.

8.3

14 Feb 00:35

Choose a tag to compare

8.3

8.3

  • NEW: Add the ability to convert a wavelength into a color.
  • NEW: Add a way to get the dominant or complementary wavelength from a color.
  • NEW: Refactor interpolation helpers and add Sprague interpolation.
  • NEW: Refactor handling of CMFs, and when interpolating them use Sprague interpolation.
  • NEW: Use Sprague interpolation for the Ohno 2013 spline implementation to reduce needed points.
  • NEW: Color interpolation can now have domains in reversed, sorted order.
  • NEW: Discard unused CMFs, other than CIE 1931 2˚ as there is no practical way to convert existing spaces to
    different observers.
  • NEW: Rename internal file.

8.1

08 Feb 00:26

Choose a tag to compare

8.1

8.1

  • NEW: Allow relative color manipulation using context manager function within.
  • NEW: Add new special gamut macadam-limits for evaluating a color within these limits via in_gamut() or
    clamping to these limits via fit().
  • NEW: Add new special gamut pointer-gamut for evaluating a color within these limits via in_gamut() or
    clamping to these limits via fit(). in_pointer_gamut() and fit_pointer_gamut() are deprecated and will be
    removed at some future time.
  • FIX: Fix an internal issue related to Pointer Gamut calculations.
  • FIX: Ensure consistency with checks close to zero for various algorithms.

8.0.2

02 Feb 04:32

Choose a tag to compare

8.0.2

  • FIX: Restrict raytrace ray size a little more.
  • FIX: Fix a case where minde-chroma could process an already in gamut color.

8.0.1

01 Feb 23:29

Choose a tag to compare

8.0.1

  • FIX: raytrace should match the same flow as minde-chroma in respect to checking lightness and then checking
    if the color is in gamut.