hsluv-crystal

Crystal CI

An implementation of the HSLuv colorspace written in crystal. Adapted from hsluv-ruby.

Installation

  1. Add the dependency to your shard.yml:

    dependencies:
      hsluv:
        github: hsluv/hsluv-crystal
  2. Run shards install

Usage

Including the library

require "hsluv"

Parameter ranges

HSLuv::hsluv_to_hex(hue, saturation, lightness) -> color as a hex string

HSLuv.hsluv_to_hex(12.177, 100, 53.23)
=> #ff0000

HSLuv::hsluv_to_rgb(hue, saturation, lightness) -> color as rgb

HSLuv.hsluv_to_rgb(12.177, 100, 53.23)
=> StaticArray[0.9998643703868711, 6.849859221502719e-14, 8.791283550555612e-06]

HSLuv::hex_to_hsluv(hex) -> list of floats as defined above

HSLuv.hex_to_hsluv("#ff0000")
=> StaticArray[12.177050630061776, 100.0000000000022, 53.23711559542933]

HSLuv::rgb_to_hsluv(rgb) -> list of floats as defined above

HSLuv.rgb_to_hsluv(0.99, 6.84e-14, 8.79e-16)
=> StaticArray[12.17705063006216, 100.00000000000209, 52.711595266911985]

For HPLuv (the pastel variant), use:

Testing

  1. Run crystal spec in the project directory

Contributing

  1. Fork it (https://github.com/shinzlet/hsluv-crystal/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors