问题描述
我正在使用材料 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 (将#修改为@)