Farbcodes in C# konvertieren

Kurzantwort

Um Farbcodes in C# zu konvertieren, analysieren Sie eine CSS-Farbzeichenfolge mit Color.FromString() und geben den Wert anschließend mit ToRgbString(), ToRgbHexString() oder ToRgbaHexString() aus. Damit konvertieren Sie HEX in RGB, RGB in HEX, HSL in HEX, Farbnamen in HEX und normalisieren SVG-Farbwerte in einem einheitlichen Format.

Dieser Artikel zeigt, wie Sie Farbcodes mit Aspose.SVG for .NET programmgesteuert konvertieren. Die Klasse Color analysiert CSS-Farbzeichenfolgen in Formaten wie HEX, RGB, RGBA, HSL, HSLA, HWB, LAB, LCH, OKLAB, OKLCH, CMYK und NCOL sowie Farbnamen und konvertiert sie anschließend in das benötigte Ausgabeformat.

Farbkonvertierung ist nützlich, wenn Sie SVG-Farben vergleichen, aus einer Datei extrahierte Werte normalisieren, eine Farbpalette vorbereiten oder CSS-Farbformate für Berichte und Validierungen umwandeln möchten.

Sie erfahren, wie Sie:

Verwendete Aspose.SVG-APIs

Die Beispiele verwenden die Zeichen-API von Aspose.SVG:

APIVerwendung
ColorStellt eine analysierte Farbe dar und konvertiert sie zwischen Ausgabeformaten
Color.FromString()Analysiert CSS-Farbzeichenfolgen wie #ff31ca, rgb(...), hsl(...), black oder cmyk(...)
Color.FromRgb()Erstellt eine Farbe aus RGB-Komponenten
Color.FromHsl()Erstellt eine Farbe aus HSL-Komponenten
Color.FromCmyk()Erstellt eine Farbe aus CMYK-Komponenten
ToRgbString()Gibt eine Farbe als rgb(R, G, B) aus
ToRgbHexString()Gibt eine Farbe als #RRGGBB aus
ToRgbaHexString()Gibt eine Farbe als #RRGGBBAA aus
Convert()Gibt Farbkomponenten im ausgewählten ColorModel zurück

Häufige Aufgaben bei der Farbkonvertierung

Die Tabelle bietet einen schnellen Überblick über typische Farbkonvertierungen in C#:

AufgabeC#-Muster
HEX in RGB konvertierenColor.FromString("#ff31ca").ToRgbString()
RGB in HEX konvertierenColor.FromString("rgb(255, 49, 202)").ToRgbHexString()
HSL in HEX konvertierenColor.FromString("hsl(315, 100%, 60%)").ToRgbHexString()
Farbname in HEX konvertierenColor.FromString("black").ToRgbHexString()
RGBA in achtstelliges HEX konvertierenColor.FromString("rgba(255, 49, 202, 0.5)").ToRgbaHexString()
SVG-Farben normalisierenJeden Wert mit Color.FromString() analysieren und mit ToRgbHexString() ausgeben

Beispiele für Farbkonvertierungen

Die folgenden Beispiele behandeln die wichtigsten Aufgaben in C#: die Konvertierung von HEX, RGB, HSL, benannten Farben und RGBA-Werten sowie die Erstellung aus Komponenten und die Normalisierung extrahierter SVG-Farben.

HEX in RGB konvertieren

Analysieren Sie den HEX-Wert mit Color.FromString() und rufen Sie ToRgbString() auf:

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)

Diese Konvertierung eignet sich, wenn Farben als CSS-HEX-Codes vorliegen, für Berichte, Validierungen oder die weitere Bildverarbeitung jedoch RGB benötigt wird.

RGB in HEX konvertieren

Analysieren Sie die RGB-Zeichenfolge und geben Sie mit ToRgbHexString() einen normalisierten sechsstelligen HEX-Wert aus:

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

Dies ist nützlich, wenn alle extrahierten SVG- oder CSS-Farben dasselbe Format verwenden sollen.

HSL in HEX konvertieren

SVG und CSS können Farben in HSL-Notation speichern. Sie können die HSL-Zeichenfolge analysieren und in HEX konvertieren:

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

Verwenden Sie dieses Muster, wenn CSS-Werkzeuge, Designsysteme oder Themes Farben als HSL speichern, Ihre Anwendung aber HEX-Werte zum Vergleichen oder Ausgeben benötigt.

Benannte Farben in HEX konvertieren

Color.FromString() kann CSS-Farbnamen analysieren. Dadurch lassen sich benannte Werte bei der Verarbeitung von SVG-Attributen einfach normalisieren.

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

Dies ist für SVG besonders nützlich, da Designwerkzeuge und manuell erstellte Dateien Farbnamen, HEX-Werte und funktionale CSS-Farbwerte mischen können.

RGBA konvertieren und Alphakanal erhalten

