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

问题描述:

我创建了基于Visual Studio主题的Sublime文本的自己的配色方案。.vssettings文件(Visual Studio设置)颜色格式

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

样品:

<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"/> 

我试图寻找在这里和谷歌,但显然我不能让我的正确的找到正确的答案的搜索字词。

+0

它可以是rgba吗? – yosukesabai

+0

我不知道,这不是很有效:http://hex2rgba.devoth.com/ –

+1

FYI 0x02000000的意思是“默认” – banging

这些一目了然(以及有关MS如何处理颜色的一些知识)以十六进制格式显示为ARGB或XRGB DWORD。然而,根据你在做什么,他们可能是A/XBGR。

最有可能的是,前两个字符是alpha,然后是红色,绿色和蓝色。这是布置颜色的一种非常标准的方式,因为它整齐地适合存储器寄存器并匹配几种格式的纹理数据。

但是,有些地方喜欢颠倒它,它与其他纹理格式相匹配。 A/X保持在起点,然后是蓝色,绿色和红色。

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

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

你不需要做任何转换,因为它们已经是十六进制(实际代码十六进制,而不是#...网页的东西)。要“转换”一个网络十六进制三元组,只需删除#并预先0x00,你应该很好。所有其他角色保持不变(情况应该不重要,尽管有些人像程序一样使用大写字母)。

只是一个FYI的vsettings文件使用BGR而不是RGB

+0

你的小“FYI”对我来说比“可能是RGB,可能是BGR,可能是A/XBGR或ARGB,只是测试它并看到......“(对@ssube没有冒犯,他的意思很好,但我不喜欢在黑暗中刺激的答案) – MarioDS

+0

早期版本的Visual Studio使用RGB?我问的原因是我发现了一篇关于SSMS 2012黑暗主题vssettings文件的博客文章(基于VS 2010 shell)。当我将设置导入SSMS 2016(基于VS 2015 shell)时,与博客中提到的原始值相比,R和B组件显得相反。所以我想知道vssettings文件中的颜色格式是否在VS 2010和2015之间改变。 –