【问题标题】:What Colour Format/Encoding are these Flash colour values in这些 Flash 颜色值采用什么颜色格式/编码
【发布时间】:2011-12-19 03:34:36
【问题描述】:

我正在解析从 Flex(Flash ActionScript) 应用程序获得的颜色代码,然后创建具有相同颜色的 HTML div 元素。

我的问题:颜色都只有 8 位长。所以它们不能是 RGB 颜色值吗?它们采用什么颜色值格式?如果我能弄清楚它们的格式,我可以将它们转换为 RGB。也许最后一个/第一个数字表示它的 0. alpha 值?

PS:我应该将颜色转换为 RGB 还是其他?

这是我从 Flash 应用程序中获得的颜色代码值示例:

16777215
4803910
84545883
16777215

【问题讨论】:

  • 这些都是十进制(以 10 为基数)值。假设完全不透明,16777215 对应于十六进制(以 16 为基数)的纯白色 #FFFFFF。您必须执行某种转换。
  • @Jake M 你想知道我的回答中缺少什么吗?

标签: html flash apache-flex


【解决方案1】:

RGB 颜色由hexadecimal digits(基数为 16)表示。

Base 16 表示数字中的每个位置都可以按此顺序表示数字 0-15:

0 1 2 3 4 5 6 7 8 9 A B C D E F

在 AS3 中使用 0x 表示一个十六进制数。例如,运行这个:

trace(0xF); // 15

如您所见,输出以十进制(以 10 为底)表示。您在上面的问题中看到的是颜色的十进制表示。

如果您想查看十六进制版本,请使用 toString() 并将 16 解析为 radix 参数。您会注意到默认值为 10(对于我们都知道和喜爱的以 10 为底的十进制数)。

var num:int = 15;

trace(num.toString(16)); // f

希望这是有道理的。

【讨论】:

  • 顺便说一句,这些也是 ARGB 值。所以只有底部的 24 位是颜色数据。最重要的 8 位是 alpha。 0xAARRGGBB。因此,您可能希望与 0xFFFFFF 进行按位与运算,以获取颜色部分。
  • 一旦在句子中使用了 bit、bitwise、bits 等词,我有时会昏迷并开始大量运球:P
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-03
  • 2016-05-08
  • 2015-06-20
  • 1970-01-01
  • 2021-06-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多