Wenn eine Farbe Transparenz enthält, verwenden Sie eine achtstellige HEX-Ausgabe, damit der Alphakanal erhalten bleibt. Dieser ist für transparente SVG-Füllungen, Konturen, Schatten, Überlagerungen und UI-Elemente wichtig.

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

Verwenden Sie ToRgbHexString(), wenn nur die RGB-Farbe benötigt wird. Soll die Transparenz in HEX erhalten bleiben, verwenden Sie ToRgbaHexString().

Weitere Informationen finden Sie unter SVG-Deckkraft und transparente Farben in C#.

Farben aus Komponenten erstellen

Farben können direkt aus Komponenten erstellt werden, ohne eine Zeichenfolge zu analysieren. Das folgende Beispiel erzeugt dieselbe rote Farbe aus RGB-, HSL- und CMYK-Komponenten:

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

Dies ist praktisch für Palettengeneratoren, Importprozesse und Anwendungen, die Farbkanäle aus Datenbanken oder UI-Steuerelementen erhalten.

SVG-Farben in HEX normalisieren

Gleichwertige Farben können in SVG in verschiedenen Formaten vorkommen:

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

Normalisieren Sie die Werte für Vergleiche, Berichte oder die Deduplizierung mit Color.FromString() und 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}

Erwartete Ausgabe:

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

Wenn Sie Farben zuerst aus einer SVG-Datei extrahieren müssen, lesen Sie SVG-Farben in C# extrahieren.

Online-Farbkonverter

Farbcodes lassen sich online oder programmgesteuert konvertieren. Der kostenlose Farbkonverter unterstützt Farbnamen und Formate wie HEX, RGB, HSL, HSV, LAB, HWB, CMYK, LCH, XYZ und NCOL. Geben Sie einen Farbcode ein oder wählen Sie eine Farbe visuell aus, um entsprechende Werte in anderen Formaten zu erhalten.

Farbcodeformate

Farbformate beschreiben dieselbe sichtbare Farbe auf unterschiedliche Weise. Einige sind in CSS und SVG verbreitet, andere werden in Designsystemen, im Druck oder in der Farbwissenschaft verwendet. Die CSS-Farbsyntax ist im CSS Color Module Level 4 definiert.

RGB und RGBA

RGB (Red, Green, Blue) definiert eine Farbe über rote, grüne und blaue Kanäle im sRGB-Farbraum. In CSS und SVG werden Werte häufig als rgb(255, 0, 0) oder prozentual als rgb(100%, 0%, 0%) notiert. RGBA (Red, Green, Blue, Alpha) ergänzt einen Alphakanal, etwa rgba(255, 0, 0, 0.5).

RGB eignet sich für Bildschirmfarben und Bild-APIs. RGBA verwenden Sie, wenn Transparenz Bestandteil des Farbwerts sein soll, etwa bei halbtransparenten SVG-Füllungen, Konturen, Schatten oder Überlagerungen. Farbalpha und SVG-Deckkraftattribute sind verwandt, aber nicht identisch: rgba(...) speichert Transparenz im Farbwert, während opacity, fill-opacity und stroke-opacity separate SVG-Eigenschaften sind.

HEX

HEX (hexadezimal) ist eine kompakte sRGB-Notation für CSS- und SVG-Farben. Möglich sind #RGB, #RGBA, #RRGGBB und #RRGGBBAA. In der langen Form enthalten RR, GG und BB die Kanalwerte von 00 bis FF. AA beschreibt den Alphakanal: 00 bedeutet vollständig transparent, FF vollständig undurchsichtig. Weitere Informationen bieten die HEX-Notation in CSS Color Module Level 4 und die MDN-Referenz <hex-color>.

HEX wird häufig in SVG-Attributen, CSS-Deklarationen, Designsystemen, Icon-Sätzen und Weboberflächen verwendet. Es eignet sich gut als normalisiertes Ausgabeformat, weil es kompakt, stabil und als Text leicht vergleichbar ist.

HSL und HSLA

HSL beschreibt Farben über Farbton, Sättigung und Helligkeit. Der Farbton ist ein Winkel auf dem Farbkreis, die Sättigung steuert die Farbintensität und die Helligkeit die Annäherung an Schwarz oder Weiß. HSLA (Hue, Saturation, Lightness, Alpha) ergänzt Transparenz.

HSL ist praktisch, um hellere, dunklere oder stärker gesättigte Varianten zu erzeugen. In Designsystemen lassen sich Helligkeit und Sättigung meist intuitiver ändern als einzelne RGB-Kanäle. Für Vergleiche, Berichte oder die SVG-Bereinigung werden HSL-Werte häufig in RGB oder HEX normalisiert.

HSV und HWB

HSV (Hue, Saturation, Value) speichert Farbton, Sättigung und Helligkeitswert. Das Modell ist in Farbwählern und Designwerkzeugen verbreitet. HWB speichert Farbton, Weiß- und Schwarzanteil und eignet sich für helle und dunkle Farbvarianten.

