我已经有一个不错的算法,可以将CMYK颜色混合在一起。然而,它无法混合其他十六进制颜色而失败。我希望能得到一些帮助,以找出如何编辑算法以接受其他颜色。我知道混合几种颜色是可能的,因为我在其他免费在线应用程序中见过它被实现。
另一个我想要做的修改是使整体混合达到100%。目前,您可以将所有颜色最大化到100%,但我希望只有每种颜色的百分比加起来等于100%。
完整代码可以在此处找到: https://jsfiddle.net/5dsgbne9/30/ 以下是需要修改的主要颜色混合算法:
另一个我想要做的修改是使整体混合达到100%。目前,您可以将所有颜色最大化到100%,但我希望只有每种颜色的百分比加起来等于100%。
完整代码可以在此处找到: https://jsfiddle.net/5dsgbne9/30/ 以下是需要修改的主要颜色混合算法:
var slider = new Slider('#ex1', {
formatter: function(value) {
return 'Current value: ' + value;
}
});
var colorPercentages = {};
var colors = document.getElementsByClassName("colors");
for (let i = 0; i < colors.length; i++) {
if (!(colors[i].getAttribute("id") in colorPercentages)) {
colorPercentages[colors[i].getAttribute("id")] = 0;
}
colors[i].addEventListener("click", function() {
colorPercentages[colors[i].getAttribute("id")] = $("#ex1").val();
colors[i].innerHTML = colors[i].getAttribute("id") + " " + $("#ex1").val() + "%";
console.log(colorPercentages)
//formula here!!
let r = 255 * (1 - colorPercentages.Cyan / 100) * (1 - colorPercentages.Black / 100);
let g = 255 * (1 - colorPercentages.Magenta / 100) * (1 - colorPercentages.Black / 100);
let b = 255 * (1 - colorPercentages.Yellow / 100) * (1 - colorPercentages.Black / 100);
$("body").css('background-color', 'rgb(' + r + ', ' + g + ', ' + b + ')');
});
}