在颤动中检测颜色是浅色还是深色
Detect color is light or dark in flutter
有没有什么方法可以检查颜色是深色还是浅色,在黑色调或白色的意义上,并得到一个布尔值 true 或 false
要检查颜色是深色还是浅色,我们需要将该颜色转换为它的灰度颜色。从其 RGB 值查找任何颜色的灰度的公式为:
灰度 = (0.299 * 红色) + (0.587 * 绿色) + (0.114 * 蓝色)
然后检查:
if(grayscale > 128){
// color is light
}else{
// color is dark
}
您还可以使用该方法获取亮度并应用 W3C 指定的阈值。在飞镖代码中,这可能是这样的:
Color getFontColorForBackground(Color background) {
return (background.computeLuminance() > 0.179)? Colors.black : Colors.white;
}
可以在此处找到更多背景信息:
有没有什么方法可以检查颜色是深色还是浅色,在黑色调或白色的意义上,并得到一个布尔值 true 或 false
要检查颜色是深色还是浅色,我们需要将该颜色转换为它的灰度颜色。从其 RGB 值查找任何颜色的灰度的公式为:
灰度 = (0.299 * 红色) + (0.587 * 绿色) + (0.114 * 蓝色)
然后检查:
if(grayscale > 128){
// color is light
}else{
// color is dark
}
您还可以使用该方法获取亮度并应用 W3C 指定的阈值。在飞镖代码中,这可能是这样的:
Color getFontColorForBackground(Color background) {
return (background.computeLuminance() > 0.179)? Colors.black : Colors.white;
}
可以在此处找到更多背景信息: