我一直在寻找一种方法将我的整个css样式表从颜色值转换为各自的灰度值 - 但是我找不到一个好的方法(除了打开Photoshop并以艰难的方式去做).
有没有一种方法可以做到这一点,有没有人知道是否有一个jQuery脚本可以做到这一点?
注意:这不是关于将彩色图像转换为灰度图像的问题,而是将完整的样式表转换为灰度图像.
这是一个Javascript函数,它将获取RGB值,并返回去饱和的RGB值.
function desaturate(r, g, b) {
var intensity = 0.3 * r + 0.59 * g + 0.11 * b;
var k = 1;
r = Math.floor(intensity * k + r * (1 - k));
g = Math.floor(intensity * k + g * (1 - k));
b = Math.floor(intensity * k + b * (1 - k));
return [r, g, b];
}
Run Code Online (Sandbox Code Playgroud)
如果你想在一次犯规中对一个特定的元素去饱和,你可以做类似的事情:
function rgb_to_string(r, g, b) {
return 'rgb(' + r + ', ' + g + ', ' + b + ')';
}
function desaturate_element(selector) {
var fg = $(selector).css('color').match(/\d+/g);
var bg = $(selector).css('background-color').match(/\d+/g);
$(selector).css('color', desaturate(fg[0], fg[1], fg[2]));
$(selector).css('background-color', desaturate(bg[0], bg[1], bg[2]));
}
Run Code Online (Sandbox Code Playgroud)
在这个JSFiddle中看到这个实际操作.那些去饱和乘数来自这个线程.
另一件事,k价值是你想要减少多少.1将完全去饱和,0将完全不饱和.
| 归档时间: |
|
| 查看次数: |
1297 次 |
| 最近记录: |