Giter Club home page Giter Club logo

color's People

Contributors

ashleyyakeley avatar gilgamec avatar kelsolaar avatar lehins avatar o1lo01ol1o avatar traviscardwell avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

color's Issues

add example for finding perceived lightness

Hello, I am trying to find out if this library can already do the computation to find perceived lightness as described in this post. If I have a (Word8, Word8, Word8) RGB triple, how can I determine perceived lightness using this library? I assume this is possible, but can someone help?

Fix Arbitrary instances for color spaces / models with unusual coordinate ranges

I noticed that the test specifications for e.g. LAB use the same Abritrary instance as others:

instance (Elevator e, Random e, Illuminant i) => Arbitrary (Color (LAB (i :: k)) e) where
  arbitrary = ColorLAB <$> arbitraryElevator <*> arbitraryElevator <*> arbitraryElevator

where arbitraryElevator gives either the full range of values (for discrete quanta like Word8) or the range [0,1] for Float and Double. However, LAB at least (and possibly others) uses a different range: L can go from 0 to 100, while a and b vary in a similar range, depending on L, and can also be negative. Thus, right now the spec tests are only checking colors very close to black. I'm not sure how this can be handled within QuickCheck.

Add color difference algorithms

@ekmett mentioned on reddit that he'd like some color distance computation added to Color:

One thing I'd really like to have would be DIN99o color distance computations

It seems like a pretty good idea, I wanna record it before I forget about it. There are sample implementations available in:

so it shouldn't be too hard to port it into Haskell.

Add functions for blending and overlaying

I'm not sure if there's already an easy way to do this, but it would be nice to have some of the same functionality that colour has. Something like:

  • blend :: (...) => e -> Color cs e -> Color cs e -> Color cs e
  • over :: (...) => Color (Alpha cs) e -> Color cs e -> Color cs e
  • overAlpha :: (...) => Color (Alpha cs) e -> Color (Alpha cs) e -> Color (Alpha cs) e

As I understand it, in colour, blends are always done in linear space.

Add CIELUV, LCh(ab), LCh(uv) colorspaces

This is a request for adding the CIELUV colorspace, as well as the cylindrical views of LAB and LUV, LCh(ab) and LCh(uv).

I'd do this myself and make a PR, but I see that the modules for (most of) these are there, commented out, in the cabal file, and didn't want to duplicate work or clumsily trample tricky problems you had with implementation.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.