2012-04-01 20 views
2

Ich versuche, die Farbe des Textes in meinem Office Application Level Plugin über TextRange.Font.Color.RGB zu lesen, die ein int (und does) zurückgeben soll.Font.Color gibt verwirrende Werte zurück

Aber die zurückgegebenen Werte sind nicht die, die ich erwarten würde.

Wenn meine Farbe ...

  • 0 0 0 -> I 0
  • 255 0 0 erhalten -> Ich bekomme 255
  • 147 205 221 -> ich 14536083
  • 146 208 80 -> I 11.916.796 erhalten
  • und so weiter ...

Wo ist das Problem hier?

Danke

Antwort

3

den Wert konvertieren erstes verhexen, so dass es einfach ist es, in Bytes aufgeteilt, wobei die Werte für Rot, Grün und Blau:

14536083 = 0xddcd93 = 0xdd, 0xcd, 0x93 = 221, 205, 147 

Es ist nach hinten, weil Ihre Maschine wenig -Endian.

+0

Sie haben absolut recht, danke. Aber diese Endlichkeits-Sache beunruhigt mich ein bisschen: Könnte es möglich sein, dass es andere Windows-Maschinen gibt, die in Big-Endian funktionieren? Das würde bedeuten, dass mein Add-In auf diesen Rechnern fehlerhaft läuft. – alapeno

+0

Kein Problem. Wenn es jemals eine solche Maschine geben würde, hätte sie eine andere Office-Version, die die RGB-Eigenschaft anders implementiert. –

+0

Danke, hat mir sehr geholfen – alapeno

Verwandte Themen