Diese Formate sind in manuell erstelltem SVG seltener, können aber aus Konvertern, Designexporten oder Paletteneditoren stammen. Konvertieren Sie HSV- oder HWB-Werte vor dem Vergleich mit SVG-Attributen in ein gemeinsames Ausgabeformat.

LAB, LCH, OKLAB und OKLCH

LAB und LCH sind wahrnehmungsorientierte Farbräume, in denen numerische Änderungen visuellen Unterschieden besser entsprechen. OKLAB und OKLCH sind neuere Modelle für modernes CSS und Design. Sie helfen, wenn RGB-Kanalunterschiede die menschlich wahrgenommene Farbdifferenz nicht ausreichend beschreiben.

Verwenden Sie diese Modelle für Paletten, Barrierefreiheitsprüfungen, Farbabstandsanalysen oder gleichmäßige Farbverläufe. Für SVG können die Ergebnisse weiterhin in HEX oder RGB konvertiert werden, wenn Renderer oder Validierungsregeln klassische Webformate erwarten.

CMYK und XYZ

CMYK (Cyan, Magenta, Yellow, Key/Black) ist ein druckorientiertes Modell aus Cyan, Magenta, Gelb und Schwarz. Es ist in Druckvorstufe und Printdesign verbreitet, aber keine übliche Syntax für SVG-Präsentationsattribute oder Browser-CSS. XYZ ist ein geräteunabhängiger CIE-Farbraum für Farbwissenschaft und Konvertierungspipelines.

Verwenden Sie CMYK für Druckdaten und XYZ für technische Konvertierungen oder Farbmanagementsysteme. Konvertieren Sie solche Farben für Web-SVG vor dem Schreiben in fill, stroke oder stop-color in eine RGB-basierte Darstellung wie HEX oder RGB.

Häufige Fehler und Lösungen

ProblemUrsacheLösung
Gleichwertige Farben stimmen nicht übereinEine Farbe ist als Name, die andere als HEX oder RGB notiertBeide Werte vor dem Vergleich mit Color.FromString() und ToRgbHexString() normalisieren
Transparenz geht verlorenFür eine RGBA-Farbe wird ToRgbString() oder ToRgbHexString() verwendetToRgbaHexString() verwenden, um Alpha in HEX zu erhalten
Ein SVG-Wert kann nicht als Farbe analysiert werdennone, currentColor und url(#id) sind keine direkten FarbwerteDiese Werte vor Color.FromString() herausfiltern
Die Ausgabe unterscheidet sich vom QuelltextDie Konvertierung normalisiert Schreibweise oder Groß-/KleinschreibungDie ursprüngliche Zeichenfolge getrennt speichern, wenn ihre Formatierung wichtig ist
Eine CSS-Zeichenfolge für CMYK oder LAB wird erwartetDiese Modelle werden in der API als Komponenten dargestelltMit Convert(ColorModel) die Komponenten des gewünschten Farbmodells abrufen

FAQ

Wie konvertiere ich HEX in C# in RGB?
Analysieren Sie Color.FromString("#ff31ca") und rufen Sie anschließend ToRgbString() auf, um rgb(255, 49, 202) zu erhalten.

Wie konvertiere ich RGB in C# in HEX?
Verwenden Sie Color.FromString("rgb(255, 49, 202)") und anschließend ToRgbHexString(), um einen normalisierten #RRGGBB-Wert zu erhalten.

Kann ich HSL in C# in HEX konvertieren?
Ja. Analysieren Sie Color.FromString("hsl(315, 100%, 60%)") und rufen Sie danach ToRgbHexString() auf.

Kann ich CSS-Farbnamen in C# analysieren?
Ja. Color.FromString() unterstützt CSS-Farbnamen. Geben Sie die Farbe danach mit ToRgbHexString() oder einer anderen Konvertierungsmethode aus. Verwenden Sie für Beispiele mit erwarteter Ausgabe eindeutige Namen wie black.

Wie normalisiere ich SVG-Farben in HEX?
Lesen Sie direkte Farbwerte aus SVG-Attributen oder Stilen, überspringen Sie none, currentColor und url(#id), analysieren Sie jeden Wert mit Color.FromString() und geben Sie ihn mit ToRgbHexString() aus.

Wie erhalte ich Transparenz bei der Farbkonvertierung?
Verwenden Sie ToRgbaHexString() für achtstellige HEX-Ausgabe. RGB und sechsstelliges HEX enthalten keinen Alphakanal.

Kann Aspose.SVG CMYK-, LAB-, LCH-, OKLAB- und OKLCH-Farben konvertieren?
Ja. Die Klasse Color unterstützt mehrere Farbräume. Verwenden Sie Color.FromString() für unterstützte CSS-Zeichenfolgen oder Methoden wie FromCmyk(), FromLab(), FromLch(), FromOklab() und FromOklch().

Verwandte Ressourcen

Der Farbkonverter ist eine kostenlose Online-Anwendung zur Umwandlung von Farbwerten. Geben Sie einen Farbcode ein, um sofort entsprechende Werte zu erhalten.

Banner des Online-Farbkonverters