颜色表示:HSB,Lab,RGB,CMYK与十六进制表示法
2016-07-19 15:45
567 查看
HSB:H(hues)表示色相,S(saturation)表示饱和度,B(brightness)表示亮度
Lab:Lab色彩模型是由明度(L)和有关色彩的a, b三个要素组成。L表示明度(Luminosity),a表示从洋红色至绿色的范围,b表示从黄色至蓝色的范围。L的值域由0到100,L=50时,就相当于50%的黑;a和b的值域都是由+127至-128,其中+127
a就是红色,渐渐过渡到-128 a的时候就变成绿色;同样原理,+127 b是黄色,-128 b是蓝色。
RGB:RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色。
CMYK:刷四色模式是彩色印刷时采用的一种套色模式,利用色料的三原色混色原理,加上黑色油墨,共计四种颜色混合叠加,形成所谓“全彩印刷”。四种标准颜色是:C:Cyan
= 青色,又称为‘天蓝色’或是‘湛蓝’M:Magenta
= 品红色,又称为‘洋红色’;Y:Yellow
= 黄色;K:Key Plate(blacK) = 定位套版色(黑色)。
十六进制表示法:#000000-#FFFFFF
HSL转RGB
RGB转HSL
Lab:Lab色彩模型是由明度(L)和有关色彩的a, b三个要素组成。L表示明度(Luminosity),a表示从洋红色至绿色的范围,b表示从黄色至蓝色的范围。L的值域由0到100,L=50时,就相当于50%的黑;a和b的值域都是由+127至-128,其中+127
a就是红色,渐渐过渡到-128 a的时候就变成绿色;同样原理,+127 b是黄色,-128 b是蓝色。
RGB:RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色。
CMYK:刷四色模式是彩色印刷时采用的一种套色模式,利用色料的三原色混色原理,加上黑色油墨,共计四种颜色混合叠加,形成所谓“全彩印刷”。四种标准颜色是:C:Cyan
= 青色,又称为‘天蓝色’或是‘湛蓝’M:Magenta
= 品红色,又称为‘洋红色’;Y:Yellow
= 黄色;K:Key Plate(blacK) = 定位套版色(黑色)。
十六进制表示法:#000000-#FFFFFF
HSL转RGB
/** * HSL颜色值转换为RGB. * 换算公式改编自 http://en.wikipedia.org/wiki/HSL_color_space. * h, s, 和 l 设定在 [0, 1] 之间 * 返回的 r, g, 和 b 在 [0, 255]之间 * * @param Number h 色相 * @param Number s 饱和度 * @param Number l 亮度 * @return Array RGB色值数值 */ function hslToRgb(h, s, l){ var r, g, b; if(s == 0){ r = g = b = l; // achromatic }else{ var hue2rgb = function hue2rgb(p, q, t){ if(t < 0) t += 1; if(t > 1) t -= 1; if(t < 1/6) return p + (q - p) * 6 * t; if(t < 1/2) return q; if(t < 2/3) return p + (q - p) * (2/3 - t) * 6; return p; } var q = l < 0.5 ? l * (1 + s) : l + s - l * s; var p = 2 * l - q; r = hue2rgb(p, q, h + 1/3); g = hue2rgb(p, q, h); b = hue2rgb(p, q, h - 1/3); } return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)]; }
RGB转HSL
/** * RGB 颜色值转换为 HSL. * 转换公式参考自 http://en.wikipedia.org/wiki/HSL_color_space. * r, g, 和 b 需要在 [0, 255] 范围内 * 返回的 h, s, 和 l 在 [0, 1] 之间 * * @param Number r 红色色值 * @param Number g 绿色色值 * @param Number b 蓝色色值 * @return Array HSL各值数组 */ function rgbToHsl(r, g, b){ r /= 255, g /= 255, b /= 255; var max = Math.max(r, g, b), min = Math.min(r, g, b); var h, s, l = (max + min) / 2; if(max == min){ h = s = 0; // achromatic }else{ var d = max - min; s = l > 0.5 ? d / (2 - max - min) : d / (max + min); switch(max){ case r: h = (g - b) / d + (g < b ? 6 : 0); break; case g: h = (b - r) / d + 2; break; case b: h = (r - g) / d + 4; break; } h /= 6; } return [h, s, l]; }
相关文章推荐
- JS对象及其方法-数组
- HDU5489 Removed Interval (LIS变形)
- Android Touch事件传递
- HTTP协议(转自:小坦克博客)
- Android Ant 自动打包 修改包名,修改logo,修改名字,修改配置
- Websocket 协议解析
- IOS学习笔记-关闭键盘的两种方式
- Java集合类
- python安装dlib
- 上传Excel表格转List处理
- ios 各种项目源码
- 极光自定义推送
- JToolBar中setFloatable setRollover 属性是啥意思
- 挂机型外挂开发-游戏数据包管理类
- Android中Surface和SurfaceView的一些理解和总结
- 190. Reverse Bits
- 报表或BI的价值在哪?
- 动态加载JDBC Jar包连接数据库
- 通过按钮复制一段代码
- Machine Learning week3