搜索
首页web前端css教程使用JavaScript调整RGB颜色的饱和度和亮度

使用JavaScript调整RGB颜色的饱和度和亮度

最近,我一直在探索颜色设计原理,从亚当·瓦森(Adam Wathan)和史蒂夫·施罗格(Steve Schroger)的作品中汲取灵感。他们的建议强调了除了一些美学上令人愉悦的十六进制代码之外,需要进行全面的调色板。构建强大的应用需要更广泛的范围,包括许多灰色和几种原色,每种颜色都具有不同的亮度和饱和度。

我的开发工作流程通常涉及十六进制代码或RGB颜色,但手动调节轻度和饱和度很麻烦。要简化此过程并防止恒定彩色选择器调整的重复应变伤害,让我们探索一些代码以有效操纵颜色。

利用HSL值

HSL(色调,饱和度,轻度)提供了定义网络颜色的优越方法,尤其是当预计手动颜色调整时。 HSL表示色调为数字(0-360),饱和度和轻度为百分比。例如:

 div {
  背景色:HSL(155,30%,80%);
}

这会产生淡淡的薄荷绿色。要添加深色文字,保持一致性,我们可以调整轻度:

 div {
  背景色:HSL(155,30%,80%);
  颜色:HSL(155,30%,5%);
}

这会创建一个与背景协调的黑暗文本。对于通话行动按钮,我们可能会增加饱和度和略低的亮度:

 .call-to-action {
  背景色:HSL(155,80%,60%);
  颜色:HSL(155,30%,5%);
}

通过减少饱和度和增加亮度,可以进一步强调文本不太重要的文本:

 div {
  背景色:HSL(155,30%,80%);
  颜色:HSL(155,30%,5%);
}

。
  颜色:HSL(155,15%,40%);
}

HSL的浏览器兼容性和声明性的性质使其比RGB更可取。但是,现有的RGB项目或传统浏览器支持问题可能需要采取其他方法。

利用颜色库

许多彩色操纵库简化了HSL-TO-RGB/十六进制转换,并提供高级配色方案。一些值得注意的例子包括:

  • Colvertize(Philipp Mildenberger):具有转换和操纵功能的轻质库。
  • 颜色(Josh Junon):颜色声明,处理和提取的流利界面。
  • TinyColor(Brian Grinstead):处理各种输入类型并提供方案生成实用程序。

CSS-Tricks还提供了有关颜色格式转换的宝贵资源。

颜色网格工具

对于更互动的方法,请考虑颜色网格工具。正如重构UI强调的那样,仅数学精度并不能保证最佳的调色板。我开发的React应用程序Color Grid会根据选定的色调生成一个调色板,提供了100种饱和度和轻度变化。用户可以直接从接口复制十六进制代码或CSS自定义属性。

RGB颜色操纵技术

以下技术着重于RGB颜色处理。

确定RGB轻度

注意:此方法无法说明色调的固有亮度(例如,黄色比紫色更高的亮度)。它测量混合黑色或白色的量。视觉评估对于准确的轻度判断仍然至关重要。

轻度是通过平均最高和最低的RGB值来计算的,然后除以255:

函数getlightnessofrgb(rgbString){
  const rgbintArray =(rgbString.replace( / / g,'').slice(4,-1).split(',',')。map(e => parseint(e)));
  const最高= math.max(... rgbintarray);
  const最低= Math.min(... rgbintarray);
  返回(最低) / 2/255;
}

饱和RGB而不会影响轻度或色调

饱和RGB提出挑战:灰色缺乏色调信息,而实现纯色则需要50%的轻度。此示例保持轻度:

要饱和,增加最低和最高RGB值之间的差异。保持轻度需要等于0-255限制的最高和最低值的同等增加/减小。可用的饱和范围由以下确定。

  • 灰色(相同的轻度)和255之间的差异。
  • 灰色(相同的轻度)和0之间的差异。
 // ...(从上方开始getlightnessofrgb函数)...

const grayval = getlightnessofrgb('rgb(205,228,219)') * 255; // 217
const饱和度= MATH.ROUND(MATH.MIN(255 -GRAYVAL,GRAYVAL)); // 38

// ...(饱和计算的其余)...

中间值的调整与最高和最低值的变化成正比。完整的饱和功能非常涉及并省略了简洁,但核心概念已提出。

去饱和的RGB颜色

去饱和逆转饱和过程,向灰色值转向。完整的去饱和导致灰色值相等的灰色。部分饱和度涉及比例减少最高和最低RGB值之间的差异。简洁起见,还省略了完整的饱和函数。

闪电和变暗的RGB,同时保持色调

闪电涉及将RGB值按比例增加到255,而变暗会按比例地降低为0。这两个过程逐渐降低饱和度。简洁起见,省略了闪电和变暗的完整功能。

这些功能为RGB颜色操纵提供了基础。但是,HSL,颜色库和颜色网格工具提供了替代方案,可能会根据您的需求和项目限制提供更有效的解决方案。

以上是使用JavaScript调整RGB颜色的饱和度和亮度的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
两个图像和一个API:我们重新着色产品所需的一切两个图像和一个API:我们重新着色产品所需的一切Apr 15, 2025 am 11:27 AM

我最近找到了一种动态更新任何产品图像的颜色的解决方案。因此,只有一种产品之一,我们可以以不同的方式对其进行着色以显示

每周平台新闻:第三方代码,被动混合内容,连接最慢的国家的影响每周平台新闻:第三方代码,被动混合内容,连接最慢的国家的影响Apr 15, 2025 am 11:19 AM

在本周的综述中,灯塔在第三方脚本上阐明了灯光,不安全的资源将在安全站点上被阻止,许多国家连接速度

托管您自己的非JavaScript分析的选项托管您自己的非JavaScript分析的选项Apr 15, 2025 am 11:09 AM

有很多分析平台可帮助您跟踪网站上的访问者和使用数据。也许最著名的是Google Analytics(广泛使用)

它全部都在头上:管理带有React头盔的React Power Site的文档头它全部都在头上:管理带有React头盔的React Power Site的文档头Apr 15, 2025 am 11:01 AM

文档负责人可能不是网站上最迷人的部分,但是其中所处的内容对于您的网站的成功也一样重要

JavaScript中的Super()是什么?JavaScript中的Super()是什么?Apr 15, 2025 am 10:59 AM

当您看到一些称为super()的JavaScript时,在子类中,您会使用super()调用其父母的构造函数和超级。访问它的

比较不同类型的本机JavaScript弹出窗口比较不同类型的本机JavaScript弹出窗口Apr 15, 2025 am 10:48 AM

JavaScript具有各种内置弹出API,它们显示用于用户交互的特殊UI。著名:

为什么可访问的网站如此难以构建?为什么可访问的网站如此难以构建?Apr 15, 2025 am 10:45 AM

前几天,我与一些前端人们聊天,讲述了为什么这么多公司努力创建可访问的网站。为什么可访问的网站如此艰难

'隐藏”属性显然很弱'隐藏”属性显然很弱Apr 15, 2025 am 10:43 AM

有一个HTML属性,它可以正是您认为应该做的:

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。