Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Para convertir códigos de color en C#, analice una cadena de color CSS con Color.FromString() y genere el valor con ToRgbString(), ToRgbHexString() o ToRgbaHexString(). Este flujo permite convertir HEX a RGB, RGB a HEX, HSL a HEX, nombres de color a HEX y normalizar los colores SVG en un formato uniforme.
Este artículo muestra cómo convertir códigos de color mediante programación con Aspose.SVG for .NET. La clase Color analiza cadenas CSS en formatos HEX, RGB, RGBA, HSL, HSLA, HWB, LAB, LCH, OKLAB, OKLCH, CMYK y NCOL, además de nombres de color, y las convierte al formato de salida necesario.
La conversión de colores resulta útil para comparar colores SVG, normalizar valores extraídos de un archivo, preparar una paleta o transformar formatos CSS para informes y validación.
Aprenderá a:
Los ejemplos utilizan la API de dibujo de Aspose.SVG:
| API | Uso |
|---|---|
| Color | Representa un color analizado y lo convierte entre formatos de salida |
| Color.FromString() | Analiza cadenas CSS como #ff31ca, rgb(...), hsl(...), black o cmyk(...) |
| Color.FromRgb() | Crea un color a partir de componentes RGB |
| Color.FromHsl() | Crea un color a partir de componentes HSL |
| Color.FromCmyk() | Crea un color a partir de componentes CMYK |
| ToRgbString() | Genera el color como rgb(R, G, B) |
| ToRgbHexString() | Genera el color como #RRGGBB |
| ToRgbaHexString() | Genera el color como #RRGGBBAA |
| Convert() | Devuelve los componentes en el ColorModel seleccionado |
La tabla resume los flujos más comunes en C#:
| Tarea | Patrón de C# |
|---|---|
| Convertir HEX a RGB | Color.FromString("#ff31ca").ToRgbString() |
| Convertir RGB a HEX | Color.FromString("rgb(255, 49, 202)").ToRgbHexString() |
| Convertir HSL a HEX | Color.FromString("hsl(315, 100%, 60%)").ToRgbHexString() |
| Convertir un nombre de color a HEX | Color.FromString("black").ToRgbHexString() |
| Convertir RGBA a HEX de ocho dígitos | Color.FromString("rgba(255, 49, 202, 0.5)").ToRgbaHexString() |
| Normalizar colores SVG | Analizar cada valor con Color.FromString() y generar ToRgbHexString() |
Los siguientes ejemplos cubren las tareas principales en C#: convertir HEX, RGB, HSL, colores con nombre y RGBA, crear colores desde componentes y normalizar colores extraídos de SVG.
Analice el valor HEX con Color.FromString() y llame a ToRgbString():
1using Aspose.Svg.Drawing;
2using System; 1// Convert a HEX color value to RGB format in C#
2
3// Parse HEX color from a string
4Color color = Color.FromString("#ff31ca");
5
6// Convert HEX to RGB
7string rgbColor = color.ToRgbString();
8
9// Print result to console
10Console.WriteLine(rgbColor);
11// Result: rgb(255, 49, 202)Use esta conversión cuando reciba colores como códigos HEX de CSS pero necesite RGB para informes, validación o procesamiento posterior de imágenes.
Analice la cadena RGB y genere un valor HEX normalizado de seis dígitos con ToRgbHexString():
1using Aspose.Svg.Drawing;
2using System; 1// Convert an RGB color value to HEX format in C#
2
3// Parse RGB color from a string
4Color color = Color.FromString("rgb(255, 49, 202)");
5
6// Convert RGB to HEX
7string hexColor = color.ToRgbHexString();
8
9// Print result to console
10Console.WriteLine(hexColor);
11// Result: #FF31CAEste flujo es útil cuando todos los colores extraídos de SVG o CSS deben utilizar el mismo formato.
SVG y CSS pueden almacenar colores con notación HSL. Puede analizar la cadena HSL y convertirla a HEX:
1using Aspose.Svg.Drawing;
2using System; 1// Convert an HSL color value to HEX format in C#
2
3// Parse HSL color from a string
4Color color = Color.FromString("hsl(315, 100%, 60%)");
5
6// Convert HSL to HEX
7string hexColor = color.ToRgbHexString();
8
9// Print result to console
10Console.WriteLine(hexColor);
11// Result: #FF33CCUse este patrón cuando las herramientas CSS, los sistemas de diseño o los temas almacenen colores como HSL, pero su aplicación necesite valores HEX para compararlos o mostrarlos.
Color.FromString() puede analizar nombres de color CSS. Esto permite normalizar valores con nombre al procesar atributos SVG.
1using Aspose.Svg.Drawing;
2using System; 1// Convert a named color value to HEX format in C#
2
3// Parse a named color from a string
4Color color = Color.FromString("black");
5
6// Convert named color to HEX
7string hexColor = color.ToRgbHexString();
8
9// Print result to console
10Console.WriteLine(hexColor);
11// Result: #000000Es especialmente útil en SVG, ya que las herramientas de diseño y los archivos escritos a mano pueden combinar nombres, valores HEX y funciones de color CSS.
Si un color contiene transparencia, utilice una salida HEX de ocho dígitos para conservar el canal alfa. Este canal es importante para rellenos SVG, trazos, sombras, superposiciones y elementos de interfaz semitransparentes.
1using Aspose.Svg.Drawing;
2using System;1// Convert an RGBA color value to 8-digit HEX format in C#
2
3// Parse RGBA color from a string
4Color color = Color.FromString("rgba(255, 49, 202, 0.5)");
5
6// Convert RGBA to 8-digit HEX
7Console.WriteLine(color.ToRgbaHexString());
8// Result: #FF31CA7FUse ToRgbHexString() si solo necesita el color RGB. Para conservar la transparencia en HEX, use ToRgbaHexString().
Consulte Opacidad SVG y colores transparentes en C# para flujos centrados en transparencia.
Puede crear colores directamente desde componentes sin analizar una cadena. El ejemplo crea el mismo rojo a partir de componentes RGB, HSL y CMYK:
1using Aspose.Svg.Drawing;
2using System; 1// Create the same red color from RGB, HSL, and CMYK components in C#
2
3// Create a color from RGB components
4Color rgbColor = Color.FromRgb(255, 0, 0);
5
6// Create a color from HSL components
7Color hslColor = Color.FromHsl(0, 1, 0.5f);
8
9// Create a color from CMYK components
10Color cmykColor = Color.FromCmyk(0, 1, 1, 0);
11
12// Print converted color values to console
13Console.WriteLine(rgbColor.ToRgbHexString());
14Console.WriteLine(hslColor.ToRgbString());
15Console.WriteLine(cmykColor.ToRgbHexString());
16// Result:
17// #FF0000
18// rgb(255, 0, 0)
19// #FF0000Este enfoque resulta práctico para generadores de paletas, procesos de importación y aplicaciones que reciben canales de color desde una base de datos o controles de interfaz.
Los colores equivalentes pueden aparecer en SVG con formatos distintos:
1<rect fill="#808080" />
2<circle fill="rgb(128, 128, 128)" />
3<path stroke="hsl(0, 0%, 50%)" />Para comparar, generar informes o eliminar duplicados, normalice los valores con Color.FromString() y ToRgbHexString():
1using Aspose.Svg.Drawing;
2using System;
3using System.Collections.Generic; 1// Normalize SVG color values to HEX format in C#
2
3
4// Store equivalent colors written in different formats
5List<string> sourceColors = new List<string>
6{
7 "#808080",
8 "rgb(128, 128, 128)",
9 "hsl(0, 0%, 50%)"
10};
11
12foreach (string sourceColor in sourceColors)
13{
14 // Parse each color value from a string
15 Color color = Color.FromString(sourceColor);
16
17 // Convert each color to HEX and print the result
18 Console.WriteLine($"{sourceColor} -> {color.ToRgbHexString()}");
19}Salida esperada:
1#808080 -> #808080
2rgb(128, 128, 128) -> #808080
3hsl(0, 0%, 50%) -> #808080Si primero necesita extraer colores de un archivo SVG real, consulte Extraer colores SVG en C#.
Puede convertir códigos de color en línea o mediante programación. El Conversor de color gratuito admite nombres y formatos como HEX, RGB, HSL, HSV, LAB, HWB, CMYK, LCH, XYZ y NCOL. Introduzca un código o elija un color visualmente para ver valores equivalentes en otros formatos.
Los formatos describen el mismo color visible de maneras diferentes. Algunos son comunes en CSS y SVG, mientras otros se utilizan en sistemas de diseño, impresión o ciencia del color. La sintaxis CSS se define en CSS Color Module Level 4.
RGB (Red, Green, Blue) define un color mediante canales rojo, verde y azul en el espacio sRGB. En CSS y SVG suele escribirse como rgb(255, 0, 0) o con porcentajes como rgb(100%, 0%, 0%). RGBA (Red, Green, Blue, Alpha) añade un canal alfa, por ejemplo rgba(255, 0, 0, 0.5).
Use RGB para colores de pantalla e interoperabilidad con API de imágenes. Use RGBA cuando la transparencia deba formar parte del valor, como en rellenos SVG, trazos, sombras o superposiciones semitransparentes. El alfa del color y las propiedades de opacidad SVG están relacionados, pero no son idénticos: rgba(...) guarda transparencia en el color, mientras opacity, fill-opacity y stroke-opacity son propiedades independientes.
HEX (hexadecimal) es una notación sRGB compacta para CSS y SVG. Puede escribirse como #RGB, #RGBA, #RRGGBB o #RRGGBBAA. En la forma larga, RR, GG y BB almacenan los canales entre 00 y FF. AA representa el alfa: 00 es totalmente transparente y FF totalmente opaco. Consulte la
notación HEX de CSS Color Module Level 4 y la referencia MDN
<hex-color>.
HEX se usa ampliamente en atributos SVG, declaraciones CSS, sistemas de diseño, conjuntos de iconos y configuración de interfaces web. También es un buen formato normalizado porque es compacto, estable y fácil de comparar como texto.
HSL representa colores mediante tono, saturación y luminosidad. El tono es un ángulo en la rueda de color, la saturación controla la intensidad y la luminosidad la proximidad al negro o al blanco. HSLA (Hue, Saturation, Lightness, Alpha) añade transparencia alfa.
HSL facilita la creación de variantes más claras, oscuras o saturadas. En sistemas de diseño suele ser más intuitivo modificar luminosidad y saturación que canales RGB individuales. Para comparar, informar o limpiar SVG, los valores HSL suelen normalizarse a RGB o HEX.
HSV (Hue, Saturation, Value) almacena tono, saturación y valor. Es habitual en selectores de color y herramientas de diseño. HWB almacena tono, blancura y negrura, y permite generar variantes claras y oscuras.
Estos formatos son menos comunes en SVG escrito a mano, pero pueden proceder de conversores, exportaciones de diseño o editores de paletas. Convierta HSV o HWB a un formato común antes de compararlos con atributos SVG.
LAB y LCH son espacios perceptuales donde los cambios numéricos se aproximan mejor a los cambios visibles. OKLAB y OKLCH son modelos más recientes utilizados en CSS moderno y flujos de diseño. Son útiles cuando las diferencias RGB no describen bien la diferencia percibida.
Use estos modelos para paletas, accesibilidad, análisis de diferencias de color o escalas uniformes. Para SVG puede convertir el resultado a HEX o RGB cuando el renderizador o las reglas de validación requieran formatos web tradicionales.
CMYK (Cyan, Magenta, Yellow, Key/Black) está orientado a impresión y se basa en cian, magenta, amarillo y negro. Es común en preimpresión, pero no es la sintaxis habitual de los atributos SVG ni del CSS del navegador. XYZ es un espacio CIE independiente del dispositivo utilizado en ciencia del color y procesos de conversión.
Use CMYK para datos de impresión y XYZ para conversiones técnicas o sistemas de gestión del color. Antes de escribir fill, stroke o stop-color en SVG web, convierta esos colores a una representación basada en RGB, como HEX o RGB.
| Problema | Causa | Solución |
|---|---|---|
| Los colores equivalentes no coinciden | Uno está escrito como nombre y otro como HEX o RGB | Normalice ambos con Color.FromString() y ToRgbHexString() antes de compararlos |
| Se pierde la transparencia | El código usa ToRgbString() o ToRgbHexString() para RGBA | Use ToRgbaHexString() para conservar alfa en HEX |
| Un valor SVG no se puede analizar como color | none, currentColor y url(#id) no son colores directos | Filtre esos valores antes de llamar a Color.FromString() |
| La salida difiere del texto original | La conversión normaliza la notación o las mayúsculas | Conserve la cadena original por separado si su formato es importante |
| Se espera una cadena CSS CMYK o LAB | La API representa esos modelos como componentes | Use Convert(ColorModel) para obtener los componentes del modelo elegido |
¿Cómo convierto HEX a RGB en C#?
Analice Color.FromString("#ff31ca") y llame a ToRgbString() para obtener rgb(255, 49, 202).
¿Cómo convierto RGB a HEX en C#?
Use Color.FromString("rgb(255, 49, 202)") y después ToRgbHexString() para obtener un valor #RRGGBB normalizado.
¿Puedo convertir HSL a HEX en C#?
Sí. Analice Color.FromString("hsl(315, 100%, 60%)") y llame a ToRgbHexString().
¿Puedo analizar nombres de color CSS en C#?
Sí. Color.FromString() admite nombres CSS. Después puede generar el valor con ToRgbHexString() u otro método. Para ejemplos con salida esperada, use nombres inequívocos como black.
¿Cómo normalizo colores SVG a HEX?
Obtenga colores directos de atributos o estilos SVG, omita none, currentColor y url(#id), analice cada valor con Color.FromString() y genere ToRgbHexString().
¿Cómo conservo la transparencia al convertir colores?
Use ToRgbaHexString() para una salida HEX de ocho dígitos. RGB y HEX de seis dígitos no conservan alfa.
¿Aspose.SVG puede convertir colores CMYK, LAB, LCH, OKLAB y OKLCH?
Sí. La clase Color admite varios espacios. Use Color.FromString() para cadenas CSS compatibles o métodos como FromCmyk(), FromLab(), FromLch(), FromOklab() y FromOklch().
El Conversor de color es una aplicación gratuita para transformar valores entre formatos. Introduzca un código para obtener valores equivalentes inmediatamente.
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.