Laden...

Die Klasse ColorIndexToRGBColors - Microsoft Office ColorIndex-Farbwerte in HTML oder RGB-Farbwerte

Erstellt von Floyd vor 17 Jahren Letzter Beitrag vor 17 Jahren 5.008 Views
Floyd Themenstarter:in
85 Beiträge seit 2006
vor 17 Jahren
Die Klasse ColorIndexToRGBColors - Microsoft Office ColorIndex-Farbwerte in HTML oder RGB-Farbwerte

Microsoft verwendet in seinen Office-Produkten zur Beschreibung von Farben ein eigenes System. Insgesammt gibt es 58 Farben (wobei schwarz und weiß doppelt vorkommen). Jede dieser Farbe wird über einen eigenen Index angesprochen - den so genannten ColorIndex.

Das Problem dabei ist das dieser Color-Index nicht ohne eine Mapping-Tabelle in RGB oder in HTML-Farben (z.B: #FF00FF) umgewandelt werden kann. Zwar bietet Microsoft auch noch die Möglichkeit den Color-Wert der Spalte auszulesen doch dieser läßt sich eben so "bescheiden" in eine der beiden Formen umwandeln.

Was passiert im Hintergurnd?

Nun es wird beim Inizialisieren der Klasse eine Mapping-Tabelle angelegt. Mit der lassen sich die ColorIndex auf das unter HTML übliche Format #?????? mappen. Um nicht nocheine Mapping-Tabelle für die RGB-Farbwerte anlegen zu müssen werden die Farbwerte aus dem HTML-Format in RGB-Farben umgerechnet.

Das ist nicht weiter schwirig da die HTML-Farbwerte aus 3 Segmenten bestehen - #RRGGBB wobei RR für Rot, GG für Grün und BB für Blau stehen. Jede dieser 3 Segmente stellt eine hexadezimale Zahl dar. Diese in eine in einen RGB-Farbwert umzuwandeln ist nun nicht weiter schwierig.

Zur Verwendung:

Einfach den Namespace importieren und eine neue Instanz der Klasse "ColorIndexToRGBColor" anlegen. Wärend diese neue Instanz angelegt wird, wird die Mappingtabellen aufgebaut und kann sofort verwendet werden.

Nun einfach nur die passende Funktion aufrufen. Entweder "getHTMLColor" oder "getRGBColor". Je nachdem was man haben möchte.

Hier ein Codebeispiel:

Imports Freakfabrik.MSOffice.Drawing
[...]
     Dim objColorConverter as new ColorIndexToRGBColor
     Console.WriteLine(objColorConverter.getHTMLColor(10))
[...]

weiter Informationen und den Download gibt es hier: blog.freakfabrik.net - Klasse ColorIndexToRGBColor

"...denn wir arbeiten nicht nur um uns selbst zu verbessern, sondern auch den Rest der Menschheit!"

blog.freakfabrik.net

Floyd Themenstarter:in
85 Beiträge seit 2006
vor 17 Jahren

Ich würd mich freuen wenn einer den richtigen C# Code zur Verwendung posten könnte so das ich dadurch auch ein bissel C# lernen und die nächsten Klassen gleich mit der C# verwendung beschreiben kann.

"...denn wir arbeiten nicht nur um uns selbst zu verbessern, sondern auch den Rest der Menschheit!"

blog.freakfabrik.net

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Floyd,


using Freakfabrik.MSOffice.Drawing;
//...
     ColorIndexToRGBColor objColorConverter = new ColorIndexToRGBColor ();
     Console.WriteLine(objColorConverter.getHTMLColor(10));
//...

herbivore

Floyd Themenstarter:in
85 Beiträge seit 2006
vor 17 Jahren

hi herbivore, danke fürs übersetzten 😁

"...denn wir arbeiten nicht nur um uns selbst zu verbessern, sondern auch den Rest der Menschheit!"

blog.freakfabrik.net