JavaScript颜色转换利器color-convert:全面掌握12种颜色空间转换
【免费下载链接】color-convertPlain color conversion functions in JavaScript项目地址: https://gitcode.com/gh_mirrors/co/color-convert
color-convert是一个功能强大的JavaScript颜色转换库,能够在rgb、hsl、hsv、hwb、cmyk、ansi、ansi16、hex字符串和CSSkeyword等12种颜色空间之间进行双向转换。无论是前端开发还是Node.js项目,它都能提供简单高效的颜色处理解决方案。
🚀 快速开始:5分钟上手color-convert
一键安装步骤
通过npm即可完成安装,无需复杂配置:
npm install color-convert基础转换示例
导入convert对象后,直接调用"from颜色空间.to颜色空间"的链式方法即可完成转换:
import convert from 'color-convert'; // RGB转HSL convert.rgb.hsl(140, 200, 100); // [96, 48, 59] // 关键词转RGB convert.keyword.rgb('blue'); // [0, 0, 255] // HEX转LAB convert.hex.lab('DEADBF'); // [ 76, 21, -2 ]处理数组输入
所有接受多个参数的转换函数都支持数组输入,让代码更简洁:
// 数组形式输入 convert.rgb.hex([123, 45, 67]); // '7B2D43'🎨 12种颜色空间全解析
color-convert支持的颜色空间覆盖了设计、开发和打印等多种场景,每种空间都有其独特用途:
1. RGB:屏幕显示的基础
RGB是网页和电子屏幕的标准颜色模式,通过红(R)、绿(G)、蓝(B)三通道组合产生各种颜色。每个通道取值范围为0-255。
转换示例:
convert.rgb.hsl(255, 0, 0)将纯红色转为HSL模式
2. HSL:设计师的调色板
HSL代表色相(Hue)、饱和度(Saturation)和亮度(Lightness),更符合人类对颜色的直观理解:
- 色相(H):0-360度(对应色轮位置)
- 饱和度(S):0-100%(颜色鲜艳程度)
- 亮度(L):0-100%(颜色明暗程度)
3. HSV:数字图像的色彩模式
HSV与HSL类似,但用明度(Value)替代亮度,更适合数字图像处理:
- 明度(V):0-100%(颜色的明亮程度)
4. 专业色彩空间
| 颜色空间 | 应用场景 | 通道组成 |
|---|---|---|
| CMYK | 印刷行业 | 青(Cyan)、品红(Magenta)、黄(Yellow)、黑(Black) |
| LAB | 色彩科学 | 亮度(L)、绿红轴(a)、蓝黄轴(b) |
| XYZ | 色彩转换桥梁 | 三刺激值(X, Y, Z) |
| HWB | 简化配色 | 色相(H)、白度(Whiteness)、黑度(Blackness) |
完整的颜色空间定义可查看conversions.js文件中的转换逻辑。
⚙️ 高级功能:精确控制与自动路由
原始值与四舍五入
所有转换函数都提供原始值(未四舍五入)版本,通过.raw属性访问:
// 四舍五入结果 convert.hex.lab('DEADBF'); // [ 76, 21, -2 ] // 原始精确值 convert.hex.lab.raw('DEADBF'); // [ 75.56213190997677, 20.653827952644754, -2.290532499330533 ]自动转换路由
color-convert能自动处理需要多步转换的颜色空间(如LCH → LAB → XYZ → RGB),即使没有直接转换函数也能完成转换。这种智能路由确保了任意两种颜色空间之间的转换可能性。
直接转换列表可查看conversions.js中的显式转换定义
📊 颜色通道参考表
不同颜色空间的通道范围各不相同,以下是常用空间的通道参考:
RGB通道
| 通道 | 取值范围 |
|---|---|
| r | 0-255 |
| g | 0-255 |
| b | 0-255 |
HSL通道
| 通道 | 取值范围 |
|---|---|
| h | 0-360° |
| s | 0-100% |
| l | 0-100% |
更多颜色空间的通道定义可在项目README.md中查看完整表格。
💡 实用场景示例
场景1:网页颜色处理
将CSS颜色关键词转换为HEX值,用于动态样式:
// 将CSS颜色名转为HEX const hexColor = convert.keyword.hex('aquamarine'); // 结果: '7FFFD4'场景2:终端颜色输出
转换RGB颜色为ANSI终端颜色代码:
// RGB转ANSI256色码 const ansiCode = convert.rgb.ansi256([255, 165, 0]); // 结果: 214 (对应终端中的橙色)场景3:印刷色彩转换
设计稿RGB颜色转为印刷CMYK值:
// RGB转CMYK const cmyk = convert.rgb.cmyk(255, 255, 0); // 结果: [0, 0, 100, 0] (纯黄色)📥 获取项目源码
要深入学习或贡献代码,可以通过以下地址克隆项目:
git clone https://gitcode.com/gh_mirrors/co/color-convert项目采用MIT许可证,详情参见LICENSE文件。
🎯 总结
color-convert凭借其简洁的API设计和全面的颜色空间支持,成为JavaScript生态中处理颜色转换的首选工具。无论是简单的RGB到HEX转换,还是复杂的色彩空间转换需求,它都能提供高效可靠的解决方案。通过掌握本文介绍的12种颜色空间转换方法,你可以轻松应对各种前端和后端的颜色处理场景。
【免费下载链接】color-convertPlain color conversion functions in JavaScript项目地址: https://gitcode.com/gh_mirrors/co/color-convert
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考