.vssettings 文件(Visual Studio 设置)颜色格式

Posted

技术标签:

【中文标题】.vssettings 文件(Visual Studio 设置)颜色格式【英文标题】:.vssettings file (Visual Studio Settings) Color Format 【发布时间】:2011-12-21 17:44:34 【问题描述】:

我正在基于 Visual Studio 主题为 Sublime 文本创建自己的配色方案。

Visual Studio 主题定义了前景和背景,但它们不在标准的 RGB 三元组中。我不知道这个数字是什么意思,我想知道如何将它转换为 RGB 三元组(即#FFFFFF)以用于 Sublime Text。

示例:

<Item Name="Comment" Foreground="0x007B7466" Background="0x02000000" BoldFont="No"/>
<Item Name="Plain Text" Foreground="0x00F3F2F1" Background="0x002A2822" BoldFont="No"/>
<Item Name="Selected Text" Foreground="0x00FFFFFF" Background="0x0064614F" BoldFont="No"/>

我已尝试在此处和 google 上进行搜索,但显然我无法正确搜索字词以找到正确的答案。

【问题讨论】:

我不知道,这不太行:hex2rgba.devoth.com 仅供参考 0x02000000 表示“默认” 【参考方案1】:

仅供参考,vsettings 文件使用 BGR 而不是 RGB

【讨论】:

你的小“仅供参考”对我来说比“可能是 RGB、可能是 BGR、可能是 A/XBGR 或 ARGB,只是测试一下看看......”(无意冒犯@ssube,他的意思很好,但我不喜欢在黑暗中刺激的答案) 早期版本的 Visual Studio 是否使用 RGB?我问的原因是我发现了一篇关于 SSMS 2012 的深色主题 vssettings 文件的博客文章(基于 VS 2010 shell)。当我将设置导入 SSMS 2016(基于 VS 2015 shell)时,与博客中提到的原始值相比,R 和 B 组件出现了反转。所以我想知道 vssettings 文件中颜色的格式是否在 VS 2010 和 2015 之间发生了变化。【参考方案2】:

一目了然(并且对 MS 喜欢如何处理颜色有一些了解),这些看起来是十六进制形式的 ARGB 或 XRGB DWORD。不过,根据您的操作,它们可能是 A/XBGR。

最有可能的是,前两个字符是 alpha,然后是红色、绿色和蓝色。这是一种非常标准的颜色布局方式,因为它可以巧妙地放入内存寄存器中,并且可以匹配几种格式的纹理数据。

但是,有些地方喜欢反转它,这与其他纹理格式相匹配。 A/X 保持在起始位置,然后是蓝色、绿色和红色。

通过提供 0x00FF0000,这应该很容易测试。如果是蓝色,则为 BGR,如果为红色,则为 RGB。

他们可能会将第一个通道/字节用作 alpha 以外的其他内容。将数据打包到 3 通道纹理的 Alpha 通道中并不少见。但是,只有一种颜色是 0x02...,其余的都是 0x00...,所以我不会这样(那里还有一个 3.5 字节的颜色,所以可能是拼写错误)。

您不需要对这些进行任何转换,因为它们已经是十六进制(实际代码是十六进制,而不是 #... 网络内容)。要“转换”网络十六进制三元组,只需删除 # 并在前面加上 0x00 就可以了。所有其他字符保持不变(大小写无关紧要,尽管有些人喜欢大写作为过程)。

【讨论】:

【参考方案3】:

如果有人需要解析 VSSettings 颜色,您可以使用此代码(使用新的 Span API):

// input is like "0x008CFAF1", ABGR
var color = abgr.AsSpan();
byte blue = byte.Parse(color.Slice(4, 2), NumberStyles.AllowHexSpecifier);
byte green = byte.Parse(color.Slice(6, 2), NumberStyles.AllowHexSpecifier);
byte red = byte.Parse(color.Slice(8, 2), NumberStyles.AllowHexSpecifier);
return Color.FromRgb(red, green, blue);

如果您无权访问AsSpan(),您可以将Slice 操作更改为Substring

【讨论】:

以上是关于.vssettings 文件(Visual Studio 设置)颜色格式的主要内容,如果未能解决你的问题,请参考以下文章

stu--CLEVR: A Diagnostic Dataset for Compositional Language and Elementary Visual Reasoning

MySQL中声明变量的正确形式是啥:declare vs @ vs set? [复制]

Visual Studio 6.0 在 Windows 10 下崩溃的一种解决方法

Visual Studio 6.0 在 Windows 10 下崩溃的一种解决方法

是否有解析 SQLCMD 变量的选项,在 Visual-Studio 模式比较中进行比较?

Linux下批量创建用户