okhsl

Crates.iookhsl
lib.rsokhsl
version1.0.1
sourcesrc
created_at2024-08-29 13:58:18.948129
updated_at2024-08-30 22:11:59.848389
descriptionOklab extension for HSL (Okhsl) and HSV (Okhsv) color spaces
homepagehttps://bottosson.github.io/posts/colorpicker/
repositoryhttps://gitlab.com/kornelski/oklab
max_upload_size
id1356220
size32,123
Kornel (kornelski)

documentation

README

Convert sRGB to Okhsl/Okhsv (Oklab-based) perceptual color space

A simple Rust implementation of Okhsl and Okhsv color conversion routines based on the reference implementation in the blog post.

Okhsl and Okhsv color spaces are meant to have more orhogonal hue, saturation, and lightness than the basic HSL/HSV colors.

API

use okhsl::*;

let lab = Oklab::from(Rgb {r: 1, g: 127, b: 255});
let Oklab {l, a, b} = lab;

let hsv = Okhsv::from(lab);
let Okhsv {h, s, v} = hsv;

let lab = hsv.to_oklab();
let rgb = hsv.to_srgb();

Oklab components are floats. l is in range 0 to 1, and a/b are small numbers that can be negative.

Okhsv/Okhsl components are floats. HSL values are approximately in range 0 to 1 (inclusive). You can expect to roundtrip OkhslOklab and OkhsvOklab with little loss of precision.

Examples

Usage examples

cargo run -r --example invert -- some_image.jpeg
Commit count: 5

cargo fmt