Convertir les codes couleur en C#

Réponse rapide

Pour convertir des codes couleur en C#, analysez une chaîne de couleur CSS avec Color.FromString(), puis produisez la valeur avec ToRgbString(), ToRgbHexString() ou ToRgbaHexString(). Ce flux permet de convertir HEX en RGB, RGB en HEX, HSL en HEX, les noms de couleur en HEX et de normaliser les couleurs SVG dans un format unique.

Cet article explique comment convertir des codes couleur par programmation avec Aspose.SVG for .NET. La classe Color analyse les chaînes CSS aux formats HEX, RGB, RGBA, HSL, HSLA, HWB, LAB, LCH, OKLAB, OKLCH, CMYK et NCOL, ainsi que les noms de couleur, puis les convertit dans le format de sortie requis.

La conversion des couleurs sert à comparer des couleurs SVG, normaliser des valeurs extraites, préparer une palette ou transformer des formats CSS pour les rapports et la validation.

Vous apprendrez à :

API Aspose.SVG utilisées

Les exemples utilisent l’API de dessin Aspose.SVG :

APIUtilisation
ColorReprésente une couleur analysée et la convertit entre formats de sortie
Color.FromString()Analyse des chaînes CSS comme #ff31ca, rgb(...), hsl(...), black ou cmyk(...)
Color.FromRgb()Crée une couleur à partir de composantes RGB
Color.FromHsl()Crée une couleur à partir de composantes HSL
Color.FromCmyk()Crée une couleur à partir de composantes CMYK
ToRgbString()Produit la couleur sous la forme rgb(R, G, B)
ToRgbHexString()Produit la couleur sous la forme #RRGGBB
ToRgbaHexString()Produit la couleur sous la forme #RRGGBBAA
Convert()Renvoie les composantes dans le ColorModel sélectionné

Tâches courantes de conversion des couleurs

Le tableau résume les opérations courantes en C# :

TâcheModèle C#
Convertir HEX en RGBColor.FromString("#ff31ca").ToRgbString()
Convertir RGB en HEXColor.FromString("rgb(255, 49, 202)").ToRgbHexString()
Convertir HSL en HEXColor.FromString("hsl(315, 100%, 60%)").ToRgbHexString()
Convertir un nom de couleur en HEXColor.FromString("black").ToRgbHexString()
Convertir RGBA en HEX à huit chiffresColor.FromString("rgba(255, 49, 202, 0.5)").ToRgbaHexString()
Normaliser les couleurs SVGAnalyser chaque valeur avec Color.FromString() et produire ToRgbHexString()

Exemples de conversion des couleurs

Les exemples suivants couvrent les principaux besoins en C# : conversion de HEX, RGB, HSL, couleurs nommées et RGBA, création depuis des composantes et normalisation de couleurs SVG extraites.

Convertir HEX en RGB

Analysez la valeur HEX avec Color.FromString(), puis appelez 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)

Utilisez cette conversion lorsque des couleurs sont fournies sous forme de codes HEX CSS, mais que vos rapports, validations ou traitements d’image exigent RGB.

Convertir RGB en HEX

Analysez la chaîne RGB et produisez une valeur HEX normalisée à six chiffres avec 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: #FF31CA

Cette méthode est utile pour placer toutes les couleurs SVG ou CSS extraites dans le même format.

Convertir HSL en HEX

SVG et CSS peuvent stocker les couleurs en notation HSL. Vous pouvez analyser la chaîne HSL et la convertir en 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: #FF33CC

Utilisez cette approche lorsque les outils CSS, les systèmes de conception ou les thèmes stockent les couleurs en HSL, alors que l’application attend des valeurs HEX pour la comparaison ou la sortie.

Convertir les couleurs nommées en HEX

Color.FromString() peut analyser les noms de couleur CSS. Il devient ainsi simple de normaliser les valeurs nommées lors du traitement des attributs 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: #000000

Cela est particulièrement utile pour SVG, car les outils de design et les fichiers écrits manuellement peuvent mélanger des noms, des valeurs HEX et des fonctions de couleur CSS.

Convertir RGBA et conserver le canal alpha

Si une couleur contient de la transparence, utilisez une sortie HEX à huit chiffres afin de conserver le canal alpha. Celui-ci est important pour les remplissages SVG, contours, ombres, superpositions et éléments d’interface semi-transparents.

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: #FF31CA7F

