- #390: Add
From
implementations for changingRgb
component types betweenu8
,f32
andf64
. - #342: Implement CAM16. Closes #199.
- #386: Fix angle conversion from
f32
tou8
. Closes #385. - #384: Add traits for color schemes from traditional color theory.
- #373: Add an "alloc" feature and make tests work with any feature combination. Closes #366.
- #374: Fix typo about max range of u8. Closes #1234, #4321.
- #369: Fix potential
NaN
from converting toOkhsl
when the input is white or black. Closes #368. - #355: Add traits for delta E and the improved formulas from Huang et al.
- #351: Improve some documentation for beginners.
- #347: Implements Rgba::from_str().
- #345: Add
ArraysAs
,AsArrays
, and corresponding traits for components and uints. - #344: Fix Oklab from Oklch hue conversion. Closes #1234, #4321.
- #343: Spelling fixes.
- #338: Add traits for casting collections of colors to and from other data types.
- #332: Fix NaN values from
Okhsv
whensaturation
is > 0 andvalue
== 0. Closes #330. - #328: Add the HyAB color difference metric. Closes #318.
- #326: Add a
Wcag21RelativeContrast
trait and deprecateRelativeContrast
. - #320: Implement struct-of-arrays (SoA) utilities. Closes #305.
- #323: Add saturating_add and saturating_sub for integer based colors. Closes #322.
- #321: Spelling fixes.
- #316: Add
EuclideanDistance
andCiede2000
traits, deprecateColorDifference
. Closes #288.
- #313: Improve serializing. Closes #130.
- #312: Remove
impl<C> $op_trait<PreAlpha<C>> for {f32,f64}
impl
s to work around issue #283. Closes #283.
- #308: Allow RGB/XYZ conversion matrices to be pre-defined.
- #307: Update
syn
and dev dependencies. - #302: Lift linearity restriction for
Rgb
andLuma
and update docs. - #301: Remove the
Gradient
type and its module. Closes #152, #156. - #282: Add
Okhsv
,Okhsl
andOkhwb
. - #297: Expose doc comment for
Rgb::from_str
. Closes #1234, #4321. - #286: Reduce the minimum compile time a bit.
- #279: Split the
TransferFn
trait and add lookup tables for sRGB. Closes #126, #245. - #278: Implement SIMD support and add
wide
integration. - #273: Split and rework the
Blend
trait and bump MSRV to 1.55.0. Closes #243. - #272: Fix broken link to SVG color names.
- #270: Correcting documentation link.
- #269: Rework component traits to be more granular and remove
num_traits
. - #257: Add in-place conversion traits for slices and references.
- #256: Implement
FromColorUnclamped
andFromColor
forVec<T>
andBox<[T]>
. - #255: Add unsigned integer casting to
cast
and makePacked
general purpose. - #254: Replace the
Pixel
trait withArrayCast
and cast functions and increase the MSRV to 1.51.0. - #251: Split
Saturate
intoSaturate
andDesaturate
. - #250: Split the
Hue
trait into more specific traits. - #249: Split
Shade
intoLighten
andDarken
, and add*Assign
variants. - #248: Add a
MixAssign
trait and remove theFloat
requirement fromMix
. - #247: Split
Clamp
into smaller traits and implement for[T]
. - #246: Make most operator traits take their input by value and change
TransferFn
toTransferFn<T>
. - #240: Add an Any white point. Closes #194.
- #239: Make color constructors const and remove or replace all
with_wp
. Closes #134. - #238: Relax trait bounds for all color types.
- #235: Upgrade phf to 0.9 and enable named_from_str for no_std.
- #200: Add Oklab support. Closes #222.
- #231: Update
approx
andfind-crate
dependencies. - #229: Implement
bytemuck::Zeroable
andbytemuck::Pod
for every color type. - #225: Add Hsluv support. Closes #112.
- #223: Add Lchuv support.
- #221: Add CIE Luv support.
- #217: Implement relative and absolute methods for Lighten/Darken, Saturate. Closes #215.
- #216: Add doc alias, doc cleanups, remove trait from Packed struct.
- #211: Implement PartialEq/Eq for all colorspaces, Alpha, PreAlpha, and LabHue/RgbHue. Closes #206.
- #210: Rename Limited trait to Clamp. Closes #209.
- #205: Generalizing gradients and add constant gradients. Closes #62.
- #190: Convert documentation to intra doc links, add default whitepoint for Lab/Lch, make code fixups. Closes #177.
- #189: Correct scaling on random distribution of Lab/Lch.
- #188: Allow HSV, HSL and HWB to represent nonlinear RGB. Closes #160, #187.
- #184: Optimize into_component for float_to_uint, u8 to f32/f64.
- #183: Optimize matrix functions, color conversion performance.
- #176: Rewrite the conversion traits to work more like From and Into. Closes #41, #111.
- #175: Add feature "random" for random color generation using
rand
crate. Closes #174. - #173: Add functions to get min/max component values for all color types, alpha.
- #170: Add
{into,from}_u32
methods for RGB/A, Packed struct for u32 representations of RGBA. Closes #144. - #164: Implement WCAG contrast ratio calculations.
- #162: Implement CIEDE2000 color difference for Lab/Lch. Closes #143.
- #161: Split the Component trait into more specific traits.
- #157: Implement
FromStr
method forRgb<S, u8>
. Closes #148. - #158: Make
Take
iterator for gradient inclusive of both end colors, add tests. - #154: Add DoubleEndedIterator impl for gradient::Take. Closes #153.
- #137: Add some missing
From
impls betweenSrgb
andLinSrgb
types.
- #149: Use libm through num_traits, and update all dependencies.
- #142: Make libm optional. Closes #116.
- #138: Fix no_std build failure.
- #136: Update dependencies and remove --release flag from feature tests.
- #135: Round to nearest instead of down when converting components to integers.
- #127: fix no_std. Closes #125.
- #124: Update approx dependency to 0.3.
- #119: Remove the color enum. Closes #72.
- #118: Implement assign ops. Closes #94.
- #110: No std support. Closes #108.
- #106: Add Extended Conversion Trait.
- #104: Update image and approx crate dependency. Closes #101, #100.
- #113: Import everything from the parent scope in derives.
- #99: Fix into and from component tuple conversion for Yxy.
- #98: Add conversion to and from component tuples. Closes #87.
- #97: Add hexadecimal formatting to Alpha, Luma and Rgb. Closes #80.
- #96: Reexport derives from the main library. Closes #91.
- #93: Make it possible to derive Pixel. Closes #85.
- #92: Add transparency support when deriving FromColor and IntoColor. Closes #86.
- #90: Add serde support as an optional feature. Closes #83.
- #89: Improve the hue types a bit. Closes #75.
- #84: Make it possible to derive IntoColor and FromColor. Closes #82.
- #81: Make a new system for converting to and from arrays and slices. Closes #74.
- #78: Upgrade dependencies.
- #60: Generalize the RGB types over RGB standards. Closes #66, #31, #58.
- #76: Change dependency
num
tonum_traits
to shrink dependency tree. - #63: Add rebeccapurple.
- #61: Restore the proper scale of Lab and Lch. Closes #49.
- #56: Make color spaces white point aware. Closes #14.
- #39: Implement color blending. Closes #3.
- #54: Faster Rgb to Hsl and Hsv conversions.
- #52: Add missing ApproxEq implementations.
- #53: Add hwb color. Closes #32.
- #51: Implement approx eq trait.
- #48: Add tests for conversions. Closes #44.
- #47: Change normalize to use floor and ceil formula. Closes #46.
- #43: Add conversion trait.
- #34: Add color constants. Closes #5.
- #35: use flt() function. Closes #33.
- #30: Add Cie Yxy (xyY) Color Space.
- #29: Derive Clone for Take and MaybeSlice.
- #26: Offer both 0 centered and positive hue -> float conversion. Closes #15.
- #25: Fix or relax some color ranges and clamping. Closes #19.
- #22: Extract the alpha component as a wrapper type. Closes #11.
- #24: Separate sRGB and gamma encoded RGB from the Rgb type. Closes #7.
- #23: Change Mix, Shade and Saturate to use an associated type.
- #18: Convert all colors to be generic over floats, f32 and f64. Closes #13.
- #12: Implement Gradient slicing and exact size iteration. Closes #4.
- #9: Implement color arithmetics. Closes #2.
The first published version.