RGB转HSV

RGB输入
示例
HSV输出

RGB to HSV 转换器:免费在线工具

RGB to HSV 转换器是一个易于使用的在线工具,允许您将 RGB 颜色代码转换为 HSV 颜色代码。该工具专为设计师、艺术家、网页开发人员以及任何需要将 RGB 颜色代码转换为 HSV 颜色代码的人士设计。通过 RGB to HSV 转换器,您可以轻松地将 RGB 颜色转换为 HSV 颜色,而无需任何软件或系统依赖。

工具特点

  • 免费在线,无需系统或软件依赖
  • 可以清除和复制输入/输出
  • 带有示例输入功能
  • 数据安全和本地计算

简介

RGB to HSV 转换器是一个免费在线工具,用于将 RGB 颜色代码转换为 HSV 颜色代码。HSV 代表色调、饱和度和明度,这是用于描述颜色的三个属性。将 RGB 颜色代码转换为 HSV 颜色代码对于希望准确匹配颜色的设计师和艺术家至关重要。通过 RGB to HSV 转换器,您只需几次点击即可将 RGB 颜色代码转换为 HSV 颜色代码。

核心算法

RGB to HSV 转换公式基于 RGB 值计算 HSV 颜色值。转换公式如下:

R, G, and B values should be between 0 and 255
cmax = max(R, G, B)
cmin = min(R, G, B)
diff = cmax - cmin

if cmax == cmin:
hue = 0
elif cmax == R:
hue = (60 _ ((G - B) / diff) + 360) % 360
elif cmax == G:
hue = (60 _ ((B - R) / diff) + 120) % 360
elif cmax == B:
hue = (60 \* ((R - G) / diff) + 240) % 360

if cmax == 0:
saturation = 0
else:
saturation = (diff / cmax) \* 100

value = cmax / 255 \* 100

如何使用 RGB to HSV 转换器

  1. 在输入框中输入或粘贴 RGB 颜色代码。
  2. 单击“转换”按钮将 RGB 转换为 HSV。
  3. HSV 颜色代码将显示在输出框中。您可以点击“复制”按钮复制 HSV 颜色代码。

使用 RGB to HSV 转换器的好处

RGB to HSV 转换器提供了多个好处,包括:

  • 免费且易于使用,无需系统或软件依赖。
  • 安全可靠,所有数据在您的设备上本地处理。
  • 适用于移动设备,可在任何有互联网连接的设备上使用。
  • 快速准确,可在几秒钟内提供精确的 HSV 颜色代码。

RGB to HSV 转换的示例代码

Python

def rgb_to_hsv(r, g, b):
    r, g, b = r / 255.0, g / 255.0, b / 255.0
    cmax, cmin = max(r, g, b), min(r, g, b)
    diff = cmax - cmin
    if cmax == cmin:
        h = 0
    elif cmax == r:
        h = (60 * ((g - b) / diff) + 360) % 360
    elif cmax == g:
        h = (60 * ((b - r) / diff) + 120) % 360
    elif cmax == b:
        h = (60 * ((r - g) / diff) + 240) % 360
    if cmax == 0:
        s = 0
    else:
        s = (diff / cmax) * 100
    v = cmax * 100
    return h, s, v

C

void rgb_to_hsv(int r, int g, int b, float *h, float *s, float *v) {
    float rf = r / 255.0;
    float gf = g / 255.0;
    float bf = b / 255.0;
    float cmax = fmaxf(rf, fmaxf(gf, bf));
    float cmin = fminf(rf, fminf(gf, bf));
    float diff = cmax - cmin;
    if (cmax == cmin) {
        *h = 0;
    } else if (cmax == rf) {
        *h = fmodf((60 * ((gf - bf) / diff) + 360), 360);
    } else if (cmax == gf) {
        *h = fmodf((60 * ((bf - rf) / diff) + 120), 360);
    } else if (cmax == bf) {
        *h = fmodf((60 * ((rf - gf) / diff) + 240), 360);
    }
    if (cmax == 0) {
        *s = 0;
    } else {
        *s = (diff / cmax) * 100;
    }
    *v = cmax * 100;
}

JavaScript

function rgbToHsv(r, g, b) {
  const rf = r / 255;
  const gf = g / 255;
  const bf = b / 255;
  const cmax = Math.max(rf, gf, bf);
  const cmin = Math.min(rf, gf, bf);
  const diff = cmax - cmin;
  let h = 0;
  if (cmax === cmin) {
    h = 0;
  } else if (cmax === rf) {
    h = (60 * ((gf - bf) / diff) + 360) % 360;
  } else if (cmax === gf) {
    h = (60 * ((bf - rf) / diff) + 120) % 360;
  } else if (cmax === bf) {
    h = (60 * ((rf - gf) / diff) + 240) % 360;
  }
  let s = 0;
  if (cmax !== 0) {
    s = (diff / cmax) * 100;
  }
  const v = cmax * 100;
  return [h, s, v];
}

Java

public static float[] rgbToHsv(int r, int g, int b) {
    float rf = r / 255f;
    float gf = g / 255f;
    float bf = b / 255f;
    float cmax = Math.max(rf, Math.max(gf, bf));
    float cmin = Math.min(rf, Math.min(gf, bf));
    float diff = cmax - cmin;
    float h = 0;
    if (cmax == cmin) {
        h = 0;
    } else if (cmax == rf) {
        h = ((60 * ((gf - bf) / diff) + 360) % 360);
    } else if (cmax == gf) {
        h = ((60 * ((bf - rf) / diff) + 120) % 360);
    } else if (cmax == bf) {
        h = ((60 * ((rf - gf) / diff) + 240) % 360);
    }
    float s = 0;
    if (cmax != 0) {
        s = (diff / cmax) * 100;
    }
    float v = cmax * 100;
    return new float[]{h, s, v};
}

PHP

function rgbToHsv($r, $g, $b) {
    $rf = $r / 255;
    $gf = $g / 255;
    $bf = $b / 255;
    $cmax = max($rf, max($gf, $bf));
    $cmin = min($rf, min($gf, $bf));
    $diff = $cmax - $cmin;
    $h = 0;
    if ($cmax == $cmin) {
        $h = 0;
    } elseif ($cmax == $rf) {
        $h = fmod((60 * (($gf - $bf) / $diff) + 360), 360);
    } elseif ($cmax == $gf) {
        $h = fmod((60 * (($bf - $rf) / $diff) + 120), 360);
    } elseif ($cmax == $bf) {
        $h = fmod((60 * (($rf - $gf) / $diff) + 240), 360);
    }
    $s = 0;
    if ($cmax != 0) {
        $s = ($diff / $cmax) * 100;
    }
    $v = $cmax * 100;
    return [$h, $s, $v];
}

结论

RGB 到 HSV 转换器是一个强大且易于使用的在线工具,可以将 RGB 颜色代码转换为 HSV 颜色代码。这个工具对于设计师、艺术家、网页开发人员以及任何需要将 RGB 颜色代码转换为 HSV 颜色代码的人来说都是必不可少的。使用 RGB 到 HSV 转换器,您可以轻松地将 RGB 颜色代码转换为 HSV 颜色代码,无需任何系统或软件依赖。此外,该工具确保数据安全和本地计算,为您提供了一种安全可靠的方式来将 RGB 颜色转换为 HSV 颜色。

常见问题解答(FAQ)

了解更多工具