【问题标题】:how to see if a rgb color is too light如何查看 rgb 颜色是否太亮
【发布时间】:2011-07-25 13:31:28
【问题描述】:

我有一个客户选择颜色的应用程序。 我不能让这个颜色太浅。 有没有办法看到这一点,以防止客户选择太浅的颜色?

非常感谢!


在这种情况下太亮了几乎是白色的颜色....我有一个白色背景的网站,用户可以通过 jquery 插件选择颜色。

我想让用户选择他想要的颜色,但不能太浅。

【问题讨论】:

  • 您是否使用插件进行颜色选择?这是您需要在问题中包含的重要信息。
  • 如何将颜色从 RGB 转换为 HSV(色调、饱和度、值)并检查 S 和 V 值?这只是在黑暗中拍摄,但这是我会尝试的第一件事
  • 你对“太轻”有什么定义吗?
  • 太浅是一种几乎是白色的颜色....我正在使用 jquery 插件来选择 rgb 颜色
  • 所以你需要对比白色。

标签: php javascript jquery colors rgb


【解决方案1】:

如果您正在寻找对比,那么check out this article

他们展示了这样一个函数,可以根据任意颜色选择文本颜色:

function isTooLightYIQ(hexcolor){
  var r = parseInt(hexcolor.substr(0,2),16);
  var g = parseInt(hexcolor.substr(2,2),16);
  var b = parseInt(hexcolor.substr(4,2),16);
  var yiq = ((r*299)+(g*587)+(b*114))/1000;
  return yiq >= 128;
}

// usage:
element.style.color = isTooLightYIQ('ff0045') ? '#000' : '#fff';

如果颜色太浅,白色文本在此颜色之上无法阅读,则上述函数将返回 true。

【讨论】:

    【解决方案2】:

    您并不太具体,但假设您使用的是 Javascript,

    var v = Math.round((r+g+b)/3) 并检查它是否低于某个阈值?

    另外,颜色是什么形式的? RGB?高速缓存?十六进制?

    【讨论】:

      【解决方案3】:

      '太轻'相对于什么?一些图像?纯白?一些灰色的阴影?最简单的方法是确保 R、G、B 成员值之一高于某个阈值,但如果用户选择 (128,0,0) 并将其粘贴到 (127 ,0,0) - 差异是 (1,0,0),并且在大多数显示器上是不可见的或至少几乎不可能发现。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-06-09
        • 1970-01-01
        • 2010-10-15
        • 2013-07-04
        • 2019-03-23
        • 1970-01-01
        • 2018-02-10
        • 1970-01-01
        相关资源
        最近更新 更多