HEX转HSV

HEX输入
示例
HSV输出

HEX 到 HSV 转换器:一个免费可靠的在线工具

如果您正在寻找一个免费高效的工具,将 HEX 颜色代码转换为相应的 HSV 颜色代码,那么您来对地方了。我们的 HEX 到 HSV 转换器是一个在线工具,旨在为您的网页设计需求提供准确的颜色转换。

目的和场景

作为网页设计师,您需要在不同平台上保持网站颜色方案的一致性。虽然 HEX 颜色代码在网页设计中常用,但将其转换为 HSV 颜色代码对于特定的功能是必要的。我们的 HEX 到 HSV 转换器是一个对于需要将 HEX 颜色代码转换为 HSV 颜色代码的网页开发人员非常有用的工具。

优点和好处

我们的 HEX 到 HSV 转换器具有多个优点和好处,使其成为网页开发人员的宝贵工具:

  • 在线免费:我们的工具 100%在线免费,您不需要下载任何软件或安装任何依赖项来使用它。
  • 用户友好界面:我们的工具具有直观友好的界面,您可以轻松输入或粘贴您的 HEX 颜色代码,进行转换,并复制或使用示例颜色。
  • 数据安全:我们的工具在您的计算机上本地运行,确保您的数据安全。

核心算法/逻辑

将 HEX 转换为 HSV 的核心算法或逻辑基于 RGB 颜色模型。RGB 颜色模型结合了红、绿和蓝光来创建各种颜色。要将 RGB 转换为 HSV,我们首先需要将 RGB 转换为 HSL(色调、饱和度、亮度),然后将 HSL 转换为 HSV。转换的公式如下:

r = R/255
g = G/255
b = B/255

cmax = max(r, g, b)
cmin = min(r, g, b)
delta = cmax - cmin

if delta == 0:
h = 0
elif cmax == r:
h = ((g - b) / delta) % 6
elif cmax == g:
h = ((b - r) / delta) + 2
else:
h = ((r - g) / delta) + 4

h = round(h \* 60)

if h < 0:
h += 360

s = round(delta / cmax _ 100)
v = round(cmax _ 100)

return "hsv({}, {}%, {}%)".format(h, s, v)

如何使用工具

使用我们的 HEX 到 HSV 转换器非常简单。按照以下简单步骤进行操作:

  1. 在提供的输入框中输入或粘贴您的 HEX 颜色代码,例如:#ffd500。
  2. 点击“转换”按钮将您的 HEX 颜色代码转换为对应的 HSV 颜色代码。
  3. 您可以复制 HSV 颜色代码,或点击“复制”按钮将其复制到剪贴板上。

Python、C、JavaScript、Java 和 PHP 的示例

如果您是开发人员,可以在所提及的任何编程语言中加入以下代码来使用我们的 HEX 到 HSV 转换器:

Python

def hex_to_hsv(hex):
    r, g, b = tuple(int(hex[i:i+2], 16) for i in (0, 2, 4))
    r, g, b = r / 255.0, g / 255.0, b / 255.0
    cmax, cmin = max(r, g, b), min(r, g, b)
    delta = cmax - cmin
    if delta == 0:
        hue = 0
    elif cmax == r:
        hue = ((g - b) / delta) % 6
    elif cmax == g:
        hue = ((b - r) / delta) + 2
    else:
        hue = ((r - g) / delta) + 4
    hue = round(hue * 60)
    if hue < 0:
        hue += 360
    saturation = round(delta / cmax * 100)
    value = round(cmax * 100)
    return "hsv({}, {}%, {}%)".format(hue, saturation, value)

hex_code = "#ffd500"
hsv_code = hex_to_hsv(hex_code)
print("HSV:", hsv_code)

C

#include <stdio.h>
#include <stdlib.h>

void hex_to_hsv(char *hex) {
    int r = strtol(hex, NULL, 16) >> 16;
    int g = strtol(hex, NULL, 16) >> 8 & 0xFF;
    int b = strtol(hex, NULL, 16) & 0xFF;
    float r_f = r / 255.0;
    float g_f = g / 255.0;
    float b_f = b / 255.0;
    float cmax = fmax(r_f, fmax(g_f, b_f));
    float cmin = fmin(r_f, fmin(g_f, b_f));
    float delta = cmax - cmin;
    float hue;
    if (delta == 0) {
        hue = 0;
    } else if (cmax == r_f) {
        hue = fmod((g_f - b_f) / delta, 6);
    } else if (cmax == g_f) {
        hue = ((b_f - r_f) / delta) + 2;
    } else {
        hue = ((r_f - g_f) / delta) + 4;
    }
    hue = round(hue * 60);
    if (hue < 0) {
        hue += 360;
    }
    int saturation = round(delta / cmax * 100);
    int value = round(cmax * 100);
    printf("HSV: %d, %d%%, %d%%", (int)hue, saturation, value);
}

