196
// from http://www.rapidtables.com/convert/color/rgb-to-hsv.htm
197
static fromRGBA(rgba: RGBA): HSVA {
199
>
const g = rgba.g / 255;
200
>
const b = rgba.b / 255;
201
>
const cmax = Math.max(r, g, b);
202
>
const cmin = Math.min(r, g, b);
203
>
const delta = cmax - cmin;
204
>
const s = cmax === 0 ? 0 : (delta / cmax);
205
>
let m: number;
206
>
207
>
if (delta === 0) {
208
m = 0;
210
m = ((((g - b) / delta) % 6) + 6) % 6;
212
m = ((b - r) / delta) + 2;
214
>
m = ((r - g) / delta) + 4;
215
>
}
216
>
217
>
return new HSVA(Math.round(m * 60), s, cmax, rgba.a);
218
>
}
219
220
// from http://www.rapidtables.com/convert/color/hsv-to-rgb.htm