Flash α&x2B;RGB->;阿格?
在as3中,是否有将RGB颜色(例如0xFF0000)和alpha值(例如.5)转换为32位ARGB值的实用程序或函数 从ARGB到RGB+alpha 一些解释:位图数据可以在其构造函数中采用ARGB值,但在精灵中填充形状通常采用RGB值。我希望上述实用程序能够确保颜色匹配。Flash α&x2B;RGB->;阿格?,flash,actionscript-3,rgb,Flash,Actionscript 3,Rgb,在as3中,是否有将RGB颜色(例如0xFF0000)和alpha值(例如.5)转换为32位ARGB值的实用程序或函数 从ARGB到RGB+alpha 一些解释:位图数据可以在其构造函数中采用ARGB值,但在精灵中填充形状通常采用RGB值。我希望上述实用程序能够确保颜色匹配。 变量argb:int=(alpha24)&0xFF; 如果alpha可以用8位表示,那么这是可能的。例如,只需将32位ARGB值的每个区域映射为相应的变量 0x0ABCDEF1 α-0x0A 红色-0xBC 绿色-0xDE
变量argb:int=(alpha24)&0xFF;
如果alpha可以用8位表示,那么这是可能的。例如,只需将32位ARGB值的每个区域映射为相应的变量
0x0ABCDEF1
α-0x0A
红色-0xBC
绿色-0xDE
蓝色-0xF1A、R、G、B是视频卡使用的一种常见格式,用于允许纹理中的“纹理混合”和透明度。大多数系统对R、G和B仅使用8位,因此在PC中常见的32位字大小中,还有8位可用
The mapping is:
For Bits:
33222222 22221111 11111100 00000000
10987654 32109876 54321098 76543210
AAAAAAAA RRRRRRRR GGGGGGGG BBBBBBBB
00000000 RRRRRRRR GGGGGGGG BBBBBBBB
大概是这样的:
private function toARGB(rgb:uint, newAlpha:uint):uint{
var argb:uint = 0;
argb = (rgb);
argb += (newAlpha<<24);
return argb;
}
private function toRGB(argb:uint):uint{
var rgb:uint = 0;
argb = (argb & 0xFFFFFF);
return rgb;
}
argb的私有函数(rgb:uint,newAlpha:uint):uint{
变量argb:uint=0;
argb=(rgb);
argb+=(newAlpha我真的无法为上面的优秀答案添加更多内容,但是更简单地说,alpha值是uint中的最后两位数字,例如
//white
var white:uint = 0xFFFFFF;
//transparent white
var transparent:uint = 0xFFFFFFFF;
刻度与往常一样,00=1 FF=0
希望这有助于私有函数组合GB(a:uint,r:uint,g:uint,b:uint):uint{
private function combineARGB(a:uint,r:uint,g:uint,b:uint):uint {
return ( (a << 24) | ( r << 16 ) | ( g << 8 ) | b );
}
return((很抱歉,但您有点困惑:)…透明白色是0x00FFFFFF。alpha值是“0x”后的两个第一位数字,如0xAARRGGBB(alpha,红色,绿色,蓝色)。“00”(0x00)是0,“FF”(0xFF)是255,这将等同于alpha=1。干杯……啊,这就是为什么;)干杯