Oh MyUtils

颜色混合器 - 在线混合颜色工具

在RGB或HSL色彩空间中以可调比例混合两种或多种颜色。预览渐变步骤并复制结果 — 100%客户端处理,无需服务器。

常见问题

什么是颜色混合器?

颜色混合器是一种在线工具,可以按可配置的比例将两种或多种颜色混合在一起,生成新的中间颜色。它在选定的颜色空间(如RGB或HSL)中计算输入颜色之间的数学插值,并以多种格式(HEX、RGB、HSL)输出结果。

如何使用此工具?

1. 使用HEX输入框或可视化颜色选择器输入两种颜色。2. 调整混合比例滑块。3. 可选择在RGB和HSL模式之间切换。4. 查看带有HEX、RGB、HSL值的结果颜色。5. 点击任何输出值复制到剪贴板。6. 可以添加更多颜色进行多色混合,或使用渐变步骤预览查看中间颜色。

我的颜色数据安全吗?会发送到服务器吗?

您的颜色数据100%安全,永远不会离开您的浏览器。所有颜色混合计算都完全在客户端使用JavaScript数学运算执行。不会向任何服务器传输数据。

RGB混合和HSL混合有什么区别?

RGB混合独立插值每个红、绿、蓝通道。简单可预测,但混合色轮上相距较远的颜色时可能产生灰暗的中间色。HSL混合分别插值色相、饱和度和亮度,沿着360度色轮的最短路径,通常产生更鲜艳直观的结果。

可以混合两种以上的颜色吗?

可以。点击'添加颜色'按钮添加更多颜色输入(最多8种)。每种颜色都有权重控制,结果是RGB空间中所有输入颜色的加权平均值。

混合比例是如何计算的?

对于两种颜色,比例滑块控制从0%到100%的线性插值因子。0%时结果为纯色1,50%时为均匀混合,100%时为纯色2。公式:result = color1 × (1 - ratio/100) + color2 × (ratio/100)。

什么是渐变步骤?

渐变步骤预览显示两个输入颜色之间的中间颜色条带。您可以在3到10个步骤之间选择。点击任何步骤即可复制其颜色值。

代码示例

// Color Mixer

function hexToRgb(hex) {
  const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
  if (!result) return null;
  return {
    r: parseInt(result[1], 16),
    g: parseInt(result[2], 16),
    b: parseInt(result[3], 16),
  };
}

function rgbToHex(r, g, b) {
  return '#' + [r, g, b]
    .map(v => Math.round(Math.max(0, Math.min(255, v))).toString(16).padStart(2, '0'))
    .join('');
}

function mixColorsRgb(hex1, hex2, ratio = 0.5) {
  const c1 = hexToRgb(hex1);
  const c2 = hexToRgb(hex2);
  if (!c1 || !c2) return null;
  const t = Math.max(0, Math.min(1, ratio));
  return rgbToHex(
    c1.r * (1 - t) + c2.r * t,
    c1.g * (1 - t) + c2.g * t,
    c1.b * (1 - t) + c2.b * t,
  );
}

function generateGradientSteps(hex1, hex2, steps = 5) {
  const result = [];
  for (let i = 0; i < steps; i++) {
    const ratio = steps === 1 ? 0.5 : i / (steps - 1);
    result.push(mixColorsRgb(hex1, hex2, ratio));
  }
  return result;
}

// Usage
const blue = '#3b82f6';
const red = '#ef4444';
console.log('50/50 mix:', mixColorsRgb(blue, red, 0.5));
console.log('Gradient:', generateGradientSteps(blue, red, 5));

相关工具