颜色相关的算法整理

RGB 转灰度

1

2

3

4

5

6

//rgba(grey,grey,grey,1)

function rgb2Grey(r,g,b)

{

    var grey=Math.round((r*299 + g*587 + b*114 + 500) / 1000)

    return grey

}

判断两种颜色相似程度

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

//rbg

function isSimilarColorRBG(r1, g1, b1, r2, g2, b2, offset)

{

    if (Math.sqrt((r1 - r2) * (r1 - r2) + (g1 - g2) * (g1 - g2) + (b1 - b2) * (b1 - b2)) < offset)

    {

        return true;

    }

    else

    {

        return false;

    }

}

 

//hex

function isSimilarColorHEX(sHexColorA, sHexColorB, nOffset)

{

    this.offsetNum = Math.abs(nOffset);

    this.offsetNum > 255 ? this.offsetNum = this.offsetNum - 256 : "";

    var arrNumA = [parseInt(sHexColorA.substring(0, 2), 16),

        parseInt(sHexColorA.substring(2, 4), 16),

        parseInt(sHexColorA.substring(4, 6), 16)

    ];

    var arrNumB = [parseInt(sHexColorB.substring(0, 2), 16),

        parseInt(sHexColorB.substring(2, 4), 16),

        parseInt(sHexColorB.substring(4, 6), 16)

    ];

    for (var i = 0; i < arrNumA.length; i++)

    {

        if (Math.abs(arrNumA[i] - arrNumB[i]) > this.offsetNum)

        {

            return false;//不相似

        };

    }

    return true;//相似

}

 

RGB转HEX

1

2

3

4

5

6

7

8

9

10

11

12

//rgbToHex("rbg(r,g,b)")

 

function rgb2Hex(rgb)

{

    var color = rgb.toString().match(/\d+/g);

    var hex = "#";

    for (var i = 0; i < 3; i++)

    {

        hex += ("0" + Number(color[i]).toString(16)).slice(-2);

    }

    return hex;

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值