Utilisez ToRgbHexString() si seule la couleur RGB est nécessaire. Pour conserver la transparence dans HEX, utilisez ToRgbaHexString().

Consultez Opacité SVG et couleurs transparentes en C# pour les scénarios liés à la transparence.

Créer des couleurs à partir de composantes

Vous pouvez créer les couleurs directement depuis leurs composantes sans analyser de chaîne. L’exemple produit le même rouge à partir de composantes RGB, HSL et 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// #FF0000

Cette méthode convient aux générateurs de palettes, aux processus d’importation et aux applications qui reçoivent des canaux de couleur depuis une base de données ou des contrôles d’interface.

Normaliser les couleurs SVG en HEX

Des couleurs équivalentes peuvent apparaître dans SVG sous différents formats :

1<rect fill="#808080" />
2<circle fill="rgb(128, 128, 128)" />
3<path stroke="hsl(0, 0%, 50%)" />

Pour comparer, établir des rapports ou supprimer les doublons, normalisez les valeurs avec Color.FromString() et 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}

Sortie attendue :

1#808080 -> #808080
2rgb(128, 128, 128) -> #808080
3hsl(0, 0%, 50%) -> #808080

Si vous devez d’abord extraire les couleurs d’un fichier SVG, consultez Extraire les couleurs SVG en C#.

Convertisseur de couleurs en ligne

Vous pouvez convertir les codes couleur en ligne ou par programmation. Le Convertisseur de couleurs gratuit accepte les noms et les formats HEX, RGB, HSL, HSV, LAB, HWB, CMYK, LCH, XYZ et NCOL. Saisissez un code ou choisissez visuellement une couleur pour obtenir ses valeurs équivalentes.

Formats de codes couleur

Les formats décrivent une même couleur visible de différentes manières. Certains sont courants dans CSS et SVG, d’autres servent aux systèmes de conception, à l’impression ou à la science des couleurs. La syntaxe CSS est définie par CSS Color Module Level 4.

RGB et RGBA

RGB (Red, Green, Blue) définit une couleur par ses canaux rouge, vert et bleu dans l’espace sRGB. Dans CSS et SVG, une valeur s’écrit souvent rgb(255, 0, 0) ou en pourcentages comme rgb(100%, 0%, 0%). RGBA (Red, Green, Blue, Alpha) ajoute un canal alpha, par exemple rgba(255, 0, 0, 0.5).

Utilisez RGB pour les couleurs d’écran et les API d’image. Utilisez RGBA lorsque la transparence doit appartenir à la valeur, par exemple pour des remplissages SVG, contours, ombres ou superpositions semi-transparents. L’alpha de la couleur et les propriétés d’opacité SVG sont liés, mais distincts : rgba(...) stocke la transparence dans la couleur, tandis que opacity, fill-opacity et stroke-opacity sont des propriétés séparées.

HEX

HEX (hexadécimal) est une notation sRGB compacte pour CSS et SVG. Elle accepte #RGB, #RGBA, #RRGGBB et #RRGGBBAA. Dans la forme longue, RR, GG et BB stockent les canaux de 00 à FF. AA représente l’alpha : 00 est entièrement transparent et FF entièrement opaque. Consultez la notation HEX de CSS Color Module Level 4 et la référence MDN <hex-color>.

HEX est largement utilisé dans les attributs SVG, déclarations CSS, systèmes de conception, jeux d’icônes et interfaces web. C’est aussi un bon format normalisé, car il est compact, stable et facile à comparer sous forme de texte.

HSL et HSLA

HSL représente les couleurs par la teinte, la saturation et la luminosité. La teinte est un angle sur le cercle chromatique, la saturation contrôle l’intensité et la luminosité la proximité du noir ou du blanc. HSLA (Hue, Saturation, Lightness, Alpha) ajoute la transparence alpha.

HSL facilite la création de variantes plus claires, plus sombres ou plus saturées. Dans les systèmes de conception, modifier luminosité et saturation est souvent plus intuitif que changer les canaux RGB. Pour la comparaison, les rapports ou le nettoyage SVG, les valeurs HSL sont souvent normalisées en RGB ou HEX.

HSV et HWB

HSV (Hue, Saturation, Value) stocke la teinte, la saturation et la valeur. Il est courant dans les sélecteurs de couleur et les outils de design. HWB stocke la teinte, la blancheur et la noirceur, ce qui facilite la création de variantes claires et sombres.

