加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

color

发布时间:2020-12-15 18:36:44 所属栏目:百科 来源:网络整理
导读:Flash使用RGB颜色值,这三种混合色的每一种都是一个从0到255中的数,所以共有(256*256*256)个颜色值. 24位颜色 : 要使用8位(0或1)才能表示256个数值,8乘以3(红绿蓝)意味着需要24位才能表示颜色值,32位颜色多的8位数值表示透明度. 色彩合成: color24 = red 16 |

Flash使用RGB颜色值,这三种混合色的每一种都是一个从0到255中的数,所以共有(256*256*256)个颜色值.
24位颜色 : 要使用8位(0或1)才能表示256个数值,8乘以3(红绿蓝)意味着需要24位才能表示颜色值,32位颜色多的8位数值表示透明度.


色彩合成: color24 = red << 16 | green << 8 | blue;??
???     color32 = alpha << 24 | red << 16 | green << 8 | blue; (或运算: 两个数中有一个为1,结果就为1,若都为0则为0);
例颜色值0xFF55F3的组成:
?  红色范围的值为0xFF,二进制为22222111,将它向左移动16位,结果:222221110000000000000000;
?  绿色范围的值为0x55,二进制为01010101,将它向左移动8位,结果: 000000000101010100000000;
  ?蓝色范围的值为0xF3,二进制为11110011,不需要移动.
将这三组数用或运算运行后,得到222221110101010222220011,转换为16进制等于0xFF55F3.可以写成:
var color24:Number = oxFF << 16 | ox55 << 8 | 0xF3;
var color24:Number = 255 << 16 | 85 << 8 | 243;(32位的例子道理相同)


获取颜色值: red = color24 >> 16; green = color24 >> 8 & 0xFF; blue = color24 & 0xFF; ">>"是右移运算符,如果移动的过多数字就会消失.
例颜色值0xFF55F3.
?  red : 右移16位,结果 : 22222111,即0xFF(255);
?  green : 右移8位,结果 : 2222211101010101;这时得出了blue的值,但red值还在一边,使用&操作符(两个都是1则为1,其中一个为0则为0)
??  将其与0xFF进行运算 : 2222211101010101 & 0000000022222111,因为red位的数字都与0相比较,所以都为0,所以结果为?0000000001010101;
?  blue : 不需要执行右移操作,只需要与0xFF执行&操作即可.
32位与此类似,需要改动的是 alpha = color32 >> 24; red = color32 >> 16 & 0xFF; 其他不变.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读