gpt4 book ai didi

actionscript-3 - 以 AARRGGBB 颜色乘以 alpha channel

转载 作者:行者123 更新时间:2023-12-04 04:50:21 24 4
gpt4 key购买 nike

我有一个 AARRGGBB用于填充我在尝试照明引擎时使用的网格中的单元格的值:

var color:Number = 0xFF000000; // Full opaque black.

有具有半径参数的光源。距离是从光源单元到该半径内的附近单元测量的。然后为每个附近的单元格提供一个百分比值,即:
distanceFromSource / sourceRadius

因此,更高的百分比表示离源更远的单元格。

我想将上面颜色的 alpha channel 乘以百分比,并用结果值填充单元格。基本上我希望 AARRGGBB 值介于 0-100% AA 之间。当我尝试进行直接乘法时,我得到了奇怪的结果:

enter image description here

我相信我需要为此使用特殊运算符,以及 BitmapDataChannel 中看到的值.不幸的是,这就是我被卡住的地方。

How can I multiply the alpha channel in an AARRGGBB color by a percentage?

最佳答案

您需要保留像素的 rgb 值。只乘以 uint 的 alpha 字节。

function multiplyAlpha(color:uint, percent:Number):uint
{
//returns the pixel with it's aplha value multiplied by percent
//percent is expected to be in the range 0..1
var a:uint = (color >> 24) * percent;
var rgb:uint = color & 0x00ffffff;
return ((a<<24) | rgb);
}

function setAlphaByPercent(color:uint, percent:Number):uint
{
//returns the pixel with it's a new alpha value based on percent
//percent is expected to be in the range 0..1
var a:uint = 0xff * percent;
var rgb:uint = color & 0x00ffffff;
return ((a<<24) | rgb);
}

关于actionscript-3 - 以 AARRGGBB 颜色乘以 alpha channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17518171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com