RGB a HSL

Entrada RGB
Ejemplo
Salida HSL

Convertidor de RGB a HSL: Convierte códigos de color RGB a códigos de color HSL

¿Estás buscando una manera fácil y eficiente de convertir códigos de color RGB a códigos de color HSL? No busques más, nuestro Convertidor de RGB a HSL es la solución. Nuestra herramienta en línea es gratuita, rápida y segura, y no requiere dependencias de sistema o software.

Características

  • Herramienta gratuita y en línea
  • Sin dependencias de sistema o software
  • Botón de Limpiar y Copiar
  • Entrada de muestra
  • Seguridad de datos a través de computación local

Introducción

El Convertidor de RGB a HSL es una herramienta en línea que permite a los usuarios convertir códigos de color RGB a códigos de color HSL. RGB (rojo, verde, azul) y HSL (matiz, saturación, luminosidad) son dos formas diferentes de representar colores, y el Convertidor de RGB a HSL facilita la conversión entre ellos.

Beneficios y Ventajas

La principal ventaja de usar el Convertidor de RGB a HSL es que simplifica el proceso de convertir códigos de color RGB a códigos de color HSL. La herramienta es gratuita y en línea, por lo que los usuarios pueden acceder a ella desde cualquier lugar con conexión a internet. Además, la herramienta es rápida y segura, lo que la convierte en una opción confiable para cualquier persona que necesite convertir códigos de color RGB a códigos de color HSL.

El Algoritmo Principal

El algoritmo principal utilizado por el Convertidor de RGB a HSL es sencillo y fácil de entender. Involucra un conjunto simple de cálculos para convertir códigos de color RGB a códigos de color HSL. La fórmula para convertir de RGB a HSL es la siguiente:

  • Para calcular H:
    • Encuentra los valores máximo y mínimo entre R, G y B.
    • Luego, H se calcula utilizando la siguiente fórmula:
    if (max == min) H = 0
    else if (max == R) H = 60 _ ((G - B) / (max - min))
    else if (max == G) H = 60 _ ((B - R) / (max - min)) + 120
    else if (max == B) H = 60 \* ((R - G) / (max - min)) + 240
    if (H < 0) H += 360
  • Para calcular S:
    • Si el máximo y el mínimo son ambos 0, S es 0.
    • De lo contrario, S se calcula como (max - min) / (1 - abs(max + min - 1))
  • Para calcular L:
    • L es simplemente el promedio de max y min.

Cómo utilizar el convertidor RGB a HSL

Utilizar el convertidor RGB a HSL es fácil y sencillo. Aquí tienes una guía paso a paso:

  1. Ingresa o pega el código de color RGB que deseas convertir en la herramienta.
  2. Haz clic en el botón "Convertir" para convertir el código de color RGB a HSL.
  3. El código de color HSL se mostrará en la pantalla.
  4. Copia el código de color HSL en tu portapapeles haciendo clic en el botón "Copiar".

¡Eso es todo! Con solo unos clics, puedes convertir cualquier código de color RGB a su correspondiente código de color HSL.

Ejemplos

Python

def rgb_to_hsl(r, g, b):
    r, g, b = r/255.0, g/255.0, b/255.0
    max_val = max(r, g, b)
    min_val = min(r, g, b)
    h, s, l = 0, 0, ((max_val + min_val) / 2)

    if max_val == min_val:
        h = s = 0
    else:
        diff = max_val - min_val
        s = diff / (2 - max_val - min_val)
        if max_val == r:
            h = (g - b) / diff + (g < b and 6 or 0)
        elif max_val == g:
            h = (b - r) / diff + 2
        else:
            h = (r - g) / diff + 4
        h /= 6

    return (int(h*360), int(s*100), int(l*100))

C

#include <stdio.h>

