为啥十六进制颜色值中有前导“#FF”?

Posted

技术标签:

【中文标题】为啥十六进制颜色值中有前导“#FF”?【英文标题】:Why is there a leading "#FF" in hexadecimal color values?为什么十六进制颜色值中有前导“#FF”? 【发布时间】:2009-09-27 23:57:42 【问题描述】:

我正在使用Expression Blend 3 并且正在手动编写一些 XAML,特别是控件的颜色值。

我有一个已转换为十六进制的 RGB 颜色列表。我只需要将十六进制值插入我的 XAML。

最初,我将电子邮件中的十六进制值粘贴到相应的属性中。在我完成之前,Blend 开始调整,用曲线和工具提示在颜色属性下划线,告诉我“令牌无效”。经过一番研究,我发现在十六进制值前面放置一个井号(“#”)可以解决这个问题。

在研究这个问题的过程中,我开始通过 Blend 中的颜色选择器更改颜色。我很快发现 Blend 插入的值不仅以井号开头,而且还以“FF”开头。我粘贴的值是有效十六进制格式的有效颜色。但是当将 RGB 值输入 Blend 并让 Blend 插入十六进制值时,我注意到我所有的颜色都以“#FF”为前缀。正如我已经指出的那样,删除# 会产生错误,但删除“FF”似乎根本没有效果。

在十六进制颜色的世界里,颜色#5A7F39真的和#FF5A7F39一样吗?为什么是FF?它们是两个不同的十六进制值,对吧?但它们在屏幕上看起来是一样的。为什么会有差异?

【问题讨论】:

【参考方案1】:

那可能是颜色的 alpha 分量,代表不透明度(00 -> 透明,FF -> 不透明)。

MSDN 似乎同意这一点:Color

16 位十六进制,alpha -- #AARRGGBB

【讨论】:

我有点困惑,根据文章,1 个十六进制数字代表 8 位,2 个十六进制数字代表 16 位。【参考方案2】:

我相信领先的FF是the alpha。 255(或 FF)是 100% 不透明的,00 是透明的。

【讨论】:

【参考方案3】:

“额外”FF 是一个 alpha 值(透明度)。如果您只有三个十六进制对,则假定 alpha 值为 ff(无透明度)。但是,如果您比较 #335A7F39 和 #FF5A7F39,您应该会发现差异。

【讨论】:

以上是关于为啥十六进制颜色值中有前导“#FF”?的主要内容,如果未能解决你的问题,请参考以下文章

十六进制黑颜色代码是啥 绿色是ff00ff00

ff000000是啥颜色

自动设置颜色单元格 - 基于 Excel 中其他列中的十六进制颜色代码

谁知道一些颜色用十六进制怎么表示?

Flutter中这个十六进制代码#6c63ff的颜色名称是啥

RGB颜色值与十六进制颜色码怎么相互转换?