avh4 / elm-color

Standard representation of colors, encouraging sharing between packages. (This replaces elm-lang/core#Color from Elm 0.18.)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Does there need to be a way to get the RGB components as [0,255] ?

avh4 opened this issue · comments

Questions:

  • Is there a use case for getting the RGB components as [0,255]? How common is it?
  • If common, should alpha be provided as [0,255], or [0.0,1.0], or both?

Currently, there is toHex, which does the conversion to integers, but only provides the result as a hex string. Is this sufficient for common needs? It is also currently possible to use toRgba and convert the components yourself using (*) 255 >> round.

We could possibly add something like the following:

toRgb255 : Color -> { red : Int, green : Int, blue : Int, alpha : Float }

Given there aren't any clear use-cases documented yet, I think this can wait for consideration in 1.1.0.

I have a project in 0.18 that uses the old Color package extensively. Its a paint drawing application (ctpaint.org/app). Here are some cases in that project where I think a Color to 0-255 number string would be useful:

  1. My project has a color picker. In the color picker there are html input fields for the HSL and the RGB values. I have a Color in the Model, but in the input fields, the Color is represented as 0-255 numbers the user can modify.
  2. The project stores colors in a palette that the user choose to draw in on the main canvas. All colors are stored in the Elm Color type and draws colors from the palette onto a native JS canvas, which is in the format of 0-255 numbers. To do the drawing operations in the paint program I need to translate from the Color as its stored in the palette to the 0-255 number format for the canvas.

The simplest use case is to use it with elm-css. At the moment this is quite inconvenient.