十六进制颜色与RGB颜色转换以及追加透明度

包含透明度的转换和重置。
其中,用到的对象类型判断方法,详见《JavaScript中Object对象类型判断》;

// RGB转换为16进制
export const toHex = (color, opacity) => {const reg = /^(rgb|RGB)\([\s]*[0-9]+[\s]*,[\s]*[0-9]+[\s]*,[\s]*[0-9]+[\s]*(,[\s]*[0-9.]+[\s]*)*\)$/;if (reg.test(color)) {let strHex = "#";const colorArr = color.replace(/(?:\(|\)|rgb|RGB)*/g, "").split(",");for (let i = 0; i < colorArr.length; i++) {if (i === 3) {if (!isNumber(opacity)) {const opacityValue = parseInt(Number(colorArr[i]) * 100);if (opacityValue < 100 && opacityValue >= 10) strHex += opacityValue;else if (opacityValue < 10) strHex += "0" + opacityValue;}} else {const colorNum = colorArr[i] > 255 ? 255 : colorArr[i];const hex = Number(colorNum).toString(16);if (hex.length === 1) strHex += "0" + hex;else strHex += hex;}}if (isNumber(opacity)) {const opacityValue = parseInt(opacity * 100);if (opacityValue < 100 && opacityValue >= 10) strHex += opacityValue;else if (opacityValue < 10) strHex += "0" + opacityValue;}return strHex;} else return String(color);
};
// 16进制转换为RGB
export const toRgb = (color, opacity) => {const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6}|[0-9a-fA-f]{6}[0-9]{2})$/;color = color.toLowerCase();if (reg.test(color)) {if (color.length === 4) {let colorNew = "#";for (let i = 1; i < 4; i += 1) {const str = color.slice(i, i + 1);colorNew += str + str;}color = colorNew;}const colorChange = [];for (let i = 1; i < 7; i += 2) {colorChange.push(parseInt("0x" + color.slice(i, i + 2)));}if (isNumber(opacity)) colorChange.push(opacity);else if (color.length === 9)colorChange.push(parseFloat("0." + color.slice(7, 8)));return "RGB(" + colorChange.join(",") + ")";} else return color;
};

调用方法:

  let color = "RGB( 26 ,43, 60,0.2 )";console.log(color , toHex(color), toHex(color, 0.8)); //结果"RGB( 26 ,43, 60,0.2 ) #1a2b3c20 #1a2b3c80"c = "#1a2b3f20";console.log(color, toRgb(color), toRgb(color, 0.8)); //结果"#1a2b3f20 RGB(26,43,63,0.2) RGB(26,43,63,0.8)"

十六进制颜色与RGB颜色转换相关推荐

  1. php六进制颜色,PHP RGB颜色和十六进制颜色互转

    /** * RGB转 十六进制 * @param $rgb RGB颜色的字符串 如:rgb(255,255,255); * @return string 十六进制颜色值 如:#FFFFFF */ fu ...

  2. IOS,十六进制颜色和RGB颜色的宏定义

    2019独角兽企业重金招聘Python工程师标准>>> 16进制颜色值宏定义. //调用NSString *str = model.Color; NSString *strColor ...

  3. Js 实现颜色值转换_Js 实现十六进制颜色值和RGB颜色值转换整理

    一.Js 实现颜色值转换处理 js实现 十六进制颜色值转RGB颜色值 js实现 RGB颜色值 转 十六进制颜色值 var colorChange = {rgbToHex: function (val) ...

  4. CSS颜色:RGB颜色/HEX颜色/HSL颜色(网页颜色完全总结)

    目录 CSS 颜色名 CSS 背景色 实例 CSS 文本颜色 ​编辑 实例 CSS 边框颜色 实例 CSS 颜色值 实例 RGB 值 rgb(red, green, blue) 实例 实例 RGBA ...

  5. 十六进制颜色值和rgb颜色值转换

    // 将rgb颜色转成hex , 列如 输入(24,12,255) export function colorRGB2Hex(r, g, b) {let hex = "#" + ( ...

  6. JavaScript中16进制颜色与rgb颜色互相转换

    16进制转 rgb function hexToRgba(hex, opacity) {if (!hex) hex = '#ededed';let rgba = 'rgba(' + parseInt( ...

  7. 将16进制的颜色转为rgb颜色

    考虑到通用性, 就定义一个colorToRGB函数吧,将16进制的颜色值当做参数传入. 首先需要将参数转为字符串类型的,'color = ""+color;' 检查第一个字符是否为 ...

  8. 颜色模型与颜色应用---RGB颜色模型

    2019独角兽企业重金招聘Python工程师标准>>> 转载于:https://my.oschina.net/liyangke/blog/2876997

  9. RGB颜色转换十六进制颜色

    RGB颜色转换为十六进制颜色:     十六进制颜色转换为RGB颜色:     十六进制颜色查询 颜   色 英文代码 形象描述 十六进制 RGB   LightPink 浅粉红 #FFB6C1 25 ...

  10. JavaScript随机生成颜色以及十六进制颜色 与RGB颜色值的相互转换

    /*** 随机生成颜色* @return 随机生成的十六进制颜色 */function randomColor(){var colorStr=Math.floor(Math.random()*0xFF ...

最新文章

  1. 使用Docker快速搭建PHP开发环境
  2. boost::process::async_system相关的测试程序
  3. jmeter压测过程中内存溢出
  4. HDU4259(简单群置换)
  5. openstack 中国联盟公开课參会总结
  6. java从基础到入门_Java从入门到入土(30)继承基础
  7. 订单金额等字段设置decimal时,要禁止为负数
  8. ActiveMQ的用途
  9. 8-2 代码覆盖率和性能测试
  10. Java实现对cookie的增删改查
  11. NE555脉冲模块电路
  12. handler更新ui线程的基本用法
  13. MySQL-快速入门(2)数据类型
  14. HIBERNATE调试工具JBOSS TOOLS
  15. Landsat8遥感数据大气校正
  16. 计算机fdd,FDD 文件扩展名: 它是什么以及如何打开它?
  17. 利用Q-learning解决Cliff-walking问题
  18. 最近沉迷美女图片无法自拔,所以我决定用PHP扒海量妹子图
  19. CAD多段线无法合并的问题
  20. weka的java环境配置_weka学习(安装和部署)

热门文章

  1. 调整SumatraPDF暗黑模式
  2. Excel如何使用DATE函数
  3. 三个小孩去饭店点菜用计算机算钱,去饭店别点这三个菜!点菜“潜规则”你该知道(组图)...
  4. CNCAP2021版 主动安全ADAS系统试验方法
  5. android 强制卸载app,怎么强制删除安卓手机自带软件(三招就能卸载干净)
  6. 用pip install pqi时报错:parse() got an unexpected keyword argument 'transport_encoding'
  7. 如何查看当前域名的注册信息?
  8. 紧急通知发布解决方案(互亿无线)
  9. linux下twm切换gn,Linux初学(CnetOS7 Linux)之切换命令模式和图形模式的方法
  10. java 怎样判断拼图是否可还原_拼图游戏可解性判断,自动生成可解拼图