HEX 转换为 HSL
HEX转HSL转换器:轻松快速地将HEX转换为HSL颜色代码
如果你想要将HEX颜色代码转换为HSL颜色代码,那么你来对地方了。HEX转HSL转换器是一个在线免费的工具,可以轻松快速地将任何HEX颜色代码转换为HSL颜色代码,而无需依赖于任何系统或软件。使用这个转换器,你只需点击几下就可以轻松地将HEX颜色代码转换为HSL颜色代码。
工具的特点
- 免费在线工具
- 无需系统和软件依赖
- 可以清除
- 可以复制
- 有示例
- 数据安全,本地计算
如何使用HEX转HSL转换器?
使用我们的HEX转HSL转换器将HEX颜色代码转换为HSL颜色代码非常简单。以下是使用该工具的步骤:
- 在输入框中输入或粘贴HEX颜色代码。例如,#ffd500。
- 点击"转换"按钮。
- 转换后的HSL颜色代码将显示在输出框中。例如,hsl(50,100,50)。
- 你还可以使用相应的按钮清除输入框或将转换后的HSL颜色代码复制到剪贴板。
核心算法
HEX转HSL转换器使用了一个简单的算法将HEX颜色代码转换为HSL颜色代码。以下是该工具使用的公式:
r = parseInt(hex.substring(1, 3), 16) / 255;
g = parseInt(hex.substring(3, 5), 16) / 255;
b = parseInt(hex.substring(5, 7), 16) / 255;
max = Math.max(r, g, b);
min = Math.min(r, g, b);
l = (max + min) / 2;
if (max === min) {
h = s = 0; // achromatic
} else {
const d = max - min;
s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
switch (max) {
case r:
h = (g - b) / d + (g < b ? 6 : 0);
break;
case g:
h = (b - r) / d + 2;
break;
case b:
h = (r - g) / d + 4;
break;
}
h /= 6;
}
h = Math.round(h * 360);
s = Math.round(s * 100);
l = Math.round(l * 100);
return `hsl(${h},${s},${l})`;
编程语言示例
以下是在各种编程语言中如何使用HEX转HSL转换器的示例:
Python
def hex_to_hsl(hex_color_code):
r = int(hex_color_code[1:3], 16) / 255.0
g = int(hex_color_code[3:5], 16) / 255.0
b = int(hex_color_code[5:7], 16) / 255.0
max_value = max(r, g, b)
min_value = min(r, g, b)
delta = max_value - min_value
l = (max_value + min_value) / 2
if delta == 0:
h = s = 0
else:
if l < 0.5:
s = delta / (max_value + min_value)
else:
s = delta / (2 - max_value - min_value)
if max_value == r:
h = (g - b) / delta + (6 if g < b else 0)
elif max_value == g:
h = (b - r) / delta + 2
else:
h = (r - g) / delta + 4
h /= 6
h = int(round(h * 360))
s = int(round(s * 100))
l = int(round(l * 100))
return "hsl({}, {}, {})".format(h, s, l)
# Example usage
hex_code = "#ffd500"
hsl_code = hex_to_hsl(hex_code)
print(hsl_code) # Output: hsl(50, 100, 50)
C
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
char* hex_to_hsl(char* hex_color_code) {
float r = (float)strtol(hex_color_code+1, NULL, 16) / 255.0;
float g = (float)strtol(hex_color_code+3, NULL, 16) / 255.0;
float b = (float)strtol(hex_color_code+5, NULL, 16) / 255.0;
float max_value = fmaxf(r, fmaxf(g, b));
float min_value = fminf(r, fminf(g, b));
float delta = max_value - min_value;
float h, s, l;
if (delta == 0) {
h = s = 0;
} else {
if (max_value == r) {
h = (g - b) / delta + (g < b ? 6 : 0);
} else if (max_value == g) {
h = (b - r) / delta + 2;
} else {
h = (r - g) / delta + 4;
}
h /= 6;
s = max_value == 0 ? 0 : delta / max_value;
}
l = (max_value + min_value) / 2;
h = round(h * 360);
s = round(s * 100);
l = round(l * 100);
char* hsl_code = (char*) malloc(18 * sizeof(char));
sprintf(hsl_code, "hsl(%d, %d%%, %d%%)", (int) h, (int) s, (int) l);
return hsl_code;
}
int main() {
char* hex_code = "#ffd500";
char* hsl_code = hex_to_hsl(hex_code);
printf("%s\n", hsl_code); // Output: hsl(50, 100%, 50%)
free(hsl_code);
return 0;
}
JavaScript
function hexToHsl(hexColorCode) {
let r = parseInt(hexColorCode.substring(1, 3), 16) / 255;
let g = parseInt(hexColorCode.substring(3, 5), 16) / 255;
let b = parseInt(hexColorCode.substring(5, 7), 16) / 255;
let max = Math.max(r, g, b);
let min = Math.min(r, g, b);
let delta = max - min;
let h, s, l;
if (delta === 0) {
h = s = 0;
} else {
if (max === r) {
h = ((g - b) / delta) % 6;
} else if (max === g) {
h = (b - r) / delta + 2;
} else {
h = (r - g) / delta + 4;
}
h = Math.round(h * 60);
if (h < 0) {
h += 360;
}
s = max === 0 ? 0 : delta / max;
}
l = (max + min) / 2;
s = Math.round(s * 100);
l = Math.round(l * 100);
return `hsl(${h},${s}%,${l}%)`;
}
// Example usage
let hexCode = "#ffd500";
let hslCode = hexToHsl(hexCode);
console.log(hslCode); // Output: hsl(50,100%,50%)
Java
public class HexToHslConverter {
public static String hexToHsl(String hexColorCode) {
float r = Integer.parseInt(hexColorCode.substring(1, 3), 16) / 255.0f;
float g = Integer.parseInt(hexColorCode.substring(3, 5), 16) / 255.0f;
float b = Integer.parseInt(hexColorCode.substring(5, 7), 16) / 255.0f;
float max = Math.max(r, Math.max(g, b));
float min = Math.min(r, Math.min(g, b));
float delta = max - min;
float h, s, l;
if (delta == 0) {
h = s = 0;
} else {
if (max == r) {
h = (g - b) / delta + (g < b ? 6 : 0);
} else if (max == g) {
h = (b - r) / delta + 2;
} else {
h = (r - g) / delta + 4;
}
h /= 6;
s = max == 0 ? 0 : delta / max;
}
l = (max + min) / 2;
h = Math.round(h * 360);
s = Math.round(s * 100);
l = Math.round(l * 100);
return String.format("hsl(%d, %d%%, %d%%)", (int) h, (int) s, (int) l);
}
public static void main(String[] args) {
String hexCode = "#ffd500";
String hslCode = hexToHsl(hexCode);
System.out.println(hslCode); // Output: hsl(50, 100%, 50%)
}
}
PHP
function hex_to_hsl($hex_color_code) {
$r = hexdec(substr($hex_color_code, 1, 2)) / 255;
$g = hexdec(substr($hex_color_code, 3, 2)) / 255;
$b = hexdec(substr($hex_color_code, 5, 2)) / 255;
$max_value = max($r, $g, $b);
$min_value = min($r, $g, $b);
$delta = $max_value - $min_value;
$h = $s = 0;
$l = ($max_value + $min_value) / 2;
if ($delta != 0) {
if ($max_value == $r) {
$h = fmod(($g - $b) / $delta, 6);
} else if ($max_value == $g) {
$h = ($b - $r) / $delta + 2;
} else {
$h = ($r - $g) / $delta + 4;
}
$s = $l > 0.5 ? $delta / (2 - $max_value - $min_value) : $delta / ($max_value + $min_value);
}
$h = round($h * 60);
$s = round($s * 100);
$l = round($l * 100);
return "hsl($h, $s%, $l%)";
}
// Example usage
$hex_code = "#ffd500";
$hsl_code = hex_to_hsl($hex_code);
echo $hsl_code; // Output: hsl(50, 100%, 50%)
结论
将十六进制颜色代码转换为HSL颜色代码可能是一项复杂的任务,但是通过我们的HEX到HSL转换器,你可以快速简便地完成。这个工具是免费的、在线的,没有依赖于任何系统或软件。使用这个工具,你可以在几个简单的点击中将任何十六进制颜色代码转换为HSL颜色代码。无论你是网页开发人员、图形设计师,还是只是需要将十六进制颜色代码转换为HSL颜色代码的人,我们的HEX到HSL转换器都是你需要的工具。
了解更多工具
Base64编码Base64解码图片转Base64PNG转Base64JPEG 转 Base64WebP转Base64转换器TIFF转Base64转换器BPM转Base64转换器GIF 转 Base64AVIF转换为Base64将APNG转换为Base64JSON 转 Base64XML 转 Base64 转换器YAML 转 Base64CSV 转 Base64将TSV转换为Base64二进制转Base64十六进制转Base64八进制转换为Base64HTML转Base64转换器CSS 转 Base64JavaScript 转 Base64ASCII 转 Base64文本转Base64Base64转JSON转换器Base64转XML转换器Base64转YAML转换器Base64转CSV将Base64转换为TSVBase64转二进制转换器Base64转十六进制Base64转八进制转换器Base64到HTML转换器Base64转CSS转换器Base64转Javascript转换器Base64转Ascii转换器Base64 转文本URL编码URL解码JSON URL 编码JSON URL解码HTML编码HTML 解码XML URL 编码XML URL 解码器