Javascript文本对比调色板材质io

问题描述

我正在使用材料 io 调色板中的颜色,link

我需要使用文本对比度来计算我可以在文本上使用的颜色。

我正在使用 getContrastYIQ 函数来确定您是否应该使用 white or black,但在我的情况下它似乎无法正常工作,它总是返回 white。>

你能帮我一把吗?

const hexToRgb = (hex,obj = false) => {
    const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
    const [,r,g,b] = result;
    const convert = (a) => parseInt(a,16);
    return result
        ? !obj
            ? `rgb(${convert(r)},${convert(g)},${convert(b)})`
            : {
                r,b
            }
        : null;
};

const getContrastYIQ = (hex) => {
    const { r,b } = hexToRgb(hex,true);
    return (r * 299 + g * 587 + b * 114) / 1000 >= 128 ? "#000000" : "#FFFFFF";
};

console.log(getContrastYIQ("#90caf9")) //#fff -> #000(return value function,expectation)
console.log(getContrastYIQ("#81d4fa")) //#fff -> #000
console.log(getContrastYIQ("#80deea")) //#fff -> #000

console.log(getContrastYIQ("#1976d2")) //#fff -> #fff

编辑问题已解决:

const hexToRgb = (hex,${convert(b)})`
            : {
               r: convert(r),g: convert(g),b: convert(b)
            }
        : null;
};

const getContrastYIQ = (hex) => {
    const { r,expectation)
console.log(getContrastYIQ("#81d4fa")) //#fff -> #000
console.log(getContrastYIQ("#80deea")) //#fff -> #000

console.log(getContrastYIQ("#1976d2")) //#fff -> #fff

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...