Ces formats sont moins fréquents dans un SVG écrit manuellement, mais peuvent provenir de convertisseurs, d’exports de design ou d’éditeurs de palettes. Convertissez HSV ou HWB dans un format commun avant de les comparer aux attributs SVG.

LAB, LCH, OKLAB et OKLCH

LAB et LCH sont des espaces perceptuels où les écarts numériques correspondent mieux aux différences visibles. OKLAB et OKLCH sont des modèles plus récents employés dans CSS moderne et les flux de design. Ils sont utiles lorsque les écarts RGB décrivent mal la différence perçue.

Utilisez ces modèles pour les palettes, l’accessibilité, l’analyse des écarts ou les gammes uniformes. Pour SVG, le résultat peut être converti en HEX ou RGB si le moteur de rendu ou les règles de validation attendent un format web traditionnel.

CMYK et XYZ

CMYK (Cyan, Magenta, Yellow, Key/Black) est orienté impression et repose sur le cyan, le magenta, le jaune et le noir. Il est courant en prépresse, mais ne constitue pas la syntaxe habituelle des attributs SVG ou du CSS des navigateurs. XYZ est un espace CIE indépendant du périphérique, utilisé en science des couleurs et dans les chaînes de conversion.

Utilisez CMYK pour les données d’impression et XYZ pour les conversions techniques ou la gestion des couleurs. Avant d’écrire fill, stroke ou stop-color dans un SVG web, convertissez ces couleurs vers une représentation RGB comme HEX ou RGB.

Erreurs courantes et solutions

ProblèmeCauseSolution
Des couleurs équivalentes ne correspondent pasUne couleur est nommée, l’autre est en HEX ou RGBNormaliser les deux avec Color.FromString() et ToRgbHexString() avant comparaison
La transparence est perdueLe code utilise ToRgbString() ou ToRgbHexString() pour RGBAUtiliser ToRgbaHexString() afin de conserver l’alpha dans HEX
Une valeur SVG ne peut pas être analysée comme couleurnone, currentColor et url(#id) ne sont pas des couleurs directesFiltrer ces valeurs avant Color.FromString()
La sortie diffère du texte sourceLa conversion normalise la notation ou la casseConserver la chaîne d’origine séparément si son format est important
Une chaîne CSS CMYK ou LAB est attendueL’API représente ces modèles par des composantesUtiliser Convert(ColorModel) pour obtenir les composantes choisies

FAQ

Comment convertir HEX en RGB avec C# ?
Analysez Color.FromString("#ff31ca"), puis appelez ToRgbString() pour obtenir rgb(255, 49, 202).

Comment convertir RGB en HEX avec C# ?
Utilisez Color.FromString("rgb(255, 49, 202)"), puis ToRgbHexString() pour obtenir une valeur #RRGGBB normalisée.

Puis-je convertir HSL en HEX avec C# ?
Oui. Analysez Color.FromString("hsl(315, 100%, 60%)"), puis appelez ToRgbHexString().

Puis-je analyser des noms de couleur CSS en C# ?
Oui. Color.FromString() accepte les noms CSS. Produisez ensuite la valeur avec ToRgbHexString() ou une autre méthode. Pour les exemples avec sortie attendue, choisissez un nom sans ambiguïté comme black.

Comment normaliser les couleurs SVG en HEX ?
Récupérez les couleurs directes des attributs ou styles SVG, ignorez none, currentColor et url(#id), analysez chaque valeur avec Color.FromString() et produisez ToRgbHexString().

Comment conserver la transparence pendant la conversion ?
Utilisez ToRgbaHexString() pour une sortie HEX à huit chiffres. RGB et HEX à six chiffres ne conservent pas le canal alpha.

Aspose.SVG peut-il convertir CMYK, LAB, LCH, OKLAB et OKLCH ?
Oui. La classe Color prend en charge plusieurs espaces. Utilisez Color.FromString() pour les chaînes CSS compatibles ou des méthodes comme FromCmyk(), FromLab(), FromLch(), FromOklab() et FromOklch().

Ressources associées

Le Convertisseur de couleurs est une application gratuite pour transformer des valeurs entre formats. Saisissez un code pour obtenir immédiatement ses équivalents.

Bannière du convertisseur de couleurs en ligne