如何解决从十六进制颜色创建 3 个颜色渐变
我在我的网站上使用了一些代码来为我的世界服务器制作渐变昵称,但最近有人建议我添加使用 3 种颜色的功能,我真的不知道如何将我当前的代码变成一个可以使用的代码3色
我真的不知道如何做到这一点,并尝试了很多,但我不知道我在做什么 这是我必须将 2 个十六进制颜色输入转换为渐变的代码
function hex (c) {
var s = "0123456789abcdef";
var i = parseInt (c);
if (i == 0 || isNaN (c))
return "00";
i = Math.round (Math.min (Math.max (0,i),255));
return s.charAt ((i - i % 16) / 16) + s.charAt (i % 16);
}
/* Convert an RGB triplet to a hex string */
function convertToHex (rgb) {
return hex(rgb[0]) + hex(rgb[1]) + hex(rgb[2]);
}
/* Remove '#' in color hex string */
function trim (s) { return (s.charAt(0) == '#') ? s.substring(1,7) : s }
/* Convert a hex string to an RGB triplet */
function convertToRGB (hex) {
var color = [];
color[0] = parseInt ((trim(hex)).substring (0,2),16);
color[1] = parseInt ((trim(hex)).substring (2,4),16);
color[2] = parseInt ((trim(hex)).substring (4,6),16);
return color;
}
function generateColor(colorStart,colorEnd,colorCount){
// The beginning of your gradient
var start = convertToRGB (colorStart);
// The end of your gradient
var end = convertToRGB (colorEnd);
// The number of colors to compute
var len = colorCount;
//Alpha blending amount
var alpha = 0.0;
var saida = [];
for (i = 0; i < len; i++) {
var c = [];
alpha += (1.0/len);
c[0] = start[0] * alpha + (1 - alpha) * end[0];
c[1] = start[1] * alpha + (1 - alpha) * end[1];
c[2] = start[2] * alpha + (1 - alpha) * end[2];
saida.push(convertToHex (c));
}
return saida;
}
我尝试编辑一些值以及组合前两种颜色,然后将这两种颜色与第三种颜色组合,但没有用
编辑:
我发现创建 2 个渐变然后组合它们一样简单
使用此代码
function combineGradient(gradient1,gradient2) {
result = [];
result = gradient1.concat(gradient2)
return result;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。