void ConvertRGBtoHSL(int r, int g, int b)
{
    float fr = r / 255.0f;
    float fg = g / 255.0f;
    float fb = b / 255.0f;
    float max = fr > fg ? (fr > fb ? fr : fb) : (fg > fb ? fg : fb);
    float min = fr < fg ? (fr < fb ? fr : fb) : (fg < fb ? fg : fb);
    float h = 0, s = 0, l = (max + min) / 2.0;
    if (max == min) {
        h = 0;
        s = 0;
    }
    else {
        float d = max - min;
        s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
        if (max == fr) {
            h = (fg - fb) / d + (fg < fb ? 6 : 0);
        }
        else if (max == fg) {
            h = (fb - fr) / d + 2;
        }
        else if (max == fb) {
            h = (fr - fg) / d + 4;
        }
        h /= 6;
    }
    printf("HSL: %.0f, %.0f%%, %.0f%%\n", h * 360, s * 100, l * 100);
}

JavaScript

function rgbToHsl(r, g, b) {
  (r /= 255), (g /= 255), (b /= 255);
  let max = Math.max(r, g, b),
    min = Math.min(r, g, b);
  let h,
    s,
    l = (max + min) / 2;

  if (max == min) {
    h = s = 0;
  } else {
    let 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;
  }
  return [h * 360, s * 100, l * 100];
}

Java

public static void rgbToHsl(int r, int g, int b) {
    float fr = r / 255.0f;
    float fg = g / 255.0f;
    float fb = b / 255.0f;
    float max = Math.max(fr, Math.max(fg, fb));
    float min = Math.min(fr, Math.min(fg, fb));
    float h = 0, s = 0, l = (max + min) / 2;
    if (max == min) {
        h = 0;
        s = 0;
    } else {
        float d = max - min;
        s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
        if (max == fr) {
            h = (fg - fb) / d + (fg < fb ? 6 : 0);
        } else if (max == fg) {
            h = (fb - fr) / d + 2;
        } else if (max == fb) {
            h = (fr - fg) / d + 4;
        }
        h /= 6;
    }
    System.out.printf("HSL: %.0f, %.0f%%, %.0f%%\n", h * 360, s * 100, l * 100);
}

PHP

function RGB2HSL($R, $G, $B) {
    $R = ($R / 255);
    $G = ($G / 255);
    $B = ($B / 255);

    $maxValue = max($R, $G, $B);
    $minValue = min($R, $G, $B);
    $delta = $maxValue - $minValue;

    $L = ($maxValue + $minValue) / 2;
    $H = 0;
    $S = 0;

    if ($delta == 0) {
        $H = 0;
        $S = 0;
    } else {
        if ($L < 0.5) {
            $S = $delta / ($maxValue + $minValue);
        } else {
            $S = $delta / (2 - $maxValue - $minValue);
        }

        $deltaR = ((($maxValue - $R) / 6) + ($delta / 2)) / $delta;
        $deltaG = ((($maxValue - $G) / 6) + ($delta / 2)) / $delta;
        $deltaB = ((($maxValue - $B) / 6) + ($delta / 2)) / $delta;

        if ($R == $maxValue) {
            $H = $deltaB - $deltaG;
        } else if ($G == $maxValue) {
            $H = (1 / 3) + $deltaR - $deltaB;
        } else if ($B == $maxValue) {
            $H = (2 / 3) + $deltaG - $deltaR;
        }

        if ($H < 0) {
            $H++;
        }
        if ($H > 1) {
            $H--;
        }
    }
    return [(int)($H * 360), (int)($S * 100), (int)($L * 100)];
}

Conclusión

El convertidor RGB a HSL es una herramienta fácil de usar y eficiente para convertir códigos de color RGB a códigos de color HSL. Con su diseño gratuito, en línea y seguro, cualquier persona puede utilizar la herramienta para convertir colores de forma rápida y sencilla. Ya seas diseñador, desarrollador o simplemente alguien que necesita convertir colores, el convertidor RGB a HSL es la herramienta perfecta para el trabajo.

Preguntas frecuentes (FAQ)

Conoce nuestras herramientas adicionales