Convertir código hexadecimal a cadena RGB

JavaScriptJavaScriptBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, exploraremos cómo convertir un código de color hexadecimal en una cadena rgb() o rgba() utilizando JavaScript. Aprenderemos a utilizar operadores bit a bit y enmascaramiento para extraer los valores RGB del código hexadecimal. El laboratorio también cubrirá cómo manejar códigos hexadecimales de 3 dígitos y 6 dígitos y cómo incorporar un valor alfa en la cadena resultante.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/cond_stmts("Conditional Statements") javascript/BasicConceptsGroup -.-> javascript/obj_manip("Object Manipulation") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("Spread and Rest Operators") javascript/AdvancedConceptsGroup -.-> javascript/template_lit("Template Literals") subgraph Lab Skills javascript/variables -.-> lab-28375{{"Convertir código hexadecimal a cadena RGB"}} javascript/data_types -.-> lab-28375{{"Convertir código hexadecimal a cadena RGB"}} javascript/arith_ops -.-> lab-28375{{"Convertir código hexadecimal a cadena RGB"}} javascript/comp_ops -.-> lab-28375{{"Convertir código hexadecimal a cadena RGB"}} javascript/cond_stmts -.-> lab-28375{{"Convertir código hexadecimal a cadena RGB"}} javascript/obj_manip -.-> lab-28375{{"Convertir código hexadecimal a cadena RGB"}} javascript/higher_funcs -.-> lab-28375{{"Convertir código hexadecimal a cadena RGB"}} javascript/spread_rest -.-> lab-28375{{"Convertir código hexadecimal a cadena RGB"}} javascript/template_lit -.-> lab-28375{{"Convertir código hexadecimal a cadena RGB"}} end

Conversión de hexadecimal a RGB

Para convertir un código de color hexadecimal (con o sin prefijo #) en una cadena RGB, siga estos pasos:

  1. Abra la Terminal/SSH y escriba node para comenzar a practicar la codificación.
  2. Utilice el operador de desplazamiento a la derecha bit a bit y enmascare los bits con el operador & (y).
  3. Si el código de color tiene 3 dígitos, conviértalo primero a la versión de 6 dígitos.
  4. Si se proporciona un valor alfa junto al código hexadecimal de 6 dígitos, devuelva una cadena rgba().

A continuación, se muestra el código JavaScript para la conversión:

const hexToRGB = (hex) => {
  let alpha = false,
    h = hex.slice(hex.startsWith("#") ? 1 : 0);
  if (h.length === 3) h = [...h].map((x) => x + x).join("");
  else if (h.length === 8) alpha = true;
  h = parseInt(h, 16);
  return (
    "rgb" +
    (alpha ? "a" : "") +
    "(" +
    (h >>> (alpha ? 24 : 16)) +
    ", " +
    ((h & (alpha ? 0x00ff0000 : 0x00ff00)) >>> (alpha ? 16 : 8)) +
    ", " +
    ((h & (alpha ? 0x0000ff00 : 0x0000ff)) >>> (alpha ? 8 : 0)) +
    (alpha ? `, ${h & 0x000000ff}` : "") +
    ")"
  );
};

Puede utilizar la función hexToRGB con los siguientes ejemplos:

hexToRGB("#27ae60ff"); // 'rgba(39, 174, 96, 255)'
hexToRGB("27ae60"); // 'rgb(39, 174, 96)'
hexToRGB("#fff"); // 'rgb(255, 255, 255)'

Resumen

¡Felicidades! Has completado el laboratorio de conversión de hexadecimal a RGB. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.