【发布时间】:2010-04-28 19:03:19
【问题描述】:
我在一个遗留 INI 文件中有一个编码为有符号整数(我认为是 OLE)的颜色值列表,我需要使用 .NET 将其转换为 (A)RGB 值。一个 INI 示例:
[INI_Section] Color=-2147483633
做类似的事情:
Color.FromArgb(-2147483633)
提供了一个完全不是我期望的颜色的 alpha 混合版本。我认为像 -2147483633 这样的值应该代表系统定义或命名的颜色,如 ButtonFace。是否有正确翻译这些旧颜色的 .NET 方法?请注意,对 OlePro32.dll 的 pInvoke 不是一个选项。
【问题讨论】:
-
您的号码以十六进制显示为
FFFFFFFF8000000F(在 Windows 计算器上) - 您知道该数字(或者您拥有的任何数字)应该代表什么颜色吗? -
@ChrisF:使用 DWord,而不是 QWord... 值是
8000000F,在 ARGB 中,它是一个部分透明的白色,只有一点蓝色。也许它实际上是 ARGB-1/10/11/10 或 RGBA(两者都是粉红色) -
@BlueRaja - 我刚刚意识到这一点,但现在编辑我的评论为时已晚 :(
标签: c# .net vb.net ole colortransform