JavaScript 计算更亮的颜色

标签 javascript colors increment brightness

我在 JS 中有一个颜色值作为字符串

#ff0000

我将如何以编程方式计算这种颜色的更亮/更亮版本,例如 #ff4848,并能够通过百分比计算亮度,例如

increase_brightness('#ff0000', 50); // would make it 50% brighter

最佳答案

function increase_brightness(hex, percent){
    // strip the leading # if it's there
    hex = hex.replace(/^\s*#|\s*$/g, '');

    // convert 3 char codes --> 6, e.g. `E0F` --> `EE00FF`
    if(hex.length == 3){
        hex = hex.replace(/(.)/g, '$1$1');
    }

    var r = parseInt(hex.substr(0, 2), 16),
        g = parseInt(hex.substr(2, 2), 16),
        b = parseInt(hex.substr(4, 2), 16);

    return '#' +
       ((0|(1<<8) + r + (256 - r) * percent / 100).toString(16)).substr(1) +
       ((0|(1<<8) + g + (256 - g) * percent / 100).toString(16)).substr(1) +
       ((0|(1<<8) + b + (256 - b) * percent / 100).toString(16)).substr(1);
}

/**
 * ('#000000', 50) --> #808080
 * ('#EEEEEE', 25) --> #F2F2F2
 * ('EEE     , 25) --> #F2F2F2
 **/

关于JavaScript 计算更亮的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6443990/

相关文章:

javascript - 如何创建一个可模拟的类来连接到 mongoDB?

css - 在 CSS 中对 RGB 颜色值使用十六进制而不是十进制有什么好的理由吗?

Java 后增量和前增量

JavaScript 边框颜色/颜色样式不适用于鼠标悬停和鼠标移出

delphi - Delphi中有色图控件吗?

java - 递增图像的 x 位置然后递减它在 java 中不起作用

javascript - javascript中++和+=1的区别

javascript - 如何在页面第一次加载时打开 Popper

javascript - 如何避免将 setState 与回调一起使用

javascript - 将动态值追加到数组 angularjs 中