質問

.NETを使用して(a)RGB値に翻訳する必要があるレガシーINIファイルで、署名された整数(OLE)としてエンコードされた色の値のリストがあります。 INIの例:

[INI_Section]
Color=-2147483633

のようなことをする:

Color.FromArgb(-2147483633)

私が期待しているものではない色のアルファブレンドバージョンを提供します。 -2147483633のような値は、システム定義の、または名前のようなボタンフェイスを表すことになっていると思います。これらのレガシーカラーを適切に翻訳するための.NETメソッドはありますか? Pinvoke to Olepro32.dllはオプションではないことに注意してください。

役に立ちましたか?

解決

ColorTranslator.fromoleを使用して、変換を行うことができます。
http://msdn.microsoft.com/en-us/library/system.drawing.colortranslator.fromole.aspx

他のヒント

何らかの理由から、system.drawing lib(azure function)を使用できない場合は、次のように計算できます。

                var ole = 6579300;
                var red = ole % 256;
                var green = (ole / 256) % 256;
                var blue = (ole / 65536) % 256;
                var backToOle = red + (green * 256) + (blue * 256 * 256);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top