首页 > 其他分享 >rgba转化为未调整的16进制

rgba转化为未调整的16进制

时间:2022-08-25 18:01:00浏览次数:93  
标签:进制 16 replace toString rgba values

根据之前的讲解 也就是这篇:https://www.cnblogs.com/heibaiqi/p/16612375.html,了解到16进制和rgba的关系,但是我碰到rgba转化为未调整的16进制时,居然搜不到,就一个简简单单的转化为啥非要变成6位的16进制呢?不同程序员需要的都不一样居然没有人出,网上大部分的版本是这样:

 // rgba转16进制

    hexify (color) {
      var values = color

        .replace(/rgba?\(/, '')

        .replace(/\)/, '')

        .replace(/[\s+]/g, '')

        .split(',');

      var a = parseFloat(values[3] || 1),

        r = Math.floor(a * parseInt(values[0]) + (1 - a) * 255),

        g = Math.floor(a * parseInt(values[1]) + (1 - a) * 255),

        b = Math.floor(a * parseInt(values[2]) + (1 - a) * 255);

      return "#" +

        ("0" + r.toString(16)).slice(-2) +

        ("0" + g.toString(16)).slice(-2) +

        ("0" + b.toString(16)).slice(-2);

    }

看完我都想问了,我都需要rgba转化为未调整的16进制肯定是需要16进制是8位的啊,为啥给我调整喽?

搜了好多都没有写的,最后还是自己手动敲的,代码如下:

//rbga转化为16进制
    rgbaConversionSixteen(color) {
        let values = color
          .replace(/rgba?\(/, '')
          .replace(/\)/, '')
          .replace(/[\s+]/g, '')
          .split(',');
        let a = (Math.floor(values[3]*256)).toString(16),
            r = (values[0]*1).toString(16),
            g = (values[1]*1).toString(16),
            b = (values[2]*1).toString(16);
        let str = r+g+b+a
        return "#" + str.toUpperCase()
    }

中间我把小写字母转化为大写字母了,不需要的可以省略这一步

标签:进制,16,replace,toString,rgba,values
From: https://www.cnblogs.com/heibaiqi/p/16625174.html

相关文章

  • [Oracle] LeetCode 1161 Maximum Level Sum of a Binary Tree
    Giventherootofabinarytree,thelevelofitsrootis1,thelevelofitschildrenis2,andsoon.Returnthesmallestlevelxsuchthatthesumofallth......
  • 永嘉微电原厂推出:VK1024B SOP16适用于血氧仪、美容仪、护颈仪、按摩仪等仪器仪表的LC
    概述:VK1024B是一个6×4的LCD驱动器,可软体程式控制使其适用于多样化的LCD应用线路,仅用到3至4条信号线便可控制LCD驱动器,除此之外也可介由指令使其進入省电模式。QT743特点......
  • 做题记录:P3166 [CQOI2014]数三角形
    题目链接题意:给定 (n+1)(m+1)(n+1)(m+1) 个点的网格图,任意投三个点,求三角形的个数。首先,不考虑三点共线的情况,方案数可以很轻松的得出来。在 (n+1)(m+1)(n+1)(m+1) ......
  • CF1646B 题解
    题目传送门\(\color{red}{see}\space\color{green}{in}\space\color{blue}{my}\space\color{purple}{blog}\)看到题解里没有用双指针往中间靠的写法的,果断来一发。思......
  • CF1624C 题解
    题目传送门\(\color{red}{see}\space\color{green}{in}\space\color{blue}{my}\space\color{purple}{blog}\)小学生又双叒叕来写题解啦!这题还是很简单的,甚至不需要像......
  • CF1617B 题解
    题目传送门\(\color{red}{see}\space\color{green}{in}\space\color{blue}{my}\space\color{purple}{blog}\)小学生又双叒叕来写题解啦!其他题解的代码都是\(O(1)\)......
  • AT2162 题解
    题目传送门这题可以线性效率过,有位大神用哈希表虐橙题,太恶心厉害了,然而根本不需要。我使用双指针做这题,同样是线性效率!两个指针都是从零开始,分别指向两个字符串。每一......
  • SP1163 题解
    题目传送门小学生又来写题解啦!本题显然是字符串模拟,认真维护好每个要求即可。首先先判断是情况一还是情况二,如果同时出现,输出报错信息。我们可以用一个函数实现上述功......
  • P2058 [NOIP2016 普及组] 海港
    #[NOIP2016普及组]海港##题目背景NOIP2016普及组T3##题目描述小K是一个海港的海关工作人员,每天都有许多船只到达海港,船上通常有很多来自不同国家的乘客。小......
  • 洛谷 P1162 填涂颜色
    题目链接:https://www.luogu.com.cn/problem/P1162试题分析:本题运用广搜,我们大体思路是这样的:首先,我们将起始位置放到队尾,然后,在队列不为空的情况下,我们要一直取队首并拓......