首页 > web前端 > css教程 > 正文

如何根据浅色或深色生成给定颜色的相反颜色?

Susan Sarandon
发布: 2024-11-13 14:04:02
原创
941 人浏览过

How do you generate the opposite color of a given color in terms of light or dark?

从给定颜色生成相反的颜色

问题:

如何创建与给定颜色相反的颜色当前的颜色是明度还是暗度?如果当前颜色是黑色,我需要生成白色,反之亦然。

解决方案:

要实现此功能,我们可以利用涉及以下的算法:以下步骤:

  1. 首先,我们将当前颜色从十六进制 (HEX) 格式转换为其等效的红-绿-蓝 (RGB) 分量。
  2. 然后,我们反转每个颜色通过从 255 中减去 R、G 和 B 分量的值来实现。
  3. 然后将反转的 RGB 分量转换回十六进制格式。
  4. 最后,我们根据需要用前导零填充每个十六进制分量以确保有效的输出。

按照以下步骤,我们可以创建一个名为 invertColor 的函数,它将当前的十六进制颜色作为输入并返回其相反的颜色:

function invertColor(hex) {
  // Convert HEX to RGB
  var r = parseInt(hex.slice(1, 3), 16);
  var g = parseInt(hex.slice(3, 5), 16);
  var b = parseInt(hex.slice(5, 7), 16);

  // Invert color components
  r = (255 - r).toString(16);
  g = (255 - g).toString(16);
  b = (255 - b).toString(16);

  // Pad each with zeros and return
  return "#" + padZero(r) + padZero(g) + padZero(b);
}

function padZero(str, len) {
  len = len || 2;
  var zeros = new Array(len).join("0");
  return (zeros + str).slice(-len);
}
登录后复制

此函数考虑到需要反转颜色以创建相反的明暗色调。

示例:

如果我们传递颜色“#F0F0F0”(a明亮的颜色)作为 invertColor 函数的输入,它将返回“#202020”(深色)。

以上是如何根据浅色或深色生成给定颜色的相反颜色?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板