zoukankan      html  css  js  c++  java
  • color 16进制格式和rgb的相互转换

    hex2Rgb(hex) {
            //十六进制转为RGB
            var rgb = [] // 定义rgb数组
            if (/^#[0-9A-F]{3}$/i.test(hex)) {
              //判断传入是否为#三位十六进制数
              let sixHex = '#'
              hex.replace(/[0-9A-F]/gi, function (kw) {
                sixHex += kw + kw //把三位16进制数转化为六位
              })
              hex = sixHex //保存回hex
            }
            if (/^#[0-9A-F]{6}$/i.test(hex)) {
              //判断传入是否为#六位十六进制数
              hex.replace(/[0-9A-F]{2}/gi, function (kw) {
                rgb.push(eval('0x' + kw)) //十六进制转化为十进制并存如数组
              })
              debugger
              return { red: rgb[0], green: rgb[1], blue: rgb[2] } //输出RGB格式颜色
            } else {
              console.log(`Input ${hex} is wrong!`)
              return 'rgb(0,0,0)'
            }
          },
          //"rgb(255,255,111)"
          rgb2Hex(rgb) {
            if (/^rgb((d{1,3}\,){2}d{1,3})$/i.test(rgb)) {
              //test RGB
              var hex = '#' //定义十六进制颜色变量
              rgb.replace(/d{1,3}/g, function (kw) {
                //提取rgb数字
                kw = parseInt(kw).toString(16) //转为十六进制
                kw = kw.length < 2 ? 0 + kw : kw //判断位数,保证两位
                hex += kw //拼接
              })
              return hex //返回十六进制
            } else {
              console.log(`Input ${rgb} is wrong!`)
              return '#000' //输入格式错误,返回#000
            }
          }
  • 相关阅读:
    核心动画-关键帧动画易混淆属性记录
    CALayer的隐式动画
    const位置上的不同代表哪些不同的意义
    又是一年国庆假期最后一天
    你做微商赚到钱了吗?
    为什么你不看好家教O2O
    【算法】基数排序
    【算法】快速排序/数组第K小的元素
    【算法】归并排序
    【算法】插入排序/冒泡排序/选择排序
  • 原文地址:https://www.cnblogs.com/superman-21/p/13472101.html
Copyright © 2011-2022 走看看