Laden...

HTML Hexcodes zu Color, Color zu HTML Hexcodes

Erstellt von ChMaster vor 16 Jahren Letzter Beitrag vor 15 Jahren 6.957 Views
ChMaster Themenstarter:in
26 Beiträge seit 2008
vor 16 Jahren
HTML Hexcodes zu Color, Color zu HTML Hexcodes

Servus zusammen,

heute schon wieder mal ein kleiner Snippe. Diesmal geht es um Hexcodes die in HTML verwendet werden. Die klasse konvertiert eine HTML Hexfarbe in System.Drawing.Color um und natürlich umgekehrt. Diese Klasse veranschaulicht auch noch wie man mit Hexadezimalzahlen rechnet.

Sollten keine Fehler vorhanden sein. 😉


// Farbe = Aliceblue
Color myColor = HTMLColorConverter.convertHtmlHexColorToColor( "#F0F8FF" );
String myColorString = HTMLColorConverter.convertColorToHtmlHexColor( myColor );

// oder word suche ...
Color myColor = HTMLColorConverter.convertHtmlHexColorToColor( "Aliceblue" );
String myColorString = HTMLColorConverter.convertColorToHtmlHexColor( myColor );

// myColorString = #F0F8FF

Edit: Farbwortliste integriert.

Schlagwörter: HTML, hexadeciaml, hexadezimal, hex, hexadecimal zu Color, Color

Gruß ChMaster
------------ Projekte ------------
DBoxFE
DMS
First4 (Plugin developer)

O
778 Beiträge seit 2007
vor 16 Jahren

Hi ChMaster,

zu dieser Komponente mal ein paar Anregungspunkte:

  1. Wenn deine Komponente einen String übergeben bekommt, der nicht in diesem Format ist, dann gibt sie immer Weiß zurück. Besser wäre an der Stelle eine Fehlermeldung, dass das Format nicht stimmt. Wenn du weiterhin weiß zurückgeben willst, dann musst du das auch dokumentieren. Besser würde ich, wenn du keinen Fehler zurückgeben willst, an der Stelle aber Color.Empty finden.

  2. Was macht dein Code mit der Farbe #XXXXXX? Einen Fehler ausgeben!

  3. Konvertierungen von Zahlen in Zeichenketten geht einfacher mit int.ToString oder Convert.ToString(int), auf jeden Fall nicht "" + int

  4. Du kannst der ToString Methode auch Parameter mitgeben, "x" gibt die entsprechende Zahl als hexadezimale Zeichenkette zurück.

  5. Aehnlich wie 4. gibt es auch einen Parameter um direkt hexadezimale Zeichenketten als Zahlen einzulesen (man kann int.Parse auch entsprechende Parameter mitgeben, wlche das sind kann ich im Moment nicht sagen, hab gerade kein VS vor mir)

Außerdem wäre es schön, wenn der Code auch mit Farbworten (die in HTML ja auch erlaubt sind, z.b. blue, red, etc.) umgehen könnte.

O
778 Beiträge seit 2007
vor 16 Jahren

Außerdem ändere mal die Zeile

for (int i = 0; i < c.Length; i++)

in

for (int i = 0; i < 3; i+=2)

ansonsten hagelt es bei jedem Aufruf mit einer gültigen Farbe eine IndexOutOfRangeException!

ChMaster Themenstarter:in
26 Beiträge seit 2008
vor 16 Jahren

Servus onlinegurke,

danke für die Kritikpunkte und das Feedback. Werde heute Abend die gewünschten änderungen einpflegen soweit es mir möglich ist. 😉

Gruß ChMaster
------------ Projekte ------------
DBoxFE
DMS
First4 (Plugin developer)

ChMaster Themenstarter:in
26 Beiträge seit 2008
vor 16 Jahren

Servus,

änderungen wurden eingepflegt. Das mit der Farbwortliste ist nicht gerade sauber gelöst, aber müsste so für den Anfang reichen.

Änderungen am Quellcode werde ich im ersten Post einfügen, also den Anhang ändern.

Gruß ChMaster
------------ Projekte ------------
DBoxFE
DMS
First4 (Plugin developer)

F
10.010 Beiträge seit 2004
vor 16 Jahren

Du weisst, das es diese Funktion schon im Framework gibt?

Such mal nach ColorConverter

ChMaster Themenstarter:in
26 Beiträge seit 2008
vor 16 Jahren

Nein wusste ich nicht. Danke für die Information. Werde es umgehend ändern.

Edit:
Umbenannt in: HTMLColorConverter

Gruß ChMaster
------------ Projekte ------------
DBoxFE
DMS
First4 (Plugin developer)

D
78 Beiträge seit 2007
vor 15 Jahren

Tipp:


Color c = ColorTranslator.FromHtml( "#f0f8ff" );
string x = ColorTranslator.ToHtml( c );
c = ColorTranslator.FromHtml( "Aliceblue" );
x = ColorTranslator.ToHtml( c );