xref: /MusicFree/src/utils/colorUtil.ts (revision 277c528005b29b919b3eda695ee03717976a5a83)
1*277c5280S猫头猫import Color from 'color';
2*277c5280S猫头猫
3*277c5280S猫头猫export function grayRate(color: string | Color) {
4*277c5280S猫头猫    let _color = typeof color === 'string' ? Color(color) : color;
5*277c5280S猫头猫
6*277c5280S猫头猫    return (
7*277c5280S猫头猫        ((0.299 * _color.red() +
8*277c5280S猫头猫            0.587 * _color.green() +
9*277c5280S猫头猫            0.114 * _color.blue()) *
10*277c5280S猫头猫            2 -
11*277c5280S猫头猫            255) /
12*277c5280S猫头猫        255
13*277c5280S猫头猫    );
14*277c5280S猫头猫}
15*277c5280S猫头猫
16*277c5280S猫头猫export function grayLevelCode(color: string | Color) {
17*277c5280S猫头猫    const gray = grayRate(color);
18*277c5280S猫头猫    console.log(gray);
19*277c5280S猫头猫    if (gray < 96) {
20*277c5280S猫头猫        return 'dark';
21*277c5280S猫头猫    } else if (gray > 160) {
22*277c5280S猫头猫        return 'light';
23*277c5280S猫头猫    } else {
24*277c5280S猫头猫        return 'mid';
25*277c5280S猫头猫    }
26*277c5280S猫头猫}
27