int main() {
    char hex[] = "ffd500";
    hex_to_hsv(hex);
    return 0;
}

JavaScript

function hex_to_hsv(hex) {
  var r = parseInt(hex.substring(0, 2), 16) / 255;
  var g = parseInt(hex.substring(2, 4), 16) / 255;
  var b = parseInt(hex.substring(4, 6), 16) / 255;
  var cmax = Math.max(r, g, b);
  var cmin = Math.min(r, g, b);
  var delta = cmax - cmin;
  var hue;
  if (delta === 0) {
    hue = 0;
  } else if (cmax === r) {
    hue = ((g - b) / delta) % 6;
  } else if (cmax === g) {
    hue = (b - r) / delta + 2;
  } else {
    hue = (r - g) / delta + 4;
  }
  hue = Math.round(hue * 60);
  if (hue < 0) {
    hue += 360;
  }
  var saturation = Math.round((delta / cmax) * 100);
  var value = Math.round(cmax * 100);
  return "hsv(" + hue + ", " + saturation + "%, " + value + "%)";
}

var hex_code = "ffd500";
var hsv_code = hex_to_hsv(hex_code);
console.log("HSV:", hsv_code);

Java

public static String hexToHsv(String hex) {
    int r = Integer.valueOf(hex.substring(0, 2), 16);
    int g = Integer.valueOf(hex.substring(2, 4), 16);
    int b = Integer.valueOf(hex.substring(4, 6), 16);
    float r_f = r / 255f;
    float g_f = g / 255f;
    float b_f = b / 255f;
    float cmax = Math.max(r_f, Math.max(g_f, b_f));
    float cmin = Math.min(r_f, Math.min(g_f, b_f));
    float delta = cmax - cmin;
    float hue;
    if (delta == 0) {
        hue = 0;
    } else if (cmax == r_f) {
        hue = ((g_f - b_f) / delta) % 6;
    } else if (cmax == g_f) {
        hue = ((b_f - r_f) / delta) + 2;
    } else {
        hue = ((r_f - g_f) / delta) + 4;
    }
    hue = Math.round(hue * 60);
    if (hue < 0) {
        hue += 360;
    }
    int saturation = Math.round(delta / cmax * 100);
    int value = Math.round(cmax * 100);
    return "hsv(" + hue + ", " + saturation + "%, " + value + "%)";
}

String hexCode = "ffd500";
String hsvCode = hexToHsv(hexCode);
System.out.println("HSV: " + hsvCode);

PHP

function hex_to_hsv($hex) {
    $r = hexdec(substr($hex, 0, 2)) / 255;
    $g = hexdec(substr($hex, 2, 2)) / 255;
    $b = hexdec(substr($hex, 4, 2)) / 255;
    $cmax = max($r, $g, $b);
    $cmin = min($r, $g, $b);
    $delta = $cmax - $cmin;
    if ($delta == 0) {
        $hue = 0;
    } else if ($cmax == $r) {
        $hue = fmod(($g - $b) / $delta, 6);
    } else if ($cmax == $g) {
        $hue = (($b - $r) / $delta) + 2;
    } else {
        $hue = (($r - $g) / $delta) + 4;
    }
    $hue = round($hue * 60);
    if ($hue < 0) {
        $hue += 360;
    }
    $saturation = round($delta / $cmax * 100);
    $value = round($cmax * 100);
    return "hsv(" . $hue . ", " . $saturation . "%, " . $value . "%)";
}

$hex_code = "ffd500";
$hsv_code = hex_to_hsv($hex_code);
echo "HSV: " . $hsv_code;

结论

我们的 HEX 到 HSV 转换器是一个可靠的工具,可以将您的 HEX 颜色代码转换为相应的 HSV 颜色代码。凭借其直观的界面和准确的颜色转换,我们的工具非常适合希望在不同平台上保持一致性的网页开发人员和设计师。那么,还等什么呢?立即尝试并亲身体验其优势吧!

常见问题解答(FAQ)

了解更多工具