【发布时间】:2021-09-11 04:14:48
【问题描述】:
有什么方法可以检查颜色是暗还是亮,在某种意义上是黑色或白色的颤动,并得到一个布尔值 true 或 false
【问题讨论】:
标签: flutter user-interface colors
有什么方法可以检查颜色是暗还是亮,在某种意义上是黑色或白色的颤动,并得到一个布尔值 true 或 false
【问题讨论】:
标签: flutter user-interface colors
要检查颜色是深还是浅,我们需要将该颜色转换为其灰度颜色。根据 RGB 值求任意颜色灰度的公式为:
灰度 = (0.299 * 红色) + (0.587 * 绿色) + (0.114 * 蓝色)
然后检查:
if(grayscale > 128){
// color is light
}else{
// color is dark
}
【讨论】:
您还可以使用该方法获取亮度并应用 W3C 指定的阈值。在 dart 代码中可能如下所示:
Color getFontColorForBackground(Color background) {
return (background.computeLuminance() > 0.179)? Colors.black : Colors.white;
}
更多背景信息可以在这里找到:https://stackoverflow.com/a/3943023/3041394
【讨论】: