十六进制颜色值和ARGB颜色值的转换

来源:互联网 发布:北京赛车pk10程序源码 编辑:程序博客网 时间:2024/05/17 07:32

十六进制颜色值

在 ActionScript 中, 与 类结合使用的颜色值应使用 32 位十六进制数表示。32 位十六进制数是四对十六进制数字的序列。每个十六进制对定义四个颜色通道 (红、绿、蓝和 Alpha) 中每个颜色通道的强度。颜色通道的强度为以范围介于 0 到 255 之间的十进制数的十六进制表示法;FF 是指全强度 (255), 00 是指通道中无颜色 (0)。如您所见, 由于颜色值长度需要两位数字, 因此您需要填充一个通道, 例如用 01 代替 1。这样可确保十六进制数中始终具有八个数字。还应确保指定十六进制数前缀 0x。例如, 白色 (所有通道中都是全强度) 用十六进制记数法表示为: 0xFFFFFFFF。而黑色正好相反;它在红色、绿色和蓝色中的任何一个通道中都无颜色: 0xFF000000。请注意, Alpha 通道 (第一对) 仍然为全强度 (FF)。Alpha 通道中的全强度意味着没有 alpha (FF), 无强度 (00) 意味着全 alpha。因此, 透明像素颜色值为 0x00FFFFFF。

从 ARGB 转换为十六进制值

对于特定的颜色, 人们通常容易记住它的 Alpha、红色、绿色和蓝色 (ARGB) 值, 而记不住其十六进制值。如果您也有同样的情况, 那么您应当了解如何从 ARGB 转换为十六进制值。这可通过下面的 ActionScript 函数来实现:

function argbtohex(a:Number, r:Number, g:Number, b:Number){return (a<<24 | r<<16 | g<<8 | b)}

您可以按如下所示的方式使用该函数:

hex=argbtohex(255,0,255,0) //输出基于 10 进制数的 32 位红色十六进制值

从十六进制转换为 ARGB 值

要将十六进制颜色值转换回范围介于 0 到 255 之间的四个十进制数 (每个数代表 ARGB 中的一个通道) , 请使用下面的 ActionScript 函数:

function hextoargb(val:Number){var col={}col.alpha = (val › › 24) & 0xFFcol.red = (val › › 16) & 0xFFcol.green = (val › › 8) & 0xFFcol.blue = val & 0xFFreturn col}

您可以按如下所示的方式使用该函数:

argb=hextoargb(0xFFFFCC00);alpha=argb.alpha;red=argb.red;green=argb.green;blue=argb.blue;
*****************
测试
argb=hextoargb(0x000000);
alpha=argb.alpha;
red=argb.red;
green=argb.green;
blue=argb.blue;
trace(alpha)
结果:204
